а если так переписать?
X++:
run()
{
Trans trans;
Trans buffer;
;
select trans where trans.open == true;
while (trans)
{
try
{
ttsbegin;
buffer = Trans::find(trans.recid, true);
buffer.open = false;
buffer.update()
ttscommit;
}
catch (Exception::Deadlock)
{
next trans;
retry;
}
catch (Exception::UpdateConflict)
{
next trans;
retry;
}
next trans;
}
}