Hi. You've probably considered this already, but it's worth noting that it may not necessarily be the Axis client that's hanging, but could be the remote service. Have you checked to see whether the call is getting as far as the remote service? (the org.apache.axis.utils.tcpmon tool may be useful for this). Anyway, like Cyrille says, you should try and generate a thread dump (hit CTRL-Break in the JVM in Windows).
Neil. -----Original Message----- From: Alsarraf, Laheeb (NIH/OD) [C] [mailto:[EMAIL PROTECTED] Sent: Tuesday, 31 January 2006 6:02 a.m. To: [email protected] Subject: RE: Generated code not Thread safe Neil, I checked out the discussion thread and I do use a new Stub object but the generated code still hangs unless I use Synchronize around my call. Here is the run() method I use in my test class which extends Thread. public void run(){ System.out.println("Starting Thread:" + threadName); try{ EUtilsServiceLocator eUtilService = new EUtilsServiceLocator(); EUtilsServiceSoap utils = eUtilService.geteUtilsServiceSoap(); ESummaryRequest params = new ESummaryRequest(); params.setDb("pubmed"); params.setId(pubMedId); Date startTimeEsum_ = new Date(); System.out.println("Thread:" + threadName + ". " + "Calling utils.run_eSummary ===================="); // When I use this line as is then the code hangs. ESummaryResult eSummaryRes = utils.run_eSummary(params); /* When I replace the above code line with this commented code then the client returns successfully. ObjectLock obj = ObjectLock.getInstance(); synchronized(obj) { ESummaryResult eSummaryRes = utils.run_eSummary(params); } */ }catch(Exception e){ System.out.println("Exception in Thread:" + threadName + "\n" + e); stop(); } }// End run() Thanks Laheeb Alsarraf -----Original Message----- From: Ferguson, Neil, VF-NZ [mailto:[EMAIL PROTECTED] Sent: Sunday, January 29, 2006 7:17 PM To: [email protected] Subject: RE: Generated code not Thread safe Hi. You might find this recent discussion on this mailing helpful: http://marc.theaimsgroup.com/?l=axis-user&m=113771126214607&w=2 Basically, the generated stub doesn't seem to be thread-safe, but it doesn't seem to be very expensive to create a new stub each time you want one. The service locator does seem to be thread-safe (and is relatively expensive to create), so you can cache this. Hope this helps. Neil. -----Original Message----- From: Alsarraf, Laheeb (NIH/OD) [C] [mailto:[EMAIL PROTECTED] Sent: Saturday, 28 January 2006 8:51 a.m. To: [email protected] Subject: Generated code not Thread safe Hello, I have used axis 1.1.2 and axis 1.1.3 to generate client code for a web service. I tested the generated code for multithreading and the program deadlocks. I added "Synchronized" keyword in the method createCall() of the generated code and that solved the problem. Has anyone had thread safety problems with web service client code generated using axis. Here is the command I use to generate the code: java -cp %AXISCP% org.apache.axis.wsdl.WSDL2Java --timeout -1 %* Thanks Laheeb Alsarraf ------------------------------------------------------------------------ ----------------------- Have you seen our website?.... http://www.vodafone.co.nz Manage Your Account, check your Vodafone Mail and send web2TXT online: http://www.vodafone.co.nz/myvodafone CAUTION: This correspondence is confidential and intended for the named recipient(s) only. If you are not the named recipient and receive this correspondence in error, you must not copy, distribute or take any action in reliance on it and you should delete it from your system and notify the sender immediately. Thank you. Unless otherwise stated, any views or opinions expressed are solely those of the author and do not represent those of Vodafone New Zealand Limited. Vodafone New Zealand Limited 20 Viaduct Harbour Avenue, Private Bag 92161, Auckland 1030 Telephone + 64 9 355 2000 Facsimile + 64 9 355 2001 ----------------------------------------------------------------------------------------------- Have you seen our website?.... http://www.vodafone.co.nz Manage Your Account, check your Vodafone Mail and send web2TXT online: http://www.vodafone.co.nz/myvodafone CAUTION: This correspondence is confidential and intended for the named recipient(s) only. If you are not the named recipient and receive this correspondence in error, you must not copy, distribute or take any action in reliance on it and you should delete it from your system and notify the sender immediately. Thank you. Unless otherwise stated, any views or opinions expressed are solely those of the author and do not represent those of Vodafone New Zealand Limited. Vodafone New Zealand Limited 20 Viaduct Harbour Avenue, Private Bag 92161, Auckland 1030 Telephone + 64 9 355 2000 Facsimile + 64 9 355 2001
