3
我有一個MDB正在傾聽特定主題。如何在EJB中執行XA事務?
我已經配置與JBoss XA數據源...
我已經設置持久性的.xml
<persistence-unit name="jpa" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jdbc/BKS_DataSource</jta-data-source>
<class>com.jms.mdb.SampleData</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<!--
<property name="hibernate.format_sql" value="true"/>
-->
</properties>
</persistence-unit>
每當我收到東西,我只是在MDB
@PersistenceContext
EntityManager em = null;
public void onMessage(Message message) {
try {
LoggingEvent event = (LoggingEvent)((ObjectMessage)message).getObject();
System.out.println("Received something11");
SampleData s= new SampleData();
s.setMessage(event.getLoggerName());
em.persist(s);
System.out.println("Persisted");
//Create.main(null);
} catch (JMSException e) {
e.printStackTrace();
}
}
執行該代碼
所以基本上我需要執行兩階段提交事務...所以我想知道我應該做什麼執行XA事務....另外我想只在Java EE 5上執行它
非常感謝你的答案.. NI只是好奇它如何處理回滾? – user796666
你的意思是你如何回滾交易或者當你回滾時會發生什麼? – Behrang
是的,當回滾發生時會發生什麼? n是否可以控制回滾? – user796666