Hi again,

Yes, but the current kandula sources always use local activiation
services to create new contexts. All interposed coordinators hence must
have access (= can send messages) to the "local" master coordinator.

This again I think is possible in the current implementation since the begin method of the TM allows you to specify an activation Service to use. If you do not specify an activation service it uses the default service. Isn't this the problem you are trying to address?

Exactly. With the patch, the default participant services URL and the default activation services URL need no more be the same, and both can be configured in the kandula.properties file - no coding necessary. Any application that does not want to use the default services may still, as you describe, tell the TM which services to use.


There 2 things here. sync vs. async and using the same transport connection. If you use sync port types with a bidirectional transport like HTTP this problem does not arise.

I'm not sure whether that actually works. Do you have a pointer at hand?
The Axis FAQ and documentation state that it's possible to reuse HTTP Connections at the client with the keep-alive feature and send multiple requests (calls) over the same connection. Since we need to send a message in the other direction, this does not seem the solution you mentioned.

It seems to me that there is no chance to do this with SOAP (if I correctly understood what you meant):

CompletionInitiator             CompletionCoordinator
                >- open HTTP connection ->
  send COMMIT       ------------->
                   <------------- reply to COMMIT

                                    [do work]

                   <------------- send COMITTED/ABORTED
                    -------------> reply to COMMITTED/ABORTED

                 ?? close connection ??


The code in ATCoordinatorImpl that notifies all completion protocol participants seems to create a new connection for all participants:
(line 408) - at least there is no sign of a connection reuse:

        CompletionInitiatorStub p = new CompletionInitiatorStub(
                (EndpointReference) iter.next()
        );

        if (status == AT2PCStatus.ABORTING)
                p.abortedOperation(null);
        else
                p.committedOperation(null);

I'm also not sure if I understood your comment about using a different port style right, after all it seems to be impossible to reuse http transport connections for messages in different directions, regardless of the port type. Could you please give more details on that?


Thanks again,

        -hannes

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

Reply via email to