2016-06-30 12 views
0

Wildflyサーバーでは、コピーを完了するまでに30分かかります。コピーされたすべてのアイテムについて、私はログメッセージを受け取りました。サーバーは、約20秒間、次のメッセージを印刷しているATER 10分:Wildflyトランザクション

javax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:この後 ことができませんでしたオープン接続

サーバがありますコピー操作を続けます。ただし、サーバーが終了すると、すべてのトランザクションがロールバックされます。 は、だから私は私のコピー方法については、この注釈を追加しようとしました:

@TransactionAttribute(REQUIRES_NEW) 

は今、サーバは例外なくコピー操作を実行しているが、最後にログは言う:

2016年6月30日ARUUNA016041:< のformatId = 131077、gtrid_length = 29、bqual_length = 36、および、次のように設定してください:WARN [com.arjuna.ats.jta](スレッド1195 (HornetQ-client-global-threads-252748997) tx_uid = 0:ffff7f000101:-76961d26:577503fd:1297、node_name = 1、 branch_uid = 0:ffff7f000101 :-76961d26:577503fd:1298、 subordinatenodename = nullを、eis_name =未知のEIS名> (DelegatingSession [セッション= ClientSessionImpl [名= c2eb2924-3eb6-11e6-8fd4-954338fa95f0、ユーザ名= nullは、 が= falseを閉じ、工場= ClientSessionFactoryImpl [serverLocator = ServerLocatorImpl [initialConnectors = [TransportConfiguration(名= bdde9687-3eb6-11e6-8fd4-954338fa95f0、 工場= ORG-HornetQはコア - リモート・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

そして再びすべてのトランザクションがロールバックされます。javax.transaction.xa.XAException

:62eae143])例外XAException.XA_RBOTHERで 失敗@]、 のmetaData =(JMSセッション=、リソース・アダプター=インバウンド)] 。 Wildfly管理コンソールの統計情報は正常です。より少ないアイテムをコピーしようとすると、操作は問題なく正常に実行されます。 トランザクションのデフォルトタイムアウト値を増やそうとしましたが、同じ結果が得られました。

更新: 私はMySQLデータベースを持っており、別の値で同じテーブルに1つの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); 
} 

で発生しかし、私はいくつかの接続/トランザクションの/ etcがあると思います。プールオーバーフロー。しかし、接続とトランザクションに関するWildflyの統計は正常であるようです。

+1

ここにコピーしますか?私たちにコードを教えてもらえますか? – aksappy

+0

更新された質問 – Dennis

+0

この例外は、関係するトランザクションで問題が発生したことを意味します。すべての休止状態ログとshow_sql = trueをオンにしてチェックします。 – aksappy

答えて

0

WildFlyで設定したJNDIデータソースに「autoreconnect」を追加してみます。そうした後にサーバーをリロードすることを忘れないでください。

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

データソースプール内の接続数が制限されています。このアノテーションを使用すると、メソッド呼び出しごとに新しいトランザクションを作成します。同じトランザクション内でJMSやデータベースなどの複数のリソースを必要としない場合は、データソースがXAデータソースとして設定されていないことを確認してください。 XAトランザクションを本当に使用する必要がある場合は、トランザクションごとに接続を再利用する必要があるかもしれません。いくつかのjbossのクイックスタートでは、JMSキューとXAデータソースの間で共有トランザクションマネージャを使用するのが一般的です。

関連する問題