Mein Wildfly-Server führt eine Kopiermethode aus, die 30 Minuten dauert. Für jeden kopierten Artikel habe ich eine Log-Nachricht bekommen. Ater 10 Minuten der Server Druck für etwa 20 Sekunden folgende Meldung:Wildfly-Transaktionen
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: kann nicht geöffnet Verbindung
Danach ist der Server Fortfahren mit dem Kopiervorgang. Wenn der Server jedoch fertig ist, werden alle Transaktionen zurückgesetzt. Also habe ich versucht, diese Anmerkung für meine Kopie Methode hinzufügen:
@TransactionAttribute(REQUIRES_NEW)
Jetzt ist der Server ohne Ausnahme den Kopiervorgang läuft, aber am Ende das Protokoll sagt:
2016-06-30 14: 41: 06,262 WARN [com.arjuna.ats.jta] (Thread-1195 (HornetQ-client-global-threads-252748997)) ARJUNA016041: Vorbereitung auf < formatId = 131077, gtrid_length = 29, bqual_length = 36, tx_uid = 0: ffff7f000101: -76961d26: 577503fd: 1297, Knotenname = 1, branch_uid = 0: ffff7f000101 : -76961d26: 577503fd: 1298, subordinatenodename = null, eis_name = unbekannt uvb name> (DelegatingSession [session = ClientSessionImpl [name = c2eb2924-3eb6-11e6-8fd4-954338fa95f0, username = null, geschlossen = false, Fabrik = ClientSessionFactoryImpl [serverLocator = ServerLocatorImpl [initialConnectors = [TransportConfiguration (name = bdde9687-3eb6-11e6-8fd4-954338fa95f0, Fabrik = org-HornetQ-Core-Remoting-impl-INVM-InVMConnectorFactory) ? server-id = 0 ], discoveryGroupConfiguration = null], connectorConfig = TransportConfiguration (name = bdde9687-3eb6-11e6-8fd4-954338fa95f0, Fabrik = org-HornetQ-Core-Remoting-impl-INVM-InVMConnectorFactory) ? server-id = 0, backupConfig = null ], metaData = (jms-session = ressourcen Adapter = Inbound,)] @ 62eae143]) fehlgeschlagen mit Ausnahme XAException.XA_RBOTHER: javax.transaction.xa.XAException
Und wieder alle Transaktionen sind rolledback . Die Wildfly Admin Console Statistics scheint normal zu sein. Wenn ich versuche, weniger Elemente zu kopieren, läuft der Vorgang ohne Probleme. Ich habe auch versucht, den transaction-default-timeout-Wert zu erhöhen, aber mit dem gleichen Ergebnis.
Update: Ich habe eine MySQL-Datenbank und ich möchte eine Bean in die gleiche Tabelle mit einigen anderen Werten kopieren. Der Code ist ungefähr 1000 Zeilen.
Die Hibernate Ausnahme tritt bei Teil folgenden
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);
}
Aber ich denke, es gibt einige Verbindung/Transaktion/etc. Pool überfüllt. Die Wildfly-Statistik über die Verbindung und Transaktion scheint jedoch normal zu sein.
Kopieren wo? Können Sie uns bitte den Code zeigen? – aksappy
aktualisierte Frage – Dennis
Diese Ausnahme bedeutet, dass bei der betroffenen Transaktion etwas schief gelaufen ist. Aktivieren Sie all Ihre Winterschlafprotokolle und show_sql = true und überprüfen Sie. – aksappy