Hi Mike,
Getting back to you again. We identified the issue of the problem but we are stucked on what direction to go. The original developers of the code put in some logic (db handling) on the ejbPassivate callback method. In this method (which you see above) has a indirect call to getConnection which causes the error.
public void ejbPassivate()
{
......// SOME CODE HERE {
JobJDBCMgr m_mgr = (JobJDBCMgr) getJDBCManager();
byte[] rawActiveJob = null;
try
{
rawActiveJob = m_activeJob.toByteArray();
}
catch( IOException e )
{
throw new EJBException( e );
}
m_mgr.updateWithActiveJob(getJobData(), rawActiveJob, getId() );
......// SOME CODE HERE
}
else
......// SOME CODE HERE
}
......// SOME CODE HERE
}
Most of the ejbCallBack methods have their own method variable JobJDBCMgr. I tried to create CLASS level JDBC manager and it did solve the problem.. (TEMPORARILY). This solution is working for some logic flow but NOT for all business logic (processes that takes around few seconds (10 secs or more)). Why I created a Class level variable - I want to retain the instance of the JobJDBCMgr Object when the Bean is pushed into the POOL.
Do you have any idea on how to resolve this issue? My timeout is set to a very high value (42000).
Hoping for your reply.