簡體   English   中英

Wildfly交易

[英]Wildfly Transactions

我的Wildfly服務器正在運行一個復制方法,該過程需要30分鍾才能完成。 對於每個復制的項目,我都會收到一條日志消息。 在10分鍾時,服務器將打印以下消息約20秒:

javax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:無法打開連接

此后,服務器將繼續進行復制操作。 但是,服務器完成后,所有事務都會回滾。 因此,我嘗試為我的復制方法添加此批注:

@TransactionAttribute(REQUIRES_NEW)

現在服務器正在運行復制操作,沒有任何異常,但是最后日志顯示:

2016-06-30 14:41:06,262警告[com.arjuna.ats.jta](線程1195(HornetQ-client-global-threads-252748997))ARJUNA016041:在<formatId = 131077,gtrid_length = 29,bqual_length上進行准備= 36,tx_uid = 0:ffff7f000101:-76961d26:577503fd:1297,node_name = 1,branch_uid = 0:ffff7f000101:-76961d26:577503fd:1298,subordinatenodename = null,eis_name =未知的eis名稱>((委托會話[session = ClientSessionImpl [名稱= c2eb2924-3eb6-11e6-8fd4-954338fa95f0,用戶名=空,關閉= false,工廠= ClientSessionFactoryImpl [serverLocator = ServerLocatorImpl [initialConnectors = [TransportConfiguration(name = bdde9687-3eb6-11e6-8fd4-954338fa95f0,factory = org-hornetq -core-remoting-impl-invm-InVMConnectorFactory)嗎?服務器ID = 0],discoveryGroupConfiguration = null],connectorConfig = TransportConfiguration(name = bdde9687-3eb6-11e6-8fd4-954338fa95f0,factory = org-hornetq-core-remoting- impl-invm-InVMConnectorFactory)?server-id = 0,backupConfig = null],metaData =(jms-session =,resource-adapter = inbound,)] @ 62eae143])失敗,除了 ion XAException.XA_RBOTHER:javax.transaction.xa.XAException

並再次回滾所有事務。 Wildfly管理控制台統計信息似乎正常。 當我嘗試復制較少的項目時,該操作運行成功,沒有任何問題。 我也嘗試增加transaction-default-timeout值,但結果相同。

更新:我有一個MySQL數據庫,我想將一個bean和其他一些值復制到同一張表中。 該代碼大約有1000行。

Hibernate異常發生在以下部分

try {
    Query query = em.createQuery("SELECT g FROM PCTree g WHERE.parentKey = :parentKey ORDER BY g.orderNumber");
    query.setParameter("parentKey", parentKey);
    List res = query.getResultList();
    return res;
} catch (Exception e) {
    throw new FinderException("find PCTree.findByParentKey: " + parentKey + " => " + e);
}

但是我認為有一些連接/事務/等等。 池溢出。 但是,有關連接和事務的Wildfly統計信息似乎很正常。

嘗試將“自動重新連接”添加到在WildFly中配置的JNDI數據源。 這樣做后,請不要忘記重新加載服務器。

jdbc:mysql://localhost:3306/database?autoReconnect=true

您在數據源池中的連接數有限。 使用此注釋,您將為每個方法調用創建一個新的事務。 如果在同一事務中不需要像JMS和數據庫這樣的多個資源,請檢查您的數據源是否未配置為XA數據源。 如果您確實需要使用XA事務,則可能需要重用每個事務的連接。 在幾個jboss的快速入門中,在JMS隊列和XA數據源之間使用共享事務管理器是很常見的事情。

暫無
暫無

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

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