Well, I'm not sure where the best place would be to
store such properties.  Hopefully someone with
more knowledge of Ode internals can help here.
I think the IAPI may give a slot for the integration
layer to store something in the database.  And this
will be a definite need if we want to be able to not
keep the JBI exchange in memory (I don't think
the JBI exchange is stored somewhere).

The exchanges ( org.apache.ode.bpel.iapi.MessageExchagne)
has some placeholders for properties but afaik, they are specific
to a given exchange, so that there is no way to link an
outgoing exchange to the MyRoleExhcange that created
the process instance.

On 3/28/07, Roger Menday <[EMAIL PROTECTED]> wrote:


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/
>> >
>>
>
>
>





--
Cheers,
Guillaume Nodet
------------------------
Architect, LogicBlaze (http://www.logicblaze.com/)
Blog: http://gnodet.blogspot.com/

Reply via email to