|
Thanks Chamikara.
Jaliya
----- Original Message -----
Sent: Friday, May 12, 2006 4:25 PM
Subject: Re: [Axis2] How to run multiple
clients using same ConfigurationContext
Hi Jaliya,
I could get this working after two
changes.
Firstly Axis2 stops the SAS listner when the
serviceClient.finalizeInvoke () is called. so I commented out the following
line in the finally block. sender.finalizeInvoke();
Secondly
there seems to be a bug in the serviceclient.sendReceiveNonBlocking(QName,
OMElement,Callback) method. It is setting a new CallbackReceiver every
time the method is called. Insted this should be set only if its not
already there in the operation. So I corrected this method as
following.
public void
sendReceiveNonBlocking(QName operation, OMElement
elem,
Callback callback) throws AxisFault
{ MessageContext mc = new
MessageContext();
fillSoapEnvelope(mc, elem);
OperationClient mepClient =
createClient(operation); // here
a blocking invocation happens in a new thread, so
the // progamming model is non
blocking
mepClient.setCallback(callback);
mepClient.addMessageContext(mc);
if (options.isUseSeparateListener())
{ if
(callbackReceiver == null)
{
callbackReceiver = new
CallbackReceiver();
}
if
(axisService.getOperation(operation).getMessageReceiver()==null)
axisService.getOperation(operation).setMessageReceiver(callbackReceiver);
}
mepClient.execute(false); } (changed line is in
bold).
After these two changes this worked for me. I tested upto
100 threads.
Chamikara
On 5/13/06, Jaliya
Ekanayake <[EMAIL PROTECTED]>
wrote:
Oops wrong file. Please use the attached
On 5/12/06, Jaliya
Ekanayake <
[EMAIL PROTECTED]> wrote:
Hi Devs,
I wanted to run several clients to measure some
performance. The attached client does not get the result for all the
threads and it hangs. IMHO the problem is due to the way we use the client
side transport listener. If client has some control at least to stop
it then we will be able to handle this kind of scenarios.
Although
I am using the same service for all the clients a more realistic example
would be to invoke two services (or two operations) asynchronously sharing
same configuration context.
Can someone point me what is the error
I have in the attached code.
Thanks,
Jaliya
|