Hi everybody,
As You can easily understand from the email subject I am troubled
with Mysql\Jboss integration.
I use JBoss 4.2.2 and I access the MySql DB via a XA Datasource
(com.mysql.jdbc.jdbc2.optional.MysqlXADataSource). I define the queries
dinamically, accessing an Hibernate session through a Web Application
deployed into JBoss.
In the following example I want to persist a "Request" object into the XA
DS, via an hibernate\jta session.
To do this a call a "saveRequest()" method.
Every time I do a select against the XA DS everything goes as expected....as
soon as I want to do an hibernate "saveRequest()" (which dinamically
generates an Hibernate "insert" for the XA DS) I get back this fu__ing jboss
exception:
(EVERY TIME I EXECUTE AN "INSERT" AGAINST THE XA MYSQL DS I GET BACK THIS:)
19:14:08,373 INFO [STDOUT] Hibernate:
insert
into
request
(request_date, contract_id)
values
(?, ?)
19:14:08,373 WARN [TxConnectionManager] Connection error occured:
[EMAIL PROTECTED]
[EMAIL PROTECTED] handles=1
lastUse=1202753648227 permit=true trackByTx=true
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
txSync=null]
java.lang.NullPointerException
at
org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.setDate(WrappedPreparedStatement.java:342)
...
at org.hibernate.type.DateType.set(DateType.java:44)
)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
19:14:08,376 INFO [DateType] could not bind value '11 febbraio 2008' to
parameter: 1; Error; - nested throwable: (java.lang.NullPointerException)
...
19:14:08,380 ERROR [STDERR] at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
19:14:08,380 ERROR [STDERR] at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
19:14:08,380 ERROR [STDERR] at java.lang.Thread.run(Unknown Source)
19:14:08,380 ERROR [STDERR] Caused by: java.lang.NullPointerException
19:14:08,380 ERROR [STDERR] at
org.jboss.resource.adapter.jdbc.WrappedStatement.internalClose(WrappedStatement.java:590)
19:14:08,380 ERROR [STDERR] at
org.jboss.resource.adapter.jdbc.WrappedStatement.close(WrappedStatement.java:75)
19:14:08,380 ERROR [STDERR] at
org.hibernate.jdbc.AbstractBatcher.closePreparedStatement(AbstractBatcher.java:534)
...
19:14:08,381 ERROR [STDERR] at
com.prj.DataManager.saveRequest(DataManager.java:46)
19:14:08,412 ERROR [AssertionFailure] an assertion failure occured (this
may indicate a bug in Hibernate, but is more likely due to unsafe use of the
session)
...
at java.lang.Thread.run(Unknown Source)
19:14:08,413 WARN [arjLoggerI18N]
[com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2]
TwoPhaseCoordinator.beforeCompletion - failed for
[EMAIL PROTECTED]
...
19:14:08,414 WARN [loggerI18N]
[com.arjuna.ats.internal.jta.resources.arjunacore.rollbackxaerror]
[com.arjuna.ats.internal.jta.resources.arjunacore.rollbackxaerror]
XAResourceRecord.rollback - xa error
[com.arjuna.ats.jta.utils.unknownerrorcode] Unknown error code:0
19:14:08,414 WARN [arjLoggerI18N]
[com.arjuna.ats.arjuna.coordinator.BasicAction_54] - Top-level abort of
action a156303:e9ef:47b08fd5:65 received TwoPhaseOutcome.FINISH_ERROR from
<ClassName:RecordType.JTA_RECORD>
19:14:08,415 ERROR [STDERR] javax.transaction.RollbackException:
[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't
commit because the transaction is in aborted state
...
19:14:08,417 ERROR [STDERR] at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1389)
19:14:08,417 ERROR [STDERR] ... 22 more
19:14:08,417 ERROR [[ReEvaluation]] Servlet.service() for servlet
ReEvaluation threw exception
...
)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
It's really weird because when a try to do the SAME "insert" manually the
DBMS works properly.
I also tried to define the DATASOURCE as a <local-tx-datasource> and It
worked as well!!!
Furthermore I made a Junit test which "locally" (without Jboss) persists the
"request" object using the
same hibernate mappings and It does persist!
So...I think the issue is localized in the XA\Transaction Manager
interaction....as u can see, everytime i avoid
this interaction everything goes right... it's weird, isnt' it?.... :O
I start to think that MysqlXADataSource.class in the Mysql .jar connector
does not do his
dirty job properly....
I hope that somebody having the same Issue found out how to overcome it!
Please, answer me to: [EMAIL PROTECTED]
Thank You anyway guys.
Massi
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
hibernate-devel mailing list
hibernate-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hibernate-devel