I do similar things with the use of Environment Locks. You just need to make a reusable action that any process can call on.
The action would attempt to acquire a lock of a certain text, for example, the name of the process. Let's say that you want to limit the number of concurrent sessions of a particular process. Let's say it's allowed to run 2 concurrent sessions at once but not more.
Your reusable action would first attempt to acquire a lock with the name of ""Your Process Name - 1"". If it is unable to acquire that lock, then it can assume that there is at least one session already of that process. Then it attempts to acquire a lock with the name of ""Your Process Name - 2"". If it is able to acquire the lock, then that session continues. If it is unable to acquire the lock, then it assumes there are already 2 sessions of that process running.
So, anyway, I just wanted to explain a simple use case. You could adapt this for your purpose. You could name the environment locks for your three resources with one up numbers as I just mentioned and then put the name of the Resource in the Comment field. So let's say three resources are each running a session of your process; it might look something like this in the Environment Locks view in the System tab:
Status | Name | Resource | Process | Lock Time | Last Comment
Locked Symbol | Your Process Name - 1 | ... | ... | ... | Name of Resource 1
Locked Symbol | Your Process Name - 2 | ... | ... | ... | Name of Resource 2
Locked Symbol | Your Process Name - 3 | ... | ... | ... | Name of Resource 3
When you use the action 'Query Lock', it will return the Comment, which you can then use as you need. There are other ways to use this as well. For example, you can force environment locks to unlock from one session and other sessions could periodically check to verify their Environment Lock is still intact and they could terminate if it is not. This would simulate the behavior of the 'Fail fast on any errors' option in Scheduler.
I'm mostly bringing this up since you mentioned you're limited in what you're allowed to do. If Environment Locks are too fragile for you to use, you could consider using Work Queues for the same purpose, but Work Queues require more forethought.
Dave Morris, 3Ci at Southern Company