I am supporting a multi-threaded server application which uses Axis as a 
web services client. We observe at what appear random and rare 
occasions (< less than once a week or less than 1 in 100000 requests) 
that thread 1 sends a request which is actually a duplicate of a 
request send by a thread 2 and is not the request it should actually 
send. All debugging / logging seems to indicate that Axis is the 
culprit but given that it is not reproducible in our test environments 
it is impossible to be certain about this. To be a bit more precise in 
describing what is happening:

Assume the service we are calling is about retrieving an imaged document 
page by page, i.e. the service is something like getImage(docid, 
pageid). So we have thread 1 dealing with document A and thread 2 with 
document B.

So thread 1 calls 'getImage(docid A, pageid X)' and thread 2 
simultaneously calls 'getImage(docid B, pageid Y)'. However, both 
thread 1 and thread 2 send the same SOAP message requesting the same 
docid, pageid. Logging indicates that we call the Axis client stub  
with the correct parameters and logging also shows the wrong outgoing 
SOAP messages.

We never observed such a mixup when different services are invoked 
simultaneously, i.e. thread 1 calls 'getImage(...)' and thread 2 
calls 'getDocumentDetails(...)'. However, we did observe the same 
problem with simultaneous calls to services other than getImage.

As the documents we are dealing with are A) business critical (related 
to property dealings like mortgages, titles, ...) and B) the customer 
pays for them returning the wrong data is actually very bad.

It is also worthwhile mentioning that these problems only appeared after 
a deployment of new faster multi CPU hardware. The problem doesn't 
appear to be JRE specific, that is is has been observed under Java 1.4 
and 1.5.

We are close to throwing Axis out (as this is, if my recollections are 
correct, the 3rd multi-threading issue we have come across in Axis) but 
I am wondering if anyone, especially any experienced Axis committers, 
may have an idea where in the Axis codebase the problem could be?

Thanks

Manuel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to