簡體   English   中英

JMS本地事務與TransactionManager

[英]JMS Local transactions vs TransactionManager

我最近一直在研究Jms API,但不確定我是否了解本地與事務管理器之間的差異。

方案1:

使用來自Jms代理的消息,處理該消息,一旦處理成功,則提交事務,否則回滾。

方案2:

我想將消息從一個經紀人代理到另一個經紀人,但是由於其緩慢的特性,我不想使用XA事務。 因此,想法是為我正在使用的代理開始事務,然后在該事務中為我要生成的代理開始第二個事務,然后依次提交這兩個事務。 讓我們忽略這種情況下的重復風險問題,該問題可以緩解

使用JMS commit(),rollback()API(又稱本地事務)與使用事務管理器(例如Spring的PlatformTransactionManager類)之間到底有什么區別? 在第二種情況下,是否需要交易管理器,為什么/不是?

事務管理器將確保跨事務的服務器將一起提交或回滾。

手動管理單獨的事務會帶來一些漏洞,例如服務器A提交的事務,但服務器B不能這樣做是因為有許多錯誤情況(網絡,應用程序故障等)。 在許多類似情況下,事務管理器可以緩解這些問題。

可能是您的應用程序是冪等的,可以處理多次看到相同的消息並正確處理它,或者可能存在可以糾正不良情況的流程問題,在這種情況下,您可能還可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM