We are trying to do a EJBLookup and then create an EJBHome and thereafter invoke Method calls on a remote EJB Deployment.
Please see the attached code "WorkflowClient_Caching.java" for details.
Consider that the EJB is deployed on Server A running under Sun Java System Application Server 8.1. The client that we have written looks up the EJB, and calls create and then invokes Method calls.
Please find the various scenarios below:
1. When we did a lookup multiple times in a single threaded application, the Server A used to hang thereby giving us a error on the client side. As a result of which we introduced caching the EJBHome object.
2. After caching, the EJB Looks up work find and have been tested on JDK 1.5.0_10 and are working on Solaris as well as Linux.
3. The method call to the EJB gives a problem when run under JDK 1.6 in a multi-threaded environment.
We carried out the following test cases:
a. Multithreaded client with JDK 1.5 worked fine.
b. Single Threaded Client with JDK 1.5 worked fine.
c. Single Threaded Client with JDK 1.6(the JDK with which portal code is compiled and bundled on WINDOWS), Does work
d. MultiThreaded Client with JDK 1.6 on Windows DOES NOT WORK, hangs.
The fact that the EJB Method calls do execute when run under 1.5 seems to remove the possibility that there might be a problem with Server 'A'. Had it been the case, even the calls would have failed under JDK 1.5
The problem seems to be with:
JDK 1.6 irrespective of platform(Solaris or Windows), hangs when a EJB Method call is invoked.
if these 3 are the methods called, then by uncommenting each one of them sequentially, the program execution hangs when .checkOutTasks is uncommented. which does not hang under JDK1.5