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

Reply via email to