Hi Simon,
thanks for your help. I am aware of this and we changed this setting but
sometimes when the load on the server is too load, the transactions timeout
anyway. I would still assume that if a transaction times out, it shouldn't
affect anything else and I shouldn't get (couple minutes later) the
following errors. But again, I am not sure if it is our problem or Jonas, I
am just trying to understand what is going on.
Regards,
Miro
-----Original Message-----
From: Simon Oldeboershuis [mailto:[EMAIL PROTECTED]]
Sent: Monday, July 09, 2001 12:20 PM
To: Halas, Miroslav
Subject: Re: XA error
Hi Miro,
it sounds like your transaction timeout triggers the end of the
transaction before you are finished. You can change the setting of the
timeout in the description of your database.properties
Oracle.properties
# max wait time if more than connmaxthreads threads request conn
# value is in seconds
jdbc.connexcltimeout 180
With the transactions timeout above you would get an timeout time of
three minutes.
hope this helps!
Simon
"Halas, Miroslav" schrieb:
>
> Hi,
>
> I went through our source code and it seems like we are closing all
> connections.
> The current code looks like this
>
> try
> {
> conDBConnect = m_dsDataSource.getConnection();
> // This prepared statement cannot be cached because we don't hold
> // the connection all the time
> pstmQuery = conDBConnect.prepareStatement(strStatement);
>
> // Do something
> }
> catch (SQLException sqleExc)
> {
> Log.getInstance().error( "Failed to execute query. Original
> message: "
> + sqleExc );
> throw new EJBException( sqleExc );
> }
> finally
> {
> if (pstmQuery != null)
> {
> try
> {
> pstmQuery.close();
> }
> catch (SQLException sqleExc)
> {
> // Ignore this
> Log.getInstance().warn("Proceeding although failed to close
> the statement. Original message: "
> + sqleExc);
> }
> }
> if (conDBConnect != null)
> {
> try
> {
> conDBConnect.close();
> }
> catch (SQLException sqleExc)
> {
> // Ignore this
> Log.getInstance().warn("Proceeding although failed to close
> the connection. Original message: "
> + sqleExc);
> }
> }
> }
>
> I'll try to put the connection closing to another finally of the query
> closing, but that doesn't seem like an issue.
> The problem is that I cannot consistently reproduce this, I found this
> errors looking through 30MB log file for our server for several days. This
> seems to be the sequence of events which has happened.
>
> 1. First we got message:
>
> TransactionImpl.timeoutExpired: set rollback only
1018307595006675
> TransactionImpl.timeoutExpired: Probable deadlock -> rollback
> 2001-07-06 12:39:59:109
> TransactionImpl.timeoutExpired: set rollback only
1018307632447255
> TransactionImpl.timeoutExpired: Probable deadlock -> rollback
> <181>getICtx IT: transaction rolled back
> <181>getICtx IT: no more transaction
> preinvoke exception:
> javax.transaction.TransactionRolledbackException: rollback occured while
> waiting
> System Exception in business method:javax.ejb.EJBException
> Cannot set transaction as rollback only
> <181>getICtx IT: transaction rolled back
> <181>getICtx IT: no more transaction
> preinvoke exception:
> javax.transaction.TransactionRolledbackException: rollback occured while
> waiting
> System Exception in business method:javax.ejb.EJBException
> Bad status=ROLLEDBACK
> System Exception raised by request:
> javax.ejb.EJBException
> System Exception in business method:javax.ejb.EJBException
> java.rmi.RemoteException: RuntimeException thrown by an enterprise
> Bean; nested exception is:
> javax.ejb.EJBException
> javax.ejb.EJBException
> at
>
com.compuware.cgf.beans.session.SessionTrackingControllerBean.login(SessionT
> rackingControllerBean.java:224)
>
> 2. Then some time later we got message (with no other errors in between)
>
> javax.transaction.SystemException: Cannot send XA
> end:javax.transaction.xa.XAException
> at
>
org.objectweb.jonas_tm.TransactionImpl.delistResource(TransactionImpl.java:2
> 01)
> at
org.objectweb.jonas_tm.Current.doDetach(Current.java:639)
> at org.objectweb.jonas_tm.Current.commit(Current.java:202)
> at
> org.objectweb.jonas_ejb.container.JBean.postinvoke(JBean.java:182)
> at
>
org.objectweb.jonas_ejb.container.JBeanSession.postinvoke(JBeanSession.java:
> 190)
> at
>
org.objectweb.jonas_ejb.container.JBeanSessionSl.postinvoke(JBeanSessionSl.j
> ava:166)
> at
>
com.compuware.cgf.beans.user.JOnAScom_compuware_cgf_beans_user_UserControlle
> rRemote.remove
> (JOnAScom_compuware_cgf_beans_user_UserControllerRemote.java:992)3. and
then
> some time later we got message (with no other errors in between)
>
> Cannot enlist XAResource:javax.transaction.SystemException: Cannot
> send XA start:javax.transaction.xa.XAException: XA START: mixed
transactions
> Connection will not be enlisted in a transaction
> java.sql.SQLException: Cannot enlist XAResource
> System Exception in business method:javax.ejb.EJBException
> System Exception in business method:javax.ejb.EJBException
> System Exception raised by request:
> javax.ejb.EJBException
> XAResource ---> rollback: XA START without XA END
> WARNING: Connection not closed by caller
> System Exception in business method:javax.ejb.EJBException
> java.rmi.RemoteException: RuntimeException thrown by an enterprise
> Bean; nested exception is:
> javax.ejb.EJBException
> javax.ejb.EJBException
> at
> com.compuware.cgf.beans.session.SessionTrackingControllerBean.login
> (SessionTrackingControllerBean.java:224)
>
> Can you see any problem with our code or with the sequence of action
> happened. Just one question, we get hold of data source in
> setSessionContext() and then keep it and just use it to get connection
when
> we need it (and immidiately relase it)
>
> Thanks,
>
> Miro Halas
>
> -----Original Message-----
> From: Philippe Durieux [mailto:[EMAIL PROTECTED]]
> Sent: Monday, July 09, 2001 2:52 AM
> To: Halas, Miroslav
> Cc: [EMAIL PROTECTED]
> Subject: Re: XA error
>
> "Halas, Miroslav" wrote:
> >
> > Hi Jonas team,
> >
> > can you please explain what can cause error like this. Thanks a lot,
> >
> > Miro Halas
> >
> > Cannot enlist XAResource:javax.transaction.SystemException: Cannot send
XA
> > start:javax.transaction.xa.XAException: XA START: mixed transactions
> > Connection will not be enlisted in a transaction
> > java.sql.SQLException: Cannot enlist XAResource
> > System Exception in business method:javax.ejb.EJBException
> > System Exception in business method:javax.ejb.EJBException
> > System Exception raised by request:
> > javax.ejb.EJBException
> > XAResource ---> rollback: XA START without XA END
> > WARNING: Connection not closed by caller
>
> It seems that you have opened a connection and you forgot to close it.
> Jonas connection management works weel only if all connections are closed
> by caller. This is requiered for the connection pool.
>
> > System Exception in business method:javax.ejb.EJBException
> > java.rmi.RemoteException: RuntimeException thrown by an enterprise Bean;
> > nested exception is:
> > javax.ejb.EJBException
> > javax.ejb.EJBException
> > at
> >
>
com.compuware.cgf.beans.session.SessionTrackingControllerBean.login(SessionT
> > rackingControllerBean.java:224)
> > at
> >
>
com.compuware.cgf.beans.session.JOnAScom_compuware_cgf_beans_session_Session
> >
>
TrackingControllerRemote.login(JOnAScom_compuware_cgf_beans_session_SessionT
> > rackingControllerRemote.java:37)
> > at
> >
>
com.compuware.cgf.servlets.session.LoginServlet.verifyLogin(LoginServlet.jav
> > a:393)
> > at
> >
>
com.compuware.cgf.servlets.session.SessionServlet.service(SessionServlet.jav
> > a:268)
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > at
> >
>
com.mortbay.HTTP.Handler.Servlet.ServletHolder.handle(ServletHolder.java:474
> > )
> > at
> >
>
com.mortbay.HTTP.Handler.Servlet.ServletHandler.handle(ServletHandler.java:4
> > 30)
> > at
> >
>
com.mortbay.HTTP.Handler.Servlet.ServletHandler.handle(ServletHandler.java:2
> > 86)
> > at
> com.mortbay.HTTP.HandlerContext.handle(HandlerContext.java:1087)
> > at com.mortbay.HTTP.HttpServer.service(HttpServer.java:662)
> > at
> com.mortbay.HTTP.HttpConnection.service(HttpConnection.java:457)
> > at
com.mortbay.HTTP.HttpConnection.handle(HttpConnection.java:317)
> > at
> > com.mortbay.HTTP.SocketListener.handleConnection(SocketListener.java:99)
> > at
com.mortbay.Util.ThreadedServer.handle(ThreadedServer.java:254)
> > at
> > com.mortbay.Util.ThreadPool$PoolThreadRunnable.run(ThreadPool.java:601)
> > at java.lang.Thread.run(Thread.java:484)
> > ----
> > To unsubscribe, send email to [EMAIL PROTECTED] and
> > include in the body of the message "unsubscribe jonas-users".
> > For general help, send email to [EMAIL PROTECTED] and
> > include in the body of the message "help".
>
> --
> Philippe Durieux ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Bull - 1 rue de Provence - 38432 Echirolles Cedex France
> [EMAIL PROTECTED]
> -> Download our EJBServer at http://www.evidian.com/ejb <-
> ----
> To unsubscribe, send email to [EMAIL PROTECTED] and
> include in the body of the message "unsubscribe jonas-users".
> For general help, send email to [EMAIL PROTECTED] and
> include in the body of the message "help".
----
To unsubscribe, send email to [EMAIL PROTECTED] and
include in the body of the message "unsubscribe jonas-users".
For general help, send email to [EMAIL PROTECTED] and
include in the body of the message "help".