It seems like Axis2 does not allow a service specific Module to deploy a global handler. (and this seems quite logical). Shall we make Sandesha2 a global module and add a switch to make it available for each service. This will be a paramater in service.xml
e.g.:
<service>
<parameter name=RMenabled" >true</parameter>
</service>
I belive this is the way Security Module work currently (please correct me if I'm wrong).
Thanx,
Chamikara
On 10/22/05, Chamikara Jayalath <[EMAIL PROTECTED]> wrote:
Hi All,
In WS-RM it is always possible to receive duplicate messages. Both client and server will be retransmitting application messages and some control messages (e.g. Create sequence) as well. So it is always possible for the receiver to receive the same message twice or more.
But it seems that this could violate the MEP concept. Consider an RM interaction where client has send a one application mesage and expect a response. The server sends the response once and wait for some time. Since the ack message sent by the client does not arrive in time, the server re-transmits the message. Unfortunately the client receive both messages and both have the same wsa:relatesTo value. Since this is an in-out mep, only the first message get added to the correct OperationContext. The second message will most certailly be dispatched incorrectly.
Because of this IMO Sandesha2 should have a global handler that detect duplicate messages. It should be able to detect the messages of RM enabled inteactions and it should stop the propogation of such messages. Since this should happen before dispatching. This has to be a GLOBAL handler.
Thanx,
Chamikara
