How can I run a single step in parallel in multiple servers?
Hi,
I have a single step that I want to run in multiple application servers. I was able to do this by using a proper selector and setting the 'Broadcast' property to 'Yes' but the problem is that when the step is running in all the servers (i.e. Server 1, Server 2 and Server 3) its running in sequence (it will run first in Server 1 then Server 2 then Server 3) which impact our deployment timeline. Is there a way that this step will run in parallel in all the intended servers?
Cheers,
Jojie
3 answers
I would create a project with three steps. Each step has a selector associated with it. Selector 1 for server 1 Select 2 for server 2 etc. Then I would thread the steps so that they all run at the same time using different selectors.
Is there a reason it's only one step you are trying to do this in? I am unaware of any way to thread the steps within a single step. They are suppose to run in sequence. If you had 4 commands in a single step. They should run in sequence.
If you have additional questions on the best way to set up a project like this. Feel free to open a PMR with Rational Support. Thanks!
Helpful link.
http://pic.dhe.ibm.com/infocenter/bldforge/v7r1m3/topic/com.ibm.rational.buildforge.doc/topics/steps_exec_threading.html
Comments
The broadcast step should be threadable, but you have to specify it to be threaded. If you select broadcast on the step but leave the thread value at No then the step will be broadcast serially. That is the default behavior, but if you flip thread to Yes, then the step should broadcast in parallel, which I believe is what you want.
If you have broadcast AND thread set to Yes and its still running serially on the various broadcast servers, then something else is going on and you probably need a PMR.
~Spencer
the broadcast threaded step is likely the way to go. If you have a process you wanted to put into a BF library, and run that library on all 3 servers at the same time, then the 3 steps with the 3 selectors method might work best (each step inlining the specific library). But if you can craft a selector to select all 3 of your target servers, then a broadcast threaded step is the way I would do it.