Fehler beim abrufen der JDBC-Verbindung: es Konnte keine gewinnen, die in der Transaktion über die Eingabe von meta-bewusst-Objekt
Ich habe ein problem immer eine JDBC-Verbindung in einem EJB SessionBean
. Der Fehler ist:
org.jboss.util.NestedSQLException: Konnte nicht gewinnen, in der Transaktion über die Eingabe von meta-bewusst-Objekt!; - nested throwable: (javax.die Transaktion.SystemException: java.lang.Throwable: Unabled eintragen Ressource, siehe die vorherigen Warnungen.
Dachte ich, das passiert, weil ich bereits eine offene Verbindung aus einer anderen Datenquelle konfiguriert, damit ich eine XA-datasource zu vermeiden, die Transaktion Probleme, aber es funktioniert überhaupt nicht, also weiß ich nicht, wenn ich mache was falsch in meinem code. Hier ist es:
try
{
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
p.put(Context.PROVIDER_URL,"jnp://localhost:11099");
p.put("java.naming.factory.url.pkgs", "org.jboss.naming");
InitialContext ic = new InitialContext(p);
DataSource dataSource = (DataSource)ic.lookup("java:/jdbc/etlreportservices");
return dataSource.getConnection();
}
catch(Exception e)
{
e.printStackTrace();
}
Ausnahme geworfen wird, während die aufrufende dataSource.getConnection()
.
- Ist Ihre EJB-anotated mit einer Transaktion Anotation?
- Die Transaktion wird container-managed
- Dank tomás hat Sie mir eine Idee, ich änderte meine Transaktions-manager zu bean-managed und es funktioniert perfekt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können versuchen,
für die alte Jboss-es:
/server/all/conf/jbossjta-properties.xml
für neue:
standalone\configuration\standalone.xml (oder andere, was Sie verwenden)
Ich habe bemerkt, das in Fällen, in denen die tx-Timeout. FWIW.
Mithilfe von JBoss 6.0.0, die Fehlermeldung ist etwas anders:
Als für der Grund: Ein Zitat aus hier
Die gleiche Website zeigt Ihnen eine Lösung, die nicht relevant für JBoss 6.0.0.
Die Allgemeine Lösung ist die änderung alle Datenquellen eingebunden in ein und derselben Transaktion in XA-Datenquellen. Dann funktioniert es sowohl mit bean managed und container-verwalteten Transaktionen. Zum Beispiel, diese Lösung wird vorgeschlagen, in einem CodeRanch und in einem JBoss forum als gut.
Änderte ich meine Transaktions-manager zu bean-managed und es funktioniert perfekt.