Это исключение возникает, когда объект является версионным и два процесса изменяют одну и ту же «запись». Я думаю, что вам нужно добавить элемент управления для метода findTargets WorkQueue, возможно, новый экземпляр вашего WorkQueue запущен до последнего завершения выполнения.
private var _lock : ReentrantLock = new ReentrantLock()
private final static var _batchProcessType = BatchProcessType.TC_JOBEXPIRE
override function findTargets(): Iterator<PolicyPeriod> {
using( _lock ) {
var maintenanceToolsAPI = new gw.webservice.pc.pc800.MaintenanceToolsAPI()
if (!maintenanceToolsAPI?.getWQueueStatus(_batchProcessType.Code)?.NumActiveWorkItems != 0) {
// ...
}
return {}.iterator() as Iterator<PolicyPeriod>
}
}
Таким образом проверяется, что не существует одного выполнения с активными элементами.