You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@synapse.apache.org by Jose Luis Alba <jo...@yahoo.es> on 2008/01/28 09:49:04 UTC

Message identifier and messageId

Hi all,

I'm writing a custom security mediator and I need to unique identify a request-response flow within Synapse so as to store certain security data.
    
I had thought to use the messageID that offers the Synapse MessageContext but I've found that:

A) At request phase the messageID is empty until it arrives to the send mediator. At send moment the axis2 MessageContext is cloned and a random messageID is generated for the new (cloned) message. (This occurs in Axis2FlexibleMEPClient.cloneForSend)
B) At response phase the messageID is the generated on the previous point.

Due to that, mediators prior to the send mediator have no messageID (AFAIK), then:

1. There's another id (of some form) that I can use for the purpose of unique identify a request-response flow?
2. Why the messageId is not set as soon as Synapse mediation starts and use it for the rest of the mediation?

Thanks all,


Jose



       
______________________________________________ 
¿Con Mascota por primera vez? Sé un mejor Amigo. Entra en Yahoo! Respuestas http://es.answers.yahoo.com/info/welcome

Re: Message identifier and messageId

Posted by Ruwan Linton <ru...@gmail.com>.
Hi Jose,

AFAIK, synapse has the messageID soon after it passes the transport phase
(that is even before it starts the mediation). There are two possibilities
that this problem might occur. That is; if you are using the servlet
transport or if you use a clone mediator in the middle of the mediation.

So, first of all, let me check with the transport that you are using. Are
you using the war distribution of synapse or have you changed the http/s
transports in the axis2.xml?

There was an issue in the clone mediator which does not copies the
messageID, we have fixed that on the trunk and also on the release which
will be out in couple of hours (1.1.1) to generate a uuid and put that as
the message id while putting the original message id as a property in to the
cloned message. Are you using one of the clone or iterate mediators in the
mediation path?

Last, what is the version of synapse that you are using?

Thanks,
Ruwan

On Jan 28, 2008 2:19 PM, Jose Luis Alba <jo...@yahoo.es> wrote:

> Hi all,
>
> I'm writing a custom security mediator and I need to unique identify a
> request-response flow within Synapse so as to store certain security data.
>
> I had thought to use the messageID that offers the Synapse MessageContext
> but I've found that:
>
> A) At request phase the messageID is empty until it arrives to the send
> mediator. At send moment the axis2 MessageContext is cloned and a random
> messageID is generated for the new (cloned) message. (This occurs in
> Axis2FlexibleMEPClient.cloneForSend)
> B) At response phase the messageID is the generated on the previous point.
>
> Due to that, mediators prior to the send mediator have no messageID
> (AFAIK), then:
>
> 1. There's another id (of some form) that I can use for the purpose of
> unique identify a request-response flow?
> 2. Why the messageId is not set as soon as Synapse mediation starts and
> use it for the rest of the mediation?
>
> Thanks all,
>
>
> Jose
>
>
>
>
> ______________________________________________
> ¿Con Mascota por primera vez? Sé un mejor Amigo. Entra en Yahoo!
> Respuestas http://es.answers.yahoo.com/info/welcome
>



-- 
Ruwan Linton
http://www.wso2.org - "Oxygenating the Web Services Platform"