Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Transaction Timeout with session bean and JavaMail

1 view
Skip to first unread message

James Lawless

unread,
Feb 19, 2002, 2:50:23 PM2/19/02
to

Hello,

I am using a stateless session bean to send mails using JavaMail.

Every time the application needs to send a mail it calls this session bean which
looks up the mail properties from its environment entries and then sends using
static method Transport.send()

All was fine and dandy in test but since deploying to production I am getting
an exception, weblogic.transaction.internal.TimedOutException (full stack trace
below). I have another application deployed on the same app server which uses
JavaMail and the same mail server which seems to be working fine.

The other (non-EJB) mail application, which works, reads the mail properties from
a properties file rather then from environment entries.

I have read that I may change the transaction timeout attribute in the deployment
descriptors or on the console which I am about to try but even if that works I
would like to know why the transaction is timing out. Is it likely that looking
up the JNDI tree for the env-entries is the cause of the timeout?
Or could the problem be related to the mail itself?

And what's transactional about sending a mail anyway? Is there something I can
change there?

Thanks,

James

####<17-Feb-02 21:54:11 GMT> <Error> <EJB> <APPSYS02> <olbserver> <ExecuteThread:
'8' for queue: 'default'> <> <> <010026> <Exception during commit of transaction
Name=[EJB com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)],Xid=3124:76a9fc924e88c941(8247517),Status=Rolled
back. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed
out after 32 seconds
Name=[EJB com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)],Xid=3124:76a9fc924e88c941(8247517),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds
since begin=32,seconds left=30,activeThread=Thread[ExecuteThread: '8' for queue:
'default',5,Thread Group for Queue: 'default'],SCInfo[olbdomain+olbserver]=(state=active),properties=({weblogic.transaction.name=[EJB
com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+,
Resources={})],CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+)],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds
since begin=60,seconds left=23,SCInfo[olbdomain+olbserver]=(state=rolledback),properties=({weblogic.transaction.name=[EJB
com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+,
Resources={})],CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+): weblogic.transaction.internal.TimedOutException:
Transaction timed out after 32 seconds
Name=[EJB com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)],Xid=3124:76a9fc924e88c941(8247517),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds
since begin=32,seconds left=30,activeThread=Thread[ExecuteThread: '8' for queue:
'default',5,Thread Group for Queue: 'default'],SCInfo[olbdomain+olbserver]=(state=active),properties=({weblogic.transaction.name=[EJB
com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+,
Resources={})],CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+)
at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1118)
at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:441)
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1578)
at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:404)
at weblogic.transaction.internal.TransactionManagerImpl$1.run(TransactionManagerImpl.java:1544)
at java.lang.Thread.run(Thread.java:484)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Transaction timed out after 32 seconds

Name=[EJB com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)],Xid=3124:76a9fc924e88c941(8247517),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds
since begin=32,seconds left=30,activeThread=Thread[ExecuteThread: '8' for queue:
'default',5,Thread Group for Queue: 'default'],SCInfo[olbdomain+olbserver]=(state=active),properties=({weblogic.transaction.name=[EJB
com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+,
Resources={})],CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+) - with nested
exception:
[weblogic.transaction.internal.TimedOutException: Transaction timed out after
32 seconds
Name=[EJB com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)],Xid=3124:76a9fc924e88c941(8247517),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds
since begin=32,seconds left=30,activeThread=Thread[ExecuteThread: '8' for queue:
'default',5,Thread Group for Queue: 'default'],SCInfo[olbdomain+olbserver]=(state=active),properties=({weblogic.transaction.name=[EJB
com.vhi.hs.ejb.session.mailmanager.MailManagerBean.sendMail(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+,
Resources={})],CoordinatorURL=olbserver+192.168.2.24:7001+olbdomain+)]
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1468)
at weblogic.transaction.internal.TransactionImpl.checkIfCommitPossible(TransactionImpl.java:1366)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:208)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:188)
at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:225)
at com.vhi.hs.ejb.session.mailmanager.MailManagerBean_uvvnze_EOImpl.sendMail(MailManagerBean_uvvnze_EOImpl.java:46)
at com.vhi.hs.servlets.HealthStepsServlet.submitApplication(HealthStepsServlet.java:576)
at com.vhi.hs.servlets.HealthStepsServlet.doPost(HealthStepsServlet.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:263)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2390)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1959)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>
####<17-Feb-02 21:55:39 GMT> <Info> <HSTEPS> <APPSYS02> <olbserver> <ExecuteThread:
'8' for queue: 'default'> <> <> <000000> <EuroBean.getEuroBean() called>
####<17-Feb-02 21:55:39 GMT> <Info> <HSTEPS> <APPSYS02> <olbserver> <ExecuteThread:
'8' for queue: 'default'> <> <> <000000> <EuroBean Looking Up Euro Bean>
####<17-Feb-02 21:55:39 GMT> <Info> <HSTEPS> <APPSYS02> <olbserver> <ExecuteThread:
'8' for queue: 'default'> <> <> <000000> <Eu

Rob Woollen

unread,
Feb 19, 2002, 4:07:14 PM2/19/02
to
You shouldn't be running the mail send in a transaction. Change your transaction attribute to NotSupported for this method.

-- Rob

0 new messages