axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eran Chinthaka (JIRA)" <>
Subject [jira] Commented: (AXIS2-1061) sendReceiveNonBlocking fails to send multiple (identical) requests
Date Wed, 23 Aug 2006 11:37:14 GMT
    [ ] 
Eran Chinthaka commented on AXIS2-1061:

Few more comment on this.

1. Yes you can use the same instance of the callback, if you wait the first one to finish
by checking isComplete --> you are back to blocking invocation :D. But if you do simultaneous
invocations at the same time, with the same instance of the callback object, you might get
in to trouble.

2. You are trying to use the same payload for two invocations. Let me explain how this is
handled inside the engine.

When this payload is added to the first SOAP envelope (calling addChild of SOAPBody), the
detach method of the payload will be called. In this method we remove all the existing links
to the parents this payload has.
Ok, then you add the same payload to the SOAP envelope. Again, the detach method will be called.
Here the payload gets out of the first SOAPEnvelope and attaches itself to the second SOAP

Thats the reason behind you getting, one SOAP envelope with the payload and the other without
it. And thats why cloning is encouraged. 

> sendReceiveNonBlocking fails to send multiple (identical) requests
> ------------------------------------------------------------------
>                 Key: AXIS2-1061
>                 URL:
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: client-api
>         Environment: Windows XP sp2, jdk 1.5.03, mac os X 10.4.7, jdk 1.5_06, axis2 17/08/06
>            Reporter: Michele Mazzucco
>            Priority: Critical
> The call sendReceiveNonBlocking call fails when multiple, identical messages are sent.
More in detail, the first send succeeds, but the second fails because the message is sent
with an empty SOAP body. A workaround is to interleave two consecutive send operations by
(at least) 600 ms (on my system).
> In other words:
> for (int i = 0; i < execution.requestNum; i++) {
> 	OMElement payload = getTestOMElement();
> 	sender.sendReceiveNonBlocking(payload, callback);
> }
> succeeds, while:
> OMElement payload payload = getTestOMElement();
> for (int i = 0; i < execution.requestNum; i++) {
> 	sender.sendReceiveNonBlocking(payload, callback);
> }
> fails, because (from the second send) the SOAP message is empty

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message