Hi Sharon, Thanks for the pointer. I was trying to use it in a staf library and that is why I was worried about queue getting the incorrect notification. This is the function structure ------------ sub WatchHandles ( $$ ) { my ($handleRef, $timeout) = @_;
my %handle = %$handleRef; my $handleSize = scalar keys %handle; my $handleList = ""; #This is the step to populate the list of handles which this function will watch while (my ($handleKey, $value) = each (%handle) ) { $handleList = $handleList . " handle $handleKey "; } #SubmitSTAFCommandwithReturn is the function which will submit the STAF command using PLSTAF my $resultRef = SubmitSTAFCommandwithReturn("local", "queue", "get wait $timeout $handleList"); } -------------- Now my above command is timing out all the times. When I was not using $handleList(list of process handles) it used to get the notification. But I was worried if there are multiple calls to this function it may not function correctly. I can monitor all the handles periodically but that is not the optimal solution. Thanks, Arvind --- On Fri, 10/24/08, Sharon Lucas <[EMAIL PROTECTED]> wrote: > From: Sharon Lucas <[EMAIL PROTECTED]> > Subject: Re: [staf-users] Queue service question > To: staf-users@lists.sourceforge.net > Cc: [EMAIL PROTECTED] > Date: Friday, October 24, 2008, 8:14 AM > Or, you can use the KEY option when starting a process. The > key is > included in the STAF/Process/End notification message. So, > you can use a > specific key for one set of processes and another key for > another set of > processes and check the key in the STAF/Process/End > notification message > after each QUEUE GET request. > > Or, note that when using the NOTIFY ONEND option on a > PROCESS START > request, you can specify an additional option on what > handle number (via > the NOTIFY ONEND HANDLE <Handle#>) or handle name > (via the NOTIFY ONEND > NAME <HandleName> to send the notification to > (otherwise, it defaults to > sending the STAF/Process/End message to the handle that > submitted the > process). See the STAF User's Guide for more > information on these > options. > > Note that if you don't want a notification message for > a process, don't > specify the NOTIFY ONEND message. > > -------------------------------------------------------------- > Sharon Lucas > IBM Austin, [EMAIL PROTECTED] > (512) 838-8347 or Tieline 678-8347 > > > > > David Bender/Austin/[EMAIL PROTECTED] > 10/23/2008 01:07 PM > > To > staf-users@lists.sourceforge.net > cc > [EMAIL PROTECTED] > Subject > Re: [staf-users] Queue service question > > > > > > > > You will probably need to keep track of the handle numbers > that get > returned from the PROCESS START NOTIFY ONEND requests, and > check the > incoming messages on the queue to determine if the > message's request > number is one that you are interested in. > > If you are really doing these requests from the command > line, then you > could use different static handles, such as: > > # Create a static handle and submit 2 process start > requests > > $ STAF local HANDLE CREATE HANDLE NAME MyHandle1 > Response > -------- > 23 > > $ export STAF_STATIC_HANDLE=23 > > $ STAF local PROCESS START SHELL COMMAND date RETURNSTDOUT > NOTIFY ONEND > Response > -------- > 24 > > $ STAF local PROCESS START SHELL COMMAND date RETURNSTDOUT > NOTIFY ONEND > Response > -------- > 25 > > # Create a second static handle and submit 2 process start > requests > > $ STAF local HANDLE CREATE HANDLE NAME MyHandle2 > Response > -------- > 26 > > $ export STAF_STATIC_HANDLE=26 > > $ STAF local PROCESS START SHELL COMMAND date RETURNSTDOUT > NOTIFY ONEND > Response > -------- > 27 > > $ STAF local PROCESS START SHELL COMMAND date RETURNSTDOUT > NOTIFY ONEND > Response > -------- > 28 > > # Use the first static handle and submit a queue get, > notice we get the > queued message for process handle 24 > > $ export STAF_STATIC_HANDLE=23 > > $ STAF local QUEUE GET WAIT 5000 > Response > -------- > { > Priority : 5 > Date-Time : 20081023-12:58:51 > Machine : local://local > Handle Name: STAF_Process > Handle : 1 > User : none://anonymous > Type : STAF/Process/End > Message : { > endTimestamp: 20081023-12:58:51 > fileList : [ > { > data: The current date is: Thu 10/23/2008 > Enter the new date: (mm-dd-yy) > rc : 0 > } > ] > handle : 24 > key : > rc : 1 > } > } > > # Use the second static handle and submit some queue gets, > notice we get > the queued messages for process handles 27 and 28 > > $ export STAF_STATIC_HANDLE=26 > > $ STAF local QUEUE GET WAIT 5000 > Response > -------- > { > Priority : 5 > Date-Time : 20081023-12:59:25 > Machine : local://local > Handle Name: STAF_Process > Handle : 1 > User : none://anonymous > Type : STAF/Process/End > Message : { > endTimestamp: 20081023-12:59:25 > fileList : [ > { > data: The current date is: Thu 10/23/2008 > Enter the new date: (mm-dd-yy) > rc : 0 > } > ] > handle : 27 > key : > rc : 1 > } > } > > $ STAF local QUEUE GET WAIT 5000 > Response > -------- > { > Priority : 5 > Date-Time : 20081023-12:59:26 > Machine : local://local > Handle Name: STAF_Process > Handle : 1 > User : none://anonymous > Type : STAF/Process/End > Message : { > endTimestamp: 20081023-12:59:26 > fileList : [ > { > data: The current date is: Thu 10/23/2008 > Enter the new date: (mm-dd-yy) > rc : 0 > } > ] > handle : 28 > key : > rc : 1 > } > } > > $ STAF local QUEUE GET WAIT 5000 > Error submitting request, RC: 37 > > # Now switch back to the first static handle and submit > some queue gets, > notice we get the queued message for process handle 25 > > $ export STAF_STATIC_HANDLE=23 > > $ STAF local QUEUE GET WAIT 5000 > Response > -------- > { > Priority : 5 > Date-Time : 20081023-12:58:52 > Machine : local://local > Handle Name: STAF_Process > Handle : 1 > User : none://anonymous > Type : STAF/Process/End > Message : { > endTimestamp: 20081023-12:58:52 > fileList : [ > { > data: The current date is: Thu 10/23/2008 > Enter the new date: (mm-dd-yy) > rc : 0 > } > ] > handle : 25 > key : > rc : 1 > } > } > > $ STAF local QUEUE GET WAIT 5000 > Error submitting request, RC: 37 > > > David Bender > STAF/STAX Development > 8-1268 (512-838-1268) > IBM Austin Bldg. 903-5B002 > Internet: [EMAIL PROTECTED] > > > > Arvind Chandra <[EMAIL PROTECTED]> > 10/23/2008 12:04 PM > > Please respond to > [EMAIL PROTECTED] > > > To > staf-users@lists.sourceforge.net, David > Bender/Austin/[EMAIL PROTECTED] > cc > > Subject > Re: [staf-users] Queue service question > > > > > > > > > Hi David, > Thanks for the response. I now have a followup question > again about > queues. > This is my scenario. I launch 4 processes in async mode > with notify > onend option using process service. Then I run staf local > queue get wait > <timeout> > > But immediately after that I launch 4 other processes > in async mode > with notfiy onend option using process service. Then I run > staf local > queue get wait <anothertimout> > > How do I ensure that process launched in the second > set not end up > getting into first queue. > Thanks, > Arvind > > > --- On Wed, 10/22/08, David Bender > <[EMAIL PROTECTED]> wrote: > > > From: David Bender <[EMAIL PROTECTED]> > > Subject: Re: [staf-users] Queue service question > > To: staf-users@lists.sourceforge.net > > Cc: [EMAIL PROTECTED] > > Date: Wednesday, October 22, 2008, 2:16 PM > > You can use the QUEUE DELETE request to delete all > messages > > in the queue. > > So for example: > > > > $ STAF local HANDLE CREATE HANDLE NAME MyHandle > > Response > > -------- > > 198 > > > > $ export STAF_STATIC_HANDLE=198 > > > > # Execute a process with notify onend, and do a queue > get > > wait > > > > $ STAF local PROCESS START SHELL COMMAND date > RETURNSTDOUT > > NOTIFY ONEND > > Response > > -------- > > 200 > > > > $ STAF local QUEUE GET WAIT 5000 > > Response > > -------- > > { > > Priority : 5 > > Date-Time : 20081022-16:09:58 > > Machine : local://local > > Handle Name: STAF_Process > > Handle : 1 > > User : none://anonymous > > Type : STAF/Process/End > > Message : { > > endTimestamp: 20081022-16:09:58 > > fileList : [ > > { > > data: The current date is: Wed 10/22/2008 > > Enter the new date: (mm-dd-yy) > > rc : 0 > > } > > ] > > handle : 200 > > key : > > rc : 1 > > } > > } > > > > # Now execute 3 processes with notify onend, and then > do 4 > > queue get waits > > > > $ STAF local PROCESS START SHELL COMMAND date > RETURNSTDOUT > > NOTIFY ONEND > > Response > > -------- > > 201 > > > > $ STAF local PROCESS START SHELL COMMAND date > RETURNSTDOUT > > NOTIFY ONEND > > Response > > -------- > > 202 > > > > $ STAF local PROCESS START SHELL COMMAND date > RETURNSTDOUT > > NOTIFY ONEND > > Response > > -------- > > 203 > > > > $ STAF local QUEUE GET WAIT 5000 > > Response > > -------- > > { > > Priority : 5 > > Date-Time : 20081022-16:11:39 > > Machine : local://local > > Handle Name: STAF_Process > > Handle : 1 > > User : none://anonymous > > Type : STAF/Process/End > > Message : { > > endTimestamp: 20081022-16:11:39 > > fileList : [ > > { > > data: The current date is: Wed 10/22/2008 > > Enter the new date: (mm-dd-yy) > > rc : 0 > > } > > ] > > handle : 201 > > key : > > rc : 1 > > } > > } > > > > $ STAF local QUEUE GET WAIT 5000 > > Response > > -------- > > { > > Priority : 5 > > Date-Time : 20081022-16:11:40 > > Machine : local://local > > Handle Name: STAF_Process > > Handle : 1 > > User : none://anonymous > > Type : STAF/Process/End > > Message : { > > endTimestamp: 20081022-16:11:40 > > fileList : [ > > { > > data: The current date is: Wed 10/22/2008 > > Enter the new date: (mm-dd-yy) > > rc : 0 > > } > > ] > > handle : 202 > > key : > > rc : 1 > > } > > } > > > > $ STAF local QUEUE GET WAIT 5000 > > Response > > -------- > > { > > Priority : 5 > > Date-Time : 20081022-16:11:40 > > Machine : local://local > > Handle Name: STAF_Process > > Handle : 1 > > User : none://anonymous > > Type : STAF/Process/End > > Message : { > > endTimestamp: 20081022-16:11:40 > > fileList : [ > > { > > data: The current date is: Wed 10/22/2008 > > Enter the new date: (mm-dd-yy) > > rc : 0 > > } > > ] > > handle : 203 > > key : > > rc : 1 > > } > > } > > > > # Now execute 3 processes with notify onend, and then > do a > > queue get wait > > followed by a queue delete > > > > $ STAF local PROCESS START SHELL COMMAND date > RETURNSTDOUT > > NOTIFY ONEND > > Response > > -------- > > 204 > > > > $ STAF local PROCESS START SHELL COMMAND date > RETURNSTDOUT > > NOTIFY ONEND > > Response > > -------- > > 205 > > > > $ STAF local PROCESS START SHELL COMMAND date > RETURNSTDOUT > > NOTIFY ONEND > > Response > > -------- > > 206 > > > > $ STAF local QUEUE GET WAIT 5000 > > Response > > -------- > > { > > Priority : 5 > > Date-Time : 20081022-16:13:03 > > Machine : local://local > > Handle Name: STAF_Process > > Handle : 1 > > User : none://anonymous > > Type : STAF/Process/End > > Message : { > > endTimestamp: 20081022-16:13:03 > > fileList : [ > > { > > data: The current date is: Wed 10/22/2008 > > Enter the new date: (mm-dd-yy) > > rc : 0 > > } > > ] > > handle : 204 > > key : > > rc : 1 > > } > > } > > > > $ STAF local QUEUE DELETE > > Response > > -------- > > 2 > > > > $ STAF local QUEUE GET WAIT 5000 > > Error submitting request, RC: 37 > > > > # Notice that the result buffer of the QUEUE DELETE > > indicates that 2 > > messages were deleted from the queue, and the > subsequent > > QUEUE GET WAIT > > times out. > > > > David Bender > > STAF/STAX Development > > 8-1268 (512-838-1268) > > IBM Austin Bldg. 903-5B002 > > Internet: [EMAIL PROTECTED] > > > > > > > > > > Arvind Chandra <[EMAIL PROTECTED]> > > 10/22/2008 03:43 PM > > Please respond to > > [EMAIL PROTECTED] > > > > > > To > > staf-users@lists.sourceforge.net > > cc > > > > Subject > > [staf-users] Queue service question > > > > > > > > > > > > > > Hi, > > This is my scenario. I issue 10 process commands > with > > the options > > "notify onend" option on my local machine. > Then I > > issue command > > staf local get wait <timeoutvalue> > > > > Now when 1st process finishes the queue command > returns > > and that is > > expected. Then I examine the result of the completed > > process. After that I > > again issue the command > > staf local get wait <anothertimeoutvalue> > > > > Problem happens when multiple process finish. Now > when > > I issue the > > command > > staf local get wait <anothertimeoutvalue> > > This is probably because it has the notification > from > > the second > > completed process. > > Is there a way I can clear the queue before > issuing > > the command > > again. > > Thanks, > > Arvind > > > > > > > > > > > ------------------------------------------------------------------------- > > This SF.Net email is sponsored by the Moblin Your Move > > Developer's > > challenge > > Build the coolest Linux based applications with Moblin > SDK > > & win great > > prizes > > Grand prize is a trip for two to an Open Source event > > anywhere in the > > world > > > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > > _______________________________________________ > > staf-users mailing list > > staf-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/staf-users > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move > Developer's > challenge > Build the coolest Linux based applications with Moblin SDK > & win great > prizes > Grand prize is a trip for two to an Open Source event > anywhere in the > world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > staf-users mailing list > staf-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/staf-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ staf-users mailing list staf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/staf-users