It's all about the answers!

Ask a question

How can I run a single step in parallel in multiple servers?


Jojie Valiente (3021417) | asked May 07 '13, 6:46 a.m.
edited May 09 '13, 5:21 p.m. by Spencer Murata (2.3k115971)

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



permanent link
Ryan Ruscett (1.0k413) | answered May 07 '13, 7:17 a.m.
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
Jojie Valiente commented May 07 '13, 7:55 a.m.

Hi Ryan,

Thanks for you prompt reply. The main reason why we are using a selector is that we can have a single step runs in multiple servers. Let's say that this step is to stop all apllication servers at the same time. It would be good if we can only have a single step that will do this task and this step just needs to run in all the application servers identified by the selector. Therefore, we dont need to create multiple instance of the same step. And the applicatin servers I'm referring to varies in each environment, some will have 3 app servers others will have 10 app servers hence we cannot create let's say 3 steps for envA and 10 steps for envB. Hope you understand what I'm after for.

Cheers,

Jojie


permanent link
Spencer Murata (2.3k115971) | answered May 09 '13, 5:20 p.m.
FORUM MODERATOR / JAZZ DEVELOPER
edited May 09 '13, 5:21 p.m.
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

permanent link
Robert haig (1.0k16) | answered May 16 '13, 6:08 p.m.
FORUM MODERATOR / JAZZ DEVELOPER
 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.

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.