Hi,
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 hope so.
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.
Some other issues we have with the JBI integration of ODE.
* interface based routing
* getting the WSDL automatically from JBI
* management stuff
* correlation id (above)
Am I correct with assuming this is currently missing ?
I wish I had the time (and probably the ability) to do something
pro-active about these, rather than just complaining ... :)
Regards,
Roger
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/
>> >
>>
>
>
>