Hi Benjamin,
Then you call the participate(String soapMsg, String id) of the TXWS
sending a common SOAP message of, for example a common debit
operation. With help of the id the TXWS loads the TransactionImpl of
the map and resumes the Transaction (by calling resume() on the
TransactionManagerImpl). It takes the SOAP messages and enhances it
with the coordination context by calling:
If I understood right what you are trying to do, this is not how that
should be done.
Kandula automatically begins and resumes transactions, even if they
span multiple threads or hosts: as soon as a SOAP message comes in, it
is (automatically! that's why you need to modify the
server-config.wsdd file) scanned for transaction headers. If found,
the given transaction is resumed for the current thread.
Okay, that's fine, but I wonder why this is not working for me. My
scenario is like the following: I have a client called TransferClient.
This client calls debit and credit on different Banking WS. I do not
want to change the code of this client in any way. I want to intercept
the process of sending the message to the target banks, by forwarding
the messages to my TXWS. This will then begin a transaction, enhance the
original messages of debit and credit with the coordination context and
return them to the interceptor. The interceptor will then replace the
original with the enhanced messages and the sending process will
continue as if nothing had happened. (If you are familiar with AOP you
can imagine this as an Around Advice).
but the only problem is that the last ">" which closes the Envelope
tag is not there.
Do you use (or have in the classpath) the STAX Parser bundled with
Axis2 0.92? Please have a look at
http://issues.apache.org/jira/browse/AXIS2-290
I am using Axis 1.3 and never had any problems with it. When I do a
transaction in the common way everything is working. This happens only
in this special case..
Is my project realizable at all with kandula? I think there is maybe
a problem that the transaction is spanning several threads (Everytime
there is an operation on the TXWS there is a new one an there is one
for my client).
Yes, that can be done with kandula - keep in mind that everything that
relates to handling, creation, registration etc of transactions is
handled by kandula automatically. You just need to implement your
business logic, and the first service that decides to use a
transaction must call tm.begin() before calling any other service.
Running transactions will - if your handlers are deployed right -
automatically propagated to any other web service you call.
But how can Kandula distinguish between several concurrently running
transactions?
HTH
-hannes
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]