• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

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

Автор 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 минут съедаются все лицензии.
Количество объектов которые были взяты в работу, изменены и возвращены в разы больше чем лицензий.

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