Показать сообщение отдельно
Старый 31.01.2011, 20:19   #14  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
db:
(Старая тема, но все еще , думаю, актуальная.)
Цитата:
Для того, чтобы убирать мусор, который может появится в случае аварийного падения аксапты между набиванием RecId в таблицу и последующим стриранием этих данных, при старте сессии чистим эту таблицу, используя в качестве критерия только SessionId. Такую чистку следует вызвывать из application.startupPost()
Мне кажется, в качестве Cookie удобно использовать LoginDateTime, а потом очищать таблицу по SessionId and LoginDateTime, как сделано в BatchRun классе, метод serverCleanUpDeadTasks:
X++:
  update_recordset batch setting RetryCount = batch.RetryCount + 1, Status = BatchStatus::Ready
    where batch.Status == BatchStatus::Executing
        && batch.RetryCount < batch.RetriesOnFailure
    notexists join clientSessions
        where batch.SessionIdx == clientSessions.SessionId
            && batch.SessionLoginDateTime == clientSessions.LoginDateTime
            && clientSessions.Status != 0;
очищать в самом классе при повторном вызове, а не application.startupPost().

Последний раз редактировалось IKA; 31.01.2011 в 20:25.
За это сообщение автора поблагодарили: virtuoso (1).