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