STAF/STAX itself doesn't provide the ability to refuse tasks due to 
resources availability.  But you could write code that checks for resource 
availability (and could use the STAF Process service to run that code on a 
remote system) and then check its results to see if enough resources are 
available and, if so, then can your task on that system.  Or you could 
have the task itself (that you run via the STAF PROCESS service or via a 
STAX job) that first checks its results to see if enough resource are 
available and if not, return a result indicating this so that you can run 
the task on another system.  STAF does provide a Resource Pool (ResPool) 
service (see section "8.15 Resource Pool (ResPool) Service" in the STAF 
User's Guide at http://staf.sourceforge.net/current/STAFUG.htm#HDRRESSRV) 
that you could use to manage exclusive access to the entries within 
resource pools.

--------------------------------------------------------------
Sharon Lucas
IBM Austin,   luc...@us.ibm.com
(512) 286-7313 or Tieline 363-7313




From:   Nitzan Zaifman <nitz...@algotec.co.il>
To:     "staf-users@lists.sourceforge.net" 
<staf-users@lists.sourceforge.net>, 
Date:   06/11/2013 12:29 PM
Subject:        [staf-users] handling requests by resources



Hello,
 
I'm designing a new stress/load test environment for a complex 
client/server application.
The client has an automation mechanism already written (c#) to which STAF 
integration should be added, and the server accepts inputs from other 
backend servers to which automation should be added (as well as the 
clients themselves).
 
My question is, can STAF/STAX be setup such that it will refuse tasks due 
to resources availability (memory/CPU).
For example, I plan to have "Director" playing a scenario (backend-type-1 
send msg1; backend-type-2 send msg2; client1 read msg2 then create msg3; 
etc., partial description) and (example) this will happen twice a second.
Requirement:
1.       Given multiple "client", "backend-type1", "backend-type2", etc. 
computers (or group of computers), I want to be able to make the most 
available one take the task (i.e. "group of 'backend-type2' stress-loads, 
send msg 'foo'" will cause the most available one to send a the message)
 
2.       Even if '1' above isn't possible and I would have to manually 
enter the STAF computer to execute the task, I would most definitely want 
the one I'm calling to be able to refuse due to resource depletion (i.e. 
"not enough free memory by threshold defined").
1.       The "stress-loader" computers might not be identical with each 
having different CPUs, memory, etc.
2.       I would then be able to request another STAF computer from that 
group ("manually"), until one is found OR
3.       Finally, a possible logic might be to stop the scenario all 
together and return that there are not enough resources available "in that 
group"/"to handle that request"/"to run scenario" in the desired load.
 
'2' above is the most important, using home grown various scripts 
currently (mostly perl), it happened that a "stress-loader"  computer died 
completely from having its memory depleted (happened when given a task 
twice a seconds until even RDP failed due to memory depletion and  even 
the physical console was too slow to make it stop before the computer 
died).
 
Thanks, Bye, Nitzan.
 
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
staf-users mailing list
staf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/staf-users

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
staf-users mailing list
staf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/staf-users

Reply via email to