我的應用程序(一個彈簧消息偵聽器)從一個隊列中讀取數據,並在單個事務中寫入數據庫。我使用Atomikos來提供XA事務行爲。例如,當應用程序突然以kill語句終止時,我看到消息丟失。有什麼具體的配置我需要使用?隊列應該持久嗎?目前隊列是非持久性的。我的MQ版本是v7.1。WebSphere MQ和Atomikos - 進程終止時丟失的消息
用於監聽器容器Spring配置是這樣的:根據需要
<bean id="listenerContainer" class="com.miax.test.TestListenerMDPImpl" autowire="byName">
<property name="connectionFactory" ref="mqConnFactory" />
<property name="destinationName" value="QUEUE" />
<property name="messageListener" ref="listenerAdapter" />
<property name="transactionManager" ref="jtaTransactionManager" />
<property name="sessionTransacted" value="true" />
<property name="concurrentConsumers" value="1" />
<!-- receive time out, should be less than tranaction time out -->
<property name="receiveTimeout" value="3000" />
<!-- retry connection every 1 seconds -->
<property name="recoveryInterval" value="1000" />
<property name="autoStartup" value="true" />
<property name="sessionAcknowledgeMode" value="0" />
</bean>
任何其他信息將給予。
謝謝。
有什麼辦法可以檢查Extended Transactional Client是否已經安裝? – arrehman
'dspmqver -a'命令將顯示舊客戶端的XTC。但是,由於它現在已經構建到客戶端,並且沒有附加的軟件包或文件,我認爲它並不是一個單獨的組件。區分不帶XTC的舊客戶端和新客戶端的最佳方式就是安裝WMQ V7.5客戶端。除此之外,請下載v7.0.1或v7.1客戶端並重新安裝。抱歉,對於V7.0.1或V7.1客戶端,我沒有更好的答案。在您最近的其他問題中下載鏈接。 –
謝謝。我會做的。 – arrehman