Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

how can we increase the tranasaction time for ejb?

 
Dharmendra Sharma
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I am facing some problem for more records are fetched from database. It seems to be transacion time out, so if we can increase the transaction time this may resolved. I don't have idea how to increase the transaction time for particular ejb. I guess it should be provided in ibm-ejb-jar-ext.xmi file, Please any one help me out.

the thrown exception is attached below.


thanks & regards,
Dharmendar Sharma

java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.nextlinx.tc.GenericInvoke.dynamicEjbInvoke(GenericInvoke.java:53)
at com.nextlinx.tc.ejb.LD.LDEjb.callScreen(LDEjb.java:145)
at com.nextlinx.tc.ejb.LD.EJSRemoteStatelessLD_3f30735a.callScreen(Unknown Source)
at com.nextlinx.tc.ejb.LD._LD_Stub.callScreen(_LD_Stub.java:1021)
at sun.reflect.GeneratedMethodAccessor207.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.nextlinx.tc.GenericInvoke.dynamicInvoke(GenericInvoke.java:37)
at com.nextlinx.tc.LdClient.getScreen(LdClient.java:48)
at org.apache.jsp._LicenseDetermination._jspService(_LicenseDetermination.java:527)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:662)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
at com.nextlinx.tc.Navigator.service(Navigator.java:225)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:114)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
Caused by: javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 0x0 No; nested exception is:
org.omg.CORBA.TRANSACTION_ROLLEDBACK: javax.transaction.TransactionRolledbackException: ; nested exception is:
javax.transaction.TransactionRolledbackException: Transaction is ended due to timeout vmcid: 0x0 minor code: 0 completed: No
at com.ibm.CORBA.iiop.UtilDelegateImpl.mapSystemException(UtilDelegateImpl.java:208)
at com.ibm.CORBA.iiop.UtilDelegateImpl.wrapException(UtilDelegateImpl.java:684)
at javax.rmi.CORBA.Util.wrapException(Util.java:277)
at com.nextlinx.tc.ejb._TcMethods_Stub.executeSpLicDet(_TcMethods_Stub.java:928)
... 51 more
Caused by: org.omg.CORBA.TRANSACTION_ROLLEDBACK: javax.transaction.TransactionRolledbackException: ; nested exception is:
javax.transaction.TransactionRolledbackException: Transaction is ended due to timeout vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at com.ibm.rmi.util.ProxyUtil.copyObject(ProxyUtil.java:320)
at com.ibm.CORBA.iiop.UtilDelegateImpl.copyObject(UtilDelegateImpl.java:789)
at javax.rmi.CORBA.Util.copyObject(Util.java:314)
at com.nextlinx.tc.ejb._TcMethods_Stub.executeSpLicDet(_TcMethods_Stub.java:927)
... 51 more
 
Scott Selikoff
author
Saloon Keeper
Posts: 4014
18
Eclipse IDE Flex Google Web Toolkit
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Wow, such a huge stack trace for such a simple problem. The transaction timeout is set on the server and can be increased as you wish. Open up the Admin console and select your server instance. I don't recall exactly where it is but its not at all hard to find.
 
Brian Hennessy
Ranch Hand
Posts: 57
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi
The session timeout can be configured on the server but your problem may also be due to the SQL being executed.
We have had this problem when the SQL takes longer than 180 seconds to execute. Can you test the SP in something like TOAD/PL/SQL developer (assuming your using Oracle) to see how long it takes. If it exceeds the session timeout on the server I'd look to try optimize the stored procedure code.

Another problem we had was that db stats weren't run in a long while in production. Not 100% sure what was involved with this but when the DBA ran whatever Oracle tool to look after the stats it prevented the transaction timeout problem, (We were considering rewriting the stored procedure luckily we didn't need to )


Finally the least likely reason are developers debugging the stored procedures and causing locks on the db.
 
Saurabh Rai
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Solution
Increase the lifetime timeout value of the WebSphere ESB application server:
1.If necessary, restart the application server.
2.Log in to the console.
a.Open a browser, and navigate to the following URL: http://host_name:9060/ibm/console.

Where:
host_name is the fully qualified host name of the server where the application or the network deployment manager is deployed
9060 is the port used to access the console (The default port is 9060.)
.
b.Enter your user ID and password. The user ID is required. A password is only required if security is enabled.
c.Click Log in.
3.Click Servers > Application Servers.
4.Click server_name.
5.Under Container Services, click Transaction Service.
6.Type a larger value for Total transaction lifetime timeout. For more information about setting the Transaction service settings, consult the WebSphere Application Server Information Center using the link provided below.
7.Restart the application server to make your changes effective.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic