ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » [SOLVED] Process instance environment inheritance

Post new topic  Reply to topic
 [SOLVED] Process instance environment inheritance « View previous topic :: View next topic » 
Author Message
Liquid
PostPosted: Thu Feb 15, 2007 2:55 am    Post subject: [SOLVED] Process instance environment inheritance Reply with quote

Acolyte

Joined: 08 Sep 2004
Posts: 52
Location: Hungary, Europe

Hello!

I've a question about subprocess handling within the wf runtime.

Let's assume thhat there's a process 'A' and a process 'B'.
Process B is a subprocess of process A.
Process A uses process B in a block, so process B is executed
more than once within the lificycle of process A.

Both process definitions has been loaded into wf runtime
and there're many running process instances in wf runtime
form process A.

And here comes the question
I need to change process B (for example I put a new activity into it or
change data container mappings etc.).

What happens with the already running A process instances after
I load (and overwrite the previous template definitions)
process A and B into the runtime?

I mean, the already running A instances will call the changed B subprocess
OR they call that version of B process which template was loaded into
runtime at the moment when A was instancialized (just like the data structures)?

I hope I was understandable. Pls. help!

Liquid



What happens wi


Last edited by Liquid on Mon Feb 19, 2007 1:33 am; edited 1 time in total
Back to top
View user's profile Send private message
Liquid
PostPosted: Thu Feb 15, 2007 5:06 am    Post subject: Reply with quote

Acolyte

Joined: 08 Sep 2004
Posts: 52
Location: Hungary, Europe

I made some tests which proved that always that B process will be
instancialized, which process template is actually being loaded into
runtime _at that time_ when the subprocess call is executed.

But in this case, my question is:
What happens if the input data stucture of B sub process is changed?
(and of course the A process is also modified and translated into runtime
with process B)

How will the _already running_ A process instances call the changed
data structured B process???

Thanks in advance,
Horváth Róbert Márk
Back to top
View user's profile Send private message
jmac
PostPosted: Thu Feb 15, 2007 6:33 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Liquid wrote:
I made some tests which proved that always that B process will be
instancialized, which process template is actually being loaded into
runtime _at that time_ when the subprocess call is executed.

This is what MQWF refers to as Late Binding. The Subprocess instance is instantiated at the point that the Subprocess activity is executed.
Liquid wrote:

But in this case, my question is:
What happens if the input data structure of B sub process is changed?
(and of course the A process is also modified and translated into runtime
with process B)

How will the _already running_ A process instances call the changed
data structured B process???


Since the Top Level process "A" was instantiated with the OLD process A template that is what the already running instances will be using. You are going to have to design around this.
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Liquid
PostPosted: Thu Feb 15, 2007 7:10 am    Post subject: Reply with quote

Acolyte

Joined: 08 Sep 2004
Posts: 52
Location: Hungary, Europe

Hi John!

Thanks for the fast reply.

Quote:
Since the Top Level process "A" was instantiated with the OLD process A template that is what the already running instances will be using. You are going to have to design around this


This means that I've to deal more versions from the B subprocess. One for the old and already running A process instances, and one for the newly instantiated A processes. Am I right?

--
One more question about the details:
Let's assume that the input data structure of process B is called inB_DS.
Obviously I use inB_DS in the process activity in process A (which calls B).
I change inB_DS, for example I add one element into it.
And finally, import process A, B and inB_DS into runtime.

What happens with the already running A process instances??
They inherited the inB_DS structure when they instantiated in the PAST,
which now changed and OVERWRITED in runtime.
Which inB_DS version is used by the alredy running A instances,
when the process activity is executed (the old or the new one)?

I emphasize, that the process names and also the data strucure
names are NOT changed. So, everything is overwrited
in runtime (with fmcibie .... -f ...).

What is the appropriate "design pattern" for this issue?

Robert


Last edited by Liquid on Thu Feb 15, 2007 7:42 am; edited 2 times in total
Back to top
View user's profile Send private message
jmac
PostPosted: Thu Feb 15, 2007 7:39 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Liquid wrote:
This means that I've to deal more versions from the B subprocess. One for the old and already running A process instances, and one for the newly instantiated A processes. Am I right?

You are correct.
Liquid wrote:
Which inB_DS version is used by the alredy running A instances, when the process activity is executed (the old or the new one)?

These "in-flight" instances are already instantiated with the OLD data structure.
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Liquid
PostPosted: Thu Feb 15, 2007 7:59 am    Post subject: Reply with quote

Acolyte

Joined: 08 Sep 2004
Posts: 52
Location: Hungary, Europe

Hi John!

Quote:
These "in-flight" instances are already instantiated with the OLD data structure.


Do you mean, the running B subprocesses instantiated with the OLD data structure? If you do, yes I know that.

My question wasn't exact enough. So , which data structure is used when the BLOCK, which contains the process activity, is RESTARTED and the runtime has to instantiate a new B subprocess AGAIN? Remember,
that meanwhile process B and datastructure inB_DS were changed.

Hard to explain, I hope I was understandable.

Offtopic: by the way, John you're very fast now, what I really appreciate! What's the local time out there? I'm sitting in Europe and it's afternoon here.. do you start your job as early??

Thanks,
Robert
Back to top
View user's profile Send private message
jmac
PostPosted: Thu Feb 15, 2007 8:13 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Robert:

I saw your first post around 0630 PST. I am 9 hours (+/- 1) behind the IBM Workflow lab in Germany (just for your reference).

OK... I understood, but my answer was probably too short. It is my opinion that when the SubProcess activity runs (i.e. the one inside the block) it will have to use the data structure that was in use at the time Process Model A was translated (i.e. the OLD Process B source data structure). In the case of the in-flight instances this would be the old one.

Now, I have never tried this, but I believe it could cause a problem IF you had removed a member from this Data Structure used for the Source of Process B, but in your case you added one, so there will be no issue when the block repeats and you create a new instance of SubProcess B. The new member will always appear "unset" (i.e RC 113) if you access it. IN FACT, if you always set this new member this would be a way to detect an instance of SubProcess B that is using the OLD data structure.

I hope this is a better explanation.
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
vijaycr
PostPosted: Thu Feb 15, 2007 9:38 am    Post subject: Reply with quote

Acolyte

Joined: 11 Oct 2006
Posts: 62
Location: Singapore

If u have removed any containers from B_DS and u have a mapping for that in process a you will not be able to import process a again without fixing the mapping.

if you import processb with addition or removal of containers the next time the block is restarted,Process b will be instantiated with the new DS additional containers will not be set (as tough there was no mapping for it) and the removed containers will be ignored
Back to top
View user's profile Send private message
Liquid
PostPosted: Thu Feb 15, 2007 10:41 am    Post subject: Reply with quote

Acolyte

Joined: 08 Sep 2004
Posts: 52
Location: Hungary, Europe

Hi John!

Ok, I think I start to see the big picture
Though, I've to think on about some details (for example mapping etc.).
Anyway, thanks for your help it was quite efficient. Offtopic: BTW, are
you sending posts to this forum just for fun or it's part of your job?

Robert
Back to top
View user's profile Send private message
Liquid
PostPosted: Thu Feb 15, 2007 10:43 am    Post subject: Reply with quote

Acolyte

Joined: 08 Sep 2004
Posts: 52
Location: Hungary, Europe

Thanks vijaycr!
Back to top
View user's profile Send private message
jmac
PostPosted: Thu Feb 15, 2007 10:51 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Liquid wrote:
BTW, are you sending posts to this forum just for fun or it's part of your job?


I am simply a HUGE fan of IBM's workflow products and they have helped my make a fairly good living for over 10 years, so it's a way to give a little back. Now on a more selfish motive ( ) it doesn't hurt my reputation as an MQWF consultant to be known for mqseries.net. So I guess the answer is a little of both considering that posting to the forum is my advertising budget
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Liquid
PostPosted: Thu Feb 15, 2007 11:28 am    Post subject: Reply with quote

Acolyte

Joined: 08 Sep 2004
Posts: 52
Location: Hungary, Europe

very tricky!

Ok, after this discussion I've some more question about IBM products but once it's offtopic, secondly it's quite late here, thus I'll send them later in private if it's not a problem for you.

Regards,
Robert
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » [SOLVED] Process instance environment inheritance
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.