Since I'm only using axis as a client in a servlet (already threaded) , I removed all
references to threadlocal in about 4 classes total. That seemed to take care of the
problem with Call objects sticking around in the tomcat threadpool. Is there any
other way built into the system to do this? Anyone know?
Jennifer Jackson
Programmer/Analyst
-----Original Message-----
From: Jackson, Jen (CCI-Atlanta)
Sent: Friday, June 27, 2003 2:44 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: ThreadLocal Call objects using in a servlet memory leak ?
Has anyone else noticed that if you create an org.apache.axis.client.Call in a servlet
in tomcat, it consumes a thread and never dies? I seem to think this is because of
the ThreadLocal references throughout the classes. Is there something we can do to
avoid this? I am only following the documentation on how to use it, and calling the
generated code from a servlet:
try {
EdgeHealthPortType port = getService().getEdgeHealthPort();
modem = (String) map.get(UsageKeys.MODEM_MAC_ADDRESS_KEY);
//this is the generated function, which creates an org.apache.axis.client.Call
object,
//which gets somehow stuck in tomcat's threadpool forever.......
usageToday = port.getModemCurrentUsage(modem);
}
catch (javax.xml.rpc.ServiceException se) {
throwError(
modem,
se,
UsageKeys.ERROR_CURRENT_USAGE_NOT_AVAILABLE_KEY);
}
catch (java.rmi.RemoteException re) {
throwError(
modem,
re,
UsageKeys.ERROR_CURRENT_USAGE_NOT_AVAILABLE_KEY);
}
And ideas? Anyone else experience this? I used Jprofiler to diagnose this.
Jennifer Jackson
Programmer/Analyst