2010-03-16 215 views
0

我們有一些使用各種形式的Web服務進行通信的產品。有些使用通過http請求傳遞的直接XML(HttpClient)。其他人進行遠程EJB調用,有些人使用EJB會話Bean方法上的EJB 3 Web服務。在HttpClient版本中,我們遇到了遠程端需要10多分鐘才能完成數據庫操作並且調用者超時的問題。調用者在那時不知道數據是否在遠端進行。有時我們會留下插入在遠程端的數據,但由於無法確定狀態,呼叫方超時並回滾。EJB Web服務交易

據我所知,將這兩者分離並在諸如JMS之間放置消息傳遞層將允許我們保證交付並且不會阻止,但是之後我們必須編寫大量額外的代碼來檢查是否交易在遠端完成或失敗。這絕對是一種選擇,但是有沒有什麼好的解決方案可以在兩端之間進行握手的情況下進行寫入,在這種情況下,無論是由於異常,超時還是網絡問題導致整個事務失敗,以及在哪裏結束兩個應用程序之間的交互都將確定整個交易是成功還是失敗?是否是此遠程EJB sessionbean方法調用的唯一/最佳選項?

回答

2

聽起來像你需要一個WS-AT實現。閱讀討論Transaction rollback and web services

+0

感謝您的信息,看起來像我們可以真正使用的東西。 – 2010-03-17 22:27:11