我想知道如何通過使用Java EE5來執行兩階段提交事務......我正在使用具有使用MySql配置的hibernate的JPA的EJB。我只想使用JAVA EE規範來處理不使用休眠或JDBC特定對象的事務....Java EE 5中的兩階段提交事務
2
A
回答
4
爲確保JTA事務用於執行JPA中的所有事務性工作,您只需指定持久單元類型是JTA,並指定供JPA提供程序使用的JTA數據源。你的persistence.xml文件將具有類似於以下內容:
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<!-- Specifies the type of the entity managers used by the persistence unit,
as a JTA entity manager -->
<persistence-unit name="example-pu" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- Specifies a JTA datasource for use by the JPA provider.
All connections obtained by the JPA provider for this persistence unit
will be from this datasource -->
<jta-data-source>jdbc/myDS</jta-data-source>
...
</persistence-unit>
</persistence>
此外,還必須確保在jta-data-source
屬性定義數據源,不使用優化,例如,允許本地事務。簡而言之,涉及所述數據源的所有事務必須是XA事務,或者數據源必須是XA數據源,而不支持本地事務。
請注意,僅指定JTA數據源是不夠的。您必須將持久性單元定義爲需要使用JTA實體管理器的持久性單元,因爲transaction-type
屬性的未定義值取決於JPA提供程序運行的環境。如果提供者在Java EE環境中運行,則將創建JTA
實體管理器,其中將在Java SE環境中創建RESOURCE_LOCAL
實體管理器。
此外,請注意,如果您指定transaction-type
爲RESOURCE_LOCAL
,然後在Java EE環境下,JPA提供商將忽略jta-data-source
值,而會依靠創建連接的non-jta-data-source
值。
相關問題
- 1. XA事務的兩個階段提交
- 2. 兩階段提交
- 3. Paxos vs兩階段提交
- 4. weblogic ejb3兩階段提交
- 5. Dwolla兩階段提交
- 6. 兩階段提交 - 如何測試
- 7. 使用Bean管理的事務定義Java EE 5處理提交錯誤?
- 8. IEnlistmentNotification接口的兩階段提交
- 9. 兩階段提交+ JTA + JMS + Hibernate的
- 10. 在java中嵌套兩階段提交(嵌套/樹2PC)?
- 11. 三階段提交
- 12. XA兩階段提交併在準備階段執行?
- 13. pojo中的Java-ee事務
- 14. 兩階段提交不同的技術之間(COM +,JAVA)
- 15. Spark任務集併發階段提交
- 16. Java使用TransactionManager實現兩階段提交
- 17. 部署準備提交階段失敗,無法準備事務
- 18. Java類設計中的提交事務
- 19. 如何模擬數據庫故障以測試Java中的兩階段提交
- 20. JMS和Java EE事務
- 21. 在2階段提交中回滾
- 22. 如何在grails中執行mongodb兩階段提交?
- 23. 與Atomikos的兩階段提交(2PC)配置
- 24. Spring JtaTransactionManager會自動忽略兩階段提交中每個事務的未使用資源嗎?
- 25. Azure SQL數據庫是否支持兩階段提交(2PC)?
- 26. 兩階段提交 - 如何有效使用我的隊列?
- 27. 如何測試存儲過程的兩階段提交行爲?
- 28. 2階段提交第二階段失敗後的全局交易狀態
- 29. Asp.net(c#)和Java EE 5網絡服務
- 30. 兩階段提交是否可以防止最終提交失敗?
非常感謝你的及時回覆....如果你能告訴我如何做一步一步的配置,這將是真正可觀的,因爲我是這個交易世界的新手... – user796666
你是什麼意思的步驟按步驟配置?每個容器幾乎肯定會有所不同。另外,我相信通過提出一個不同的問題可以更好地服務,因爲它的主題與當前的主題不同。 –
我被困在配置給了MySQL的XA數據源persistance.xml ... – user796666