我该如何解决读取MQ消息导致在提交/回滚时出错的问题?

问题描述 投票:1回答:1

[在使MQ连接在Liberty中工作时,我遇到以下问题。

收到消息后,发生以下错误:JMSCC0014:在非事务会话上调用'commit'方法无效。

我已经进行了一些搜索,发现了一些需要使用XA版本的连接工厂的信息,但是我不知道这是否确实是解决方案,并且我还没有找到任何清晰的示例来说明如何实现这一点。我的配置。

这是server.xml配置的相关部分:

<resourceAdapter id="mqJms" location="/etc/liberty/wmq/wmq.jmsra.rar"/>
<authData id="mqJms.auth" user="user" password="password"/>

<jmsQueueConnectionFactory jndiName="jms/queueConnectionFactory" connectionManagerRef="ConMgr4" containerAuthDataRef="mqJms.auth">
    <properties.mqJms transportType="CLIENT"
    hostName="server" port="1234"
    channel="CHANNEL"/>
</jmsQueueConnectionFactory>

<connectionManager id="ConMgr4"
    connectionTimeout="30s"
    maxPoolSize="50" minPoolSize="1"
    reapTime="60s" agedTimeout="0"/>

<jmsQueue id="jms/incomingRequestQueue" jndiName="jms/incomingRequestQueue">
    <properties.mqJms baseQueueName="QUEUEIN"/>
</jmsQueue>

queueConnectionFactory通过代码中的JNDI检索。

任何帮助将不胜感激。

java websphere-liberty open-liberty
1个回答
0
投票

解决方案最终是在收到MQ消息后不执行提交/回滚,有关更多信息,请参见此处:Websphere Liberty : JMS Sessions don't work

© www.soinside.com 2019 - 2024. All rights reserved.