有關Websphere MQ JAVA API中事務的問題

 這幾天用JAVA MQ API做文件傳輸,但是無法完成事務操作,如果取出消息之後,寫文件失敗,那麼沒有辦法rollback,消息沒了,文件也沒存上,這可是不可饒恕的錯誤呀。到CSDN的論壇上搜了問了,沒有結果,今天打算在努力一下,在MQ的文檔中看到了如下一段話:

MQGMO_SYNCPOINT


請求在正常的工作單元協議內進行操作。將消息標記爲對其它應用程序不可用,僅當落實工作單元時纔將它從隊列中刪除。如果工作單元被回退,則消息將再次變得可用。

如果既未指定此選項也未指定 MQGMO_NO_SYNCPOINT,則將由環境來確定是否將取出請求包含在工作單元協議中:

  • 在 z/OS 中,取出請求位於工作單元內。
  • 在所有其它環境中,取出請求都不在工作單元內。
我在程序中的MQGetMessageOptions中沒有設置MQGMO_SYNCPOINT參數,如文檔所示,當然不會完成事務操作了,馬上加上以上參數,測試,事務操作成了,不錯不錯,看來MQ的文檔還是寫的不錯的,就看能不能查到了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章