No special error or exception handling is required when using just the Limit Concurrency action. When the rule chain completes no matter how it completes the limiter is released.
When using the Release Concurrency action, it may be desirable to explicitly release the limiter in the case of an error or exception. If there is going to be additional processes after the error or exception is handled and you wish to have the next instance continue as soon as possible, the limiter can be explicitly released as part of the exception handling. If you do not explicitly release it, it will be automatically released when the chain completes.
Deadlocks
If it appears that a concurrency limiter is deadlocked because none of the Limit Concurrency action instances that are using that limiter are proceeding, perform the following procedure to break the deadlock:
- On the primary server, in
C:\Program Files (x86)\Kodak\RBA\bin\DataModels\CustomDevDataModel
, delete theSemaphores.xml
file. - In Windows Task Manager, on the Processes tab, stop the AutomationApp.exe process.
When AutomationApp.exe restarts, the Sepmaphores.xml
file will be recreated when the data models are reloaded, and all running instances of the Limit Concurrency action will be re-queued. The first to be re-queued will then be able to acquire the limiter.