Terminated instance and correlations

View: New views
15 Messages — Rating Filter:   Alert me  

Terminated instance and correlations

by Davide Ling :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi!!!
If I run a process two times with the same value assigned to a
correlation property, the second time the process doesn't work.
But if I delete the process with agila-web admin console, the process works.

Doesn't a properly terminated process delete its correlation values itself?

Bye
--
Davide Ling
Sito Personale - http://davideling.altervista.org
Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6

Wait acitivity

by yeahman :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi,

I the bpel file, how do I config wait 5 minutes and then invoke a
webservice.  I now that bpel has wait activity, but how do I config:

<wait name="wait5min">5</wait>

Will AgilaEngine understand? do I have to define this wait in second, in
minute, or in hour? what is the format?

Thanks
Tu


Re: Wait acitivity

by Davide Ling :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Saturday 11 February 2006 16:32, tnguyen@... wrote:

> Hi,
>
> I the bpel file, how do I config wait 5 minutes and then invoke a
> webservice.  I now that bpel has wait activity, but how do I config:
>
> <wait name="wait5min">5</wait>
>
> Will AgilaEngine understand? do I have to define this wait in second, in
> minute, or in hour? what is the format?
>
> Thanks
> Tu

I've never used wait, but seeing BPEL4WS spec...

<sequence>
   ...
   <wait for="'PT5M'"/>
   
   <invoke .../>
   ...
</sequence>

where 'PT5M' stay for 5 minutes duration time (from XML Schema spec... I've
never used it too, so I don't know if I wrote it well)

Bye
--
Davide Ling
Sito Personale - http://davideling.altervista.org
Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6

Re: Terminated instance and correlations

by mriou :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Davide,

No actually correlations are supposed to be global identifiers, you
should be able to find a process instance from its correlation even
after its termination. So the same correlation can't be used twice,
whatever the status of the corresponding instance.

Regards,

Matthieu.

On 2/11/06, Davide Ling <lingda@...> wrote:

> Hi!!!
> If I run a process two times with the same value assigned to a
> correlation property, the second time the process doesn't work.
> But if I delete the process with agila-web admin console, the process works.
>
> Doesn't a properly terminated process delete its correlation values itself?
>
> Bye
> --
> Davide Ling
> Sito Personale - http://davideling.altervista.org
> Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6
>

Re: Terminated instance and correlations

by Davide Ling :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Saturday 11 February 2006 18:17, Matthieu Riou wrote:
> No actually correlations are supposed to be global identifiers, you
> should be able to find a process instance from its correlation even
> after its termination. So the same correlation can't be used twice,
> whatever the status of the corresponding instance.

So a correlation property cannot be something like a taxNumber or
userID, but something like transactionUUID! It is right?

--
Davide Ling
Sito Personale - http://davideling.altervista.org
Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6

Re: Terminated instance and correlations

by mriou :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Yep, that's right. However the correlation is built using several
properties so you could include this userID or taxNumber as a property
in a correlation, provided that the correlation also has
transactionUUID type properties.

On 2/11/06, Davide Ling <lingda@...> wrote:

> On Saturday 11 February 2006 18:17, Matthieu Riou wrote:
> > No actually correlations are supposed to be global identifiers, you
> > should be able to find a process instance from its correlation even
> > after its termination. So the same correlation can't be used twice,
> > whatever the status of the corresponding instance.
>
> So a correlation property cannot be something like a taxNumber or
> userID, but something like transactionUUID! It is right?
>
> --
> Davide Ling
> Sito Personale - http://davideling.altervista.org
> Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6
>

Re: Terminated instance and correlations

by Davide Ling :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Saturday 11 February 2006 18:42, Matthieu Riou wrote:
> Yep, that's right. However the correlation is built using several
> properties so you could include this userID or taxNumber as a property
> in a correlation, provided that the correlation also has
> transactionUUID type properties.

So if I want to create a good correlation set I have to put together
xml elements to form an univoque information like a
database complex primary key.

Example (userID, transactionTimestamp)... if I suppose one user can do
a transaction at time.
--
Davide Ling
Sito Personale - http://davideling.altervista.org
Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6

Re: Terminated instance and correlations

by mriou :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

That's right. However I would recommend using an correlation that is
meaningful for the parties (the other web services) you are
communicating with. When communicating with a shippment web service,
use the shipping id. When communicating with a payment web service,
use the financial transaction id.

On 2/11/06, Davide Ling <lingda@...> wrote:

> On Saturday 11 February 2006 18:42, Matthieu Riou wrote:
> > Yep, that's right. However the correlation is built using several
> > properties so you could include this userID or taxNumber as a property
> > in a correlation, provided that the correlation also has
> > transactionUUID type properties.
>
> So if I want to create a good correlation set I have to put together
> xml elements to form an univoque information like a
> database complex primary key.
>
> Example (userID, transactionTimestamp)... if I suppose one user can do
> a transaction at time.
> --
> Davide Ling
> Sito Personale - http://davideling.altervista.org
> Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6
>

how to invoke a webservice without parameter input and output

by yeahman :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi,

I would like to invoke a webservice with no input parameter and no output
parameter.

<invoke ... inputVariable="?" outputVariable="?" />  can I invoke a
webservice without inputVariable or outVariable ?


Thanks
Tu


Re: how to invoke a webservice without parameter input and output

by Davide Ling :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sunday 12 February 2006 16:04, tnguyen@... wrote:
> Hi,
>
> I would like to invoke a webservice with no input parameter and no output
> parameter.
>
> <invoke ... inputVariable="?" outputVariable="?" />  can I invoke a
> webservice without inputVariable or outVariable ?

BPEL4WS spec states that You can do It only if Your process is an
abstract process (not executable one).

If your process is an executable it is not possible omit both variables.
Example: in one-way invoke you need only input variable.

--
Davide Ling
Sito Personale - http://davideling.altervista.org
Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6

No service has been define

by yeahman :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi,

I got no service has been define exception for initiator port.  This port
is local port for Agila, so that I don't have any service for it. How do I
define a service in this situation?

I also enclose the wsdef file and the bpel file.   In this example: I want
to invoke the exceptionService, reply back the output and then invoke the
ftpService.
(See attached file: tecpbpel.bpel)(See attached file: tecpbpel.wsdl)

Exception in thread "Thread-41"
org.apache.agila.bpel.engine.priv.messaging.Invo
cationException: No service have been defined for portType initiator
        at
org.apache.agila.bpel.engine.priv.messaging.impl.WSMessageBroker.getS
ervice(WSMessageBroker.java:299)
        at
org.apache.agila.bpel.engine.priv.messaging.impl.WSMessageBroker.sync
Send(WSMessageBroker.java:114)
        at
org.apache.agila.bpel.engine.priv.messaging.impl.WSMessageBroker$1.ru
n(WSMessageBroker.java:94)
        at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExec
utor.java:727)
        at java.lang.Thread.run(Thread.java:595)
.......
[Agila] DEBUG [http-8080-Processor23] EngineWSA.sendToEngine(118) |
Producing re
ply: <?xml version="1.0" encoding="UTF-8"?>
<message><return-code>1</return-code></message>

Thanks
Tu

Re: No service has been define

by Davide Ling :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sunday 12 February 2006 17:58, tnguyen@... wrote:
> Hi,
>
> I got no service has been define exception for initiator port.  This port
> is local port for Agila, so that I don't have any service for it. How do I
> define a service in this situation?

Maybe You forgot to attach wsdef and process files

--
Davide Ling
Sito Personale - http://davideling.altervista.org
Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6

Re: how to invoke a webservice without parameter input and output

by Aleksander Slominski :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

tnguyen@... wrote:

>I would like to invoke a webservice with no input parameter and no output
>parameter.
>
><invoke ... inputVariable="?" outputVariable="?" />  can I invoke a
>webservice without inputVariable or outVariable ?
>  
>
hi,

presence of inputVar/outputVar is deciding about type of invocation not
just what is sent i.e. it can be one-way (no response only inputVar) or
RPC (request-response)

if you want to invoke a webservice that has no parameters you still need
to send *empty* message as a variable (and receive empty message if it
was RPC) and that should be described in your WSDL (exact details of
WSDL will depend on what binding you use: doc-literal, rpc-literal,
rpc-encoded ...)

HTH,

alek

--
The best way to predict the future is to invent it - Alan Kay


Re: Terminated instance and correlations

by Aleksander Slominski :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

hi,

AFAIK there is no requirement in the BPEL spec that engine must forever
prevent the same correlation to be reused?

i think it is a good implementation option for a BPEL engine to prevent
reuse for some processes but there are good cases when correlation is
used again and again to start new processes that after starting create
new correlations that then are sent to and used by clients to talk to a
particular workflow instance.

this is a common case for a "factory" webservice: first message asks
factory to create something (this is a correlation) - there can be
multiple requests for the same thing to be created - and after creation
the factory returns message with more data inside that is a new
correlation that identifies a process instance that was created by the
engine implicitly.

anyway i would like to find a definitive answer to that ...

thanks,

alek

here is from BPEL 1.1 (6.4. The Lifecycle of a Business Process) - i
think initial order has no need to have a unique order id in it but
acknowledgment has unique id (correlation) to use by the buyer : "For
example, in a supply chain, a seller's business process might offer a
service that begins an interaction by accepting a purchase order through
an input message, and then returns an acknowledgement to the buyer if
the order can be fulfilled. It might later send further messages to the
buyer, such as shipping notices and invoices. The seller's business
process remembers the state of each such purchase order interaction
separately from other similar interactions. This is necessary because a
buyer might be carrying on many simultaneous purchase processes with the
same seller. In short, a BPEL4WS business process definition can be
thought of as a template for creating business process instances."


Matthieu Riou wrote:

>That's right. However I would recommend using an correlation that is
>meaningful for the parties (the other web services) you are
>communicating with. When communicating with a shippment web service,
>use the shipping id. When communicating with a payment web service,
>use the financial transaction id.
>
>On 2/11/06, Davide Ling <lingda@...> wrote:
>  
>
>>On Saturday 11 February 2006 18:42, Matthieu Riou wrote:
>>    
>>
>>>Yep, that's right. However the correlation is built using several
>>>properties so you could include this userID or taxNumber as a property
>>>in a correlation, provided that the correlation also has
>>>transactionUUID type properties.
>>>      
>>>
>>So if I want to create a good correlation set I have to put together
>>xml elements to form an univoque information like a
>>database complex primary key.
>>
>>Example (userID, transactionTimestamp)... if I suppose one user can do
>>a transaction at time.
>>--
>>Davide Ling
>>Sito Personale - http://davideling.altervista.org
>>Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6
>>
>>    
>>
>
>  
>


--
The best way to predict the future is to invent it - Alan Kay


Re: Terminated instance and correlations

by mriou :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Alek,

You're right, there's nothing in the BPEL specs stating that the
correlation can't be reused after termination. This is implementation
dependent.

Ultimately the best mode would be to let the user decide and allow
per-process configuration to say whether the creation of a new
instance having the same correlation as a terminated one is allowed.
However as a first implementation, I decided to be restrictive to
start with. I basically made this choice to make reporting based on
terminated instances easier by users wanting to do so. But in the
future both modes should be supported.

Regards,

Matthieu.

On 2/12/06, Aleksander Slominski <aslom@...> wrote:

> hi,
>
> AFAIK there is no requirement in the BPEL spec that engine must forever
> prevent the same correlation to be reused?
>
> i think it is a good implementation option for a BPEL engine to prevent
> reuse for some processes but there are good cases when correlation is
> used again and again to start new processes that after starting create
> new correlations that then are sent to and used by clients to talk to a
> particular workflow instance.
>
> this is a common case for a "factory" webservice: first message asks
> factory to create something (this is a correlation) - there can be
> multiple requests for the same thing to be created - and after creation
> the factory returns message with more data inside that is a new
> correlation that identifies a process instance that was created by the
> engine implicitly.
>
> anyway i would like to find a definitive answer to that ...
>
> thanks,
>
> alek
>
> here is from BPEL 1.1 (6.4. The Lifecycle of a Business Process) - i
> think initial order has no need to have a unique order id in it but
> acknowledgment has unique id (correlation) to use by the buyer : "For
> example, in a supply chain, a seller's business process might offer a
> service that begins an interaction by accepting a purchase order through
> an input message, and then returns an acknowledgement to the buyer if
> the order can be fulfilled. It might later send further messages to the
> buyer, such as shipping notices and invoices. The seller's business
> process remembers the state of each such purchase order interaction
> separately from other similar interactions. This is necessary because a
> buyer might be carrying on many simultaneous purchase processes with the
> same seller. In short, a BPEL4WS business process definition can be
> thought of as a template for creating business process instances."
>
>
> Matthieu Riou wrote:
>
> >That's right. However I would recommend using an correlation that is
> >meaningful for the parties (the other web services) you are
> >communicating with. When communicating with a shippment web service,
> >use the shipping id. When communicating with a payment web service,
> >use the financial transaction id.
> >
> >On 2/11/06, Davide Ling <lingda@...> wrote:
> >
> >
> >>On Saturday 11 February 2006 18:42, Matthieu Riou wrote:
> >>
> >>
> >>>Yep, that's right. However the correlation is built using several
> >>>properties so you could include this userID or taxNumber as a property
> >>>in a correlation, provided that the correlation also has
> >>>transactionUUID type properties.
> >>>
> >>>
> >>So if I want to create a good correlation set I have to put together
> >>xml elements to form an univoque information like a
> >>database complex primary key.
> >>
> >>Example (userID, transactionTimestamp)... if I suppose one user can do
> >>a transaction at time.
> >>--
> >>Davide Ling
> >>Sito Personale - http://davideling.altervista.org
> >>Key fingerprint = 284A 0FB9 F9F6 763C D429  E02B AA5D 483A 7E45 D2A6
> >>
> >>
> >>
> >
> >
> >
>
>
> --
> The best way to predict the future is to invent it - Alan Kay
>
>
LightInTheBox - Buy quality products at wholesale price