Can you do a thread dump on the client and server when this happens?  I
didn't see this in the tests I wrote.

(on linux and mac osx, you can get a thread dump with ctrl-\)

thanks
david jencks

On 2003.02.18 09:00 Jonathan.O'[EMAIL PROTECTED] wrote:
> David,
> Summary: if commit fails at the end of a session bean method with Txn 
> Required, the client caller of this method never receives notification.
> In 3.0.5 and earlier, the client returned but did not receive
> notification 
> of the problem.
> In 3.2.0RC2, the session bean call never returns to the client! The
> server 
> however is still active and ready for business.
> 
> As soon as I get this exception and stack trace, my junit client stops 
> processing tests. If I kill the server, the tests continue with the 
> expected failures because of no server.
> This indicates the server is not returning control to the client!
> 
> 2003-02-18 13:07:55,079 WARN  [org.jboss.tm.TransactionImpl] XAException:
> 
> tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=XCOM-IRL-JONATHAN//44,
> 
> BranchQual=] errorCode=XA_UNKNOWN(0)
> org.jboss.resource.connectionmanager.JBossLocalXAException: could not 
> commit local tx; - nested throwable: 
> (org.jboss.resource.JBossResourceException: SQLException; - nested 
> throwable: (java.sql.SQLException: ORA-02091: transaction rolled back
> ORA-02290: check constraint (JOCONNOR.SYS_C0025330) violated
> ))
>         at 
> 
>org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource.commit(TxConnectionManager.java:787)
>         at 
> org.jboss.tm.TransactionImpl.commitResources(TransactionImpl.java:1580)
>         at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:366)
>         at 
> org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:367)
>         at 
> org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:253)
>         at 
> org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:104)
>         at 
> org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
>         at 
> org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:208)
>         at 
> 
>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:154)
>         at 
> 
>org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:322)
>         at org.jboss.ejb.Container.invoke(Container.java:652)
>         at sun.reflect.GeneratedMethodAccessor88.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at 
> 
>org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
>         at 
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
>         at 
> org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:338)
>         at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at 
> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
>         at sun.rmi.transport.Transport$1.run(Transport.java:148)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
>         at 
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
>         at 
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
>         at java.lang.Thread.run(Thread.java:536)
> Caused by: org.jboss.resource.JBossResourceException: SQLException; - 
> nested throwable: (java.sql.SQLException: ORA-02091: transaction rolled 
> back
> ORA-02290: check constraint (JOCONNOR.SYS_C0025330) violated
> )
>         at 
> 
>org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.checkException(BaseWrapperManagedConnection.java:449)
>         at 
> 
>org.jboss.resource.adapter.jdbc.local.LocalManagedConnection.commit(LocalManagedConnection.java:95)
>         at 
> 
>org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource.commit(TxConnectionManager.java:778)
>         ... 26 more
> Caused by: java.sql.SQLException: ORA-02091: transaction rolled back
> ORA-02290: check constraint (JOCONNOR.SYS_C0025330) violated
> 
>         at 
> oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>         at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:2321)
>         at oracle.jdbc.oci8.OCIDBAccess.commit(OCIDBAccess.java:665)
>         at 
> oracle.jdbc.driver.OracleConnection.commit(OracleConnection.java:1341)
>         at 
> 
>org.jboss.resource.adapter.jdbc.local.LocalManagedConnection.commit(LocalManagedConnection.java:91)
>         ... 27 more
> Ciao,
> Jonathan O'Connor
> Development Manager
> XCOM Dublin
> Phone: +353 1 872 3305
> Mobile: +353 86 824 0736
> 
> 
> 
> 
> Jonathan.O'[EMAIL PROTECTED]
> Sent by: [EMAIL PROTECTED]
> 12.02.2003 11:04
> Please respond to jboss-user
> 
>  
>         To:     [EMAIL PROTECTED]
>         cc: 
>         Subject:        Re: [JBoss-user] Session Bean (Txn Required)
> commit error not being sent 
> back to the client
> 
> 
> David,
> I spent most of yesterday trying to download Branch_3_0, and I'm still
> not 
> 
> finished. However, this recent spate of emails suggests that its all
> under 
> 
> control. As soon as 3.0.7 is out, or a new version of 3.2, I'll test our 
> code and let you know if its been fixed.
> 
> Sorry I couldn't help more, but firewalls and slowwwwww internet 
> connections don't help much!
> Ciao,
> Jonathan O'Connor
> Development Manager
> XCOM Dublin
> Phone: +353 1 872 3305
> Mobile: +353 86 824 0736
> 
> 
> 
> 
> David Jencks <[EMAIL PROTECTED]>
> Sent by: [EMAIL PROTECTED]
> 12.02.2003 02:11
> Please respond to jboss-user
> 
>  
>         To:     [EMAIL PROTECTED]
>         cc: 
>         Subject:        Re: [JBoss-user] Session Bean (Txn Required) 
> commit error not being sent 
> back to the client
> 
> 
> Dain and I have been working to fix this farther.  He fixed the "missing
> cause" you found.
> I've made all these exceptions use Jason's NestedThrowable stuff so they
> should print well.
> 
> Also, there is an XAExceptionFormatter thing you can do to supply special
> formatting to xa exceptions: this works best with an xa driver: in 3.2
> there's one for Oracle.
> 
> In 3.0 there (will be shortly) one for the "XAExceptions" generated by
> jboss for the wrapped local jdbc drivers.
> 
> This should be committed very soon.
> 
> david jencks
> 
> On 2003.02.11 20:09 Gerald Turner wrote:
> > Gerald Turner <[EMAIL PROTECTED]> writes:
> > 
> > > I'll build the latest Branch_3_0 and give that a try.
> > 
> > Good news!
> > 
> > David's changes to 3.0.7RC1 have fixed this problem!
> > 
> > I noticed one minor problem: neither XAException, nor SQLException are
> > nested in the TransactionRolledbackException.  The exception I get is:
> > 
> >   java.rmi.ServerException (if remote)
> >    -> org.jboss.tm.JBossTransactionRolledbackException
> >        -> org.jboss.tm.JBossRollbackException
> >            -> null
> > 
> > I looked at the code for TxCapsule and it would appear that the
> > JBossRollbackException is initialialized with the XAException thrown in
> > commitResources but the 'cause' field is nulled by instanceDone first!
> > 
> > Even if that gets fixed I think it'd be really nice if the origin of
> the
> > XAException, in this case the commit method in
> LocalTxConnectionManager,
> > would include information about it's linkedException in the message.  I
> > inserted the following code in order to get ludicrous amounts of
> > SQLException information:
> > 
> >             StringBuffer message =
> >                 new StringBuffer("Could not commit local tx: "
> >                                  + re.getMessage());
> >             boolean paren = false;
> >             if (re.getErrorCode() != null) {
> >                 if (!paren) {
> >                     message.append(" (");
> >                     paren = true;
> >                 }
> >                 message.append("ErrorCode: ");
> >                 message.append(re.getErrorCode());
> >             }
> >             if (re.getLinkedException() != null) {
> >                 if (!paren) {
> >                     message.append(" (");
> >                     paren = true;
> >                 }
> >                 Exception linked = re.getLinkedException();
> >                 message.append("LinkedException: ");
> >                 message.append(linked);
> >                 if (linked instanceof SQLException) {
> >                     SQLException sql = (SQLException) linked;
> >                     while (sql != null) {
> >                         message.append("; SQLException");
> >                         boolean comma = false;
> >                         if (sql != linked) {
> >                             if (comma)
> >                                 message.append(',');
> >                             message.append(" Message=");
> >                             message.append(sql.getMessage());
> >                             comma = true;
> >                         }
> > 
> >                         if (comma)
> >                             message.append(',');
> >                         message.append(" ErrorCode=");
> >                         message.append(sql.getErrorCode());
> >                         comma = true;
> > 
> >                         if (comma)
> >                             message.append(',');
> >                         message.append(" SQLState=");
> >                         message.append(sql.getSQLState());
> >                         comma = true;
> > 
> >                         sql = sql.getNextException();
> >                     }
> >                 }
> >             }
> >             if (paren)
> >                 message.append(')');
> > 
> >             XAException e = new XAException(message.toString());
> >             if (re.getCause() == null && re.getLinkedException() !=
> >             null)
> >                 e.initCause(re.getLinkedException());
> >             else
> >                 e.initCause(re);
> > 
> > 
> > An example message looks like this:
> > 
> >   Could not commit local tx: SQLException (LinkedException:
> > java.sql.SQLException: ORA-02091: transaction rolled back\nORA-02290:
> > check constraint (OMS.SYS_C004928) violated\n; SQLException
> > ErrorCode=2091, SQLState=42000)
> > 
> > Which is cool because somebody can figure out what SYS_C004928 is made
> > out of.
> > 
> > -- 
> > Gerald Turner    Email: [EMAIL PROTECTED]    Phone: (503) 788-1720
> > GPG: 0xFA8CD6D5  21D9 B2E8 7FE7 F19E 5F7D  4D0C 3FA0 810F FA8C D6D5
> > 
> > 
> > -------------------------------------------------------
> > This SF.NET email is sponsored by:
> > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> > http://www.vasoftware.com
> > _______________________________________________
> > JBoss-user mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/jboss-user
> > 
> > 
> 
> 
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
> 
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
> 
> 
> 
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
> 
> 


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to