Не понимаю почему съедаются лицензии

Автор Volna, 02.11.11, 16:19:27

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Volna

Доброе время суток.
Пробегаю в базе по объектам определенного типа, беру их в работу, меняю пару атрибутов и возвращаю.

var
  l_DataSet : TClientDataSet;
  appServer : IMainSystem;
  vRerurnCode,vError : OleVariant;
...
begin
....
  if NOT DCOM.Connected then
    DCOM.Open;
  appServer := DCOM.GetServer as IMainSystem;
  appServer.ConnectToDBEx('Base','','',vRerurnCode,vError);
  l_DataSet.Data := appServer.FindObjects('Сквозной ТП',        // список типов
                                              'XXXX%',        // шаблон поиска для ключевого атрибута
                                              '',        // шаблон поиска по версиям
                                              '',        // список состояний
                                              '',        // шаблон поиска по атрибутам
                                              '',        // зарезервирован
                                              '',        // зарезервирован
                                            vRerurnCode,vError);
  while not l_DataSet.Eof do begin   
    appServer.CheckOut(l_DataSet.FieldByName('_TYPE').AsString,        // название типа
                        l_DataSet.FieldByName('_PRODUCT').AsString,        // ключевой атрибут
                        l_DataSet.FieldByName('_VERSION').AsString,        // версия объекта
                        0,        // режим
                        vRerurnCode,vError
    //Вызываю процедуру которая вносит изменения и сохраняет изменения.
    SaveToLotsman(l_DataSet.FieldByName('_ID_VERSION').AsInteger);
    //Вызываю процедуру в которой CancelCheckOut
    CancelToLotsman(l_DataSet.FieldByName('_ID_VERSION').AsInteger);
    l_DataSet.Next;
  end;
 

DCOM это глобальная TDCOMConnection

в функциях SaveToLotsman и CancelToLotsman
так же присутствует код такого вида

var
   appServer : IMainSystem;
...
begin
....
  if NOT DCOM.Connected then
    DCOM.Open;
  appServer := DCOM.GetServer as IMainSystem;
  appServer.ConnectToDBEx('Base','','',vRerurnCode,vError);


Примерно через 5 минут съедаются все лицензии.
Количество объектов которые были взяты в работу, изменены и возвращены в разы больше чем лицензий.

Не могу понять в какой момент берется лицензия.