Hi Guillaume,
I am also interested in seeing such a feature, i.e. allowing the
properties of the initiating JBI exchange to be copied into the messages
leaving the process. Do you think it's a big thing to add ?
regards,
Roger
Hum, not sure if it will really help me.
Let me restate what I need: the incoming JBI exchange
contain a known property and I want to store it with the
process instance somehow (in a variable or any other way).
Then, when an invocation is performed, I meed to set this
property on the newly created JBI exchange.
This is not about correlation for the BPEL process itself.
And I can't reuse something generated by Ode as the property
value is usually already set on the incoming exchange.
So I'm not sure if the session ids can be used, especially
because i need to use existing values and not let Ode
generate those. And it seems there is no way to override that
currently: see BpelRuntimeContextImpl.initializePartnerLinks
I was thinking about using the MessageExchange DAO to set
the property, but my problem is that I haven't found a way
to retrieve the MyRoleMessageExchange that was used
to create the process when inside an MessageExchangeContext.invokePartner
call.
On 3/7/07, Matthieu Riou <[EMAIL PROTECTED]> wrote:
Hi,
I think you'll just need to do something like:
String mySess = mex.getProperty(
PartnerRoleMessageExchange.PROPERTY_SEP_MYROLE_SESSIONID);
String partnerSess = mex.getProperty(
PartnerRoleMessageExchange.PROPERTY_SEP_PARTNERROLE_EPR);
For more information on how we handle the correlations this way:
http://incubator.apache.org/ode/implicit-correlations.html
http://incubator.apache.org/ode/stateful-exchange-protocol.html
Cheers,
Matthieu
On 3/5/07, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
>
> Hi guys !
>
> In ServiceMix, there is a property named "
> org.apache.servicemix.correlationId"
> that is used to correlate MessageExchanges.
> For example, if a JBI endpoint receives a JBI exchange, and send
another
> jbi exchange while processing it, the components will forward this
> property
> from the inbound exchange to the outbound exchange (or create it
with a
> unique
> id if none was set). This enables tracking of a "JBI process". I
think
> ODE
> would benefit of such a behavior when deployed inside ServiceMix,
so I'm
> trying
> to implement it.
>
> However, I'm not sure what the best way to do that. I would say that
the
> best way
> is to use properties defined on
org.apache.ode.bpel.iapi.MessageExchange
,
> but I haven't been able to find a way to retrieve these properties
from
> a MessageExchangeContext.invokePartner call.
>
> Any hints on how to do that ?
>
> Cheers,
> Guillaume Nodet
> ------------------------
> Architect, LogicBlaze (http://www.logicblaze.com/)
> Blog: http://gnodet.blogspot.com/
>