Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Работа компоненты под Citrix - у некоторых сбоит, а других работает... (число прочтений - 2353 )
Voldemar
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 04. Мая 2009
Работа компоненты под Citrix - у некоторых сбоит, а других работает...
01. Июня 2009 :: 12:55
Печать  
Возникла непонятная ситуация, при работе компоненты в разных сессиях Citrix у одних пользователей работает стабильно, у других сбоит.

Причем вылетает или дает ошибку одного из классов, например метода класса Делегат. При этом, задействовано много разных классов. Другие классы работают стабильно абсолютно у всех пользователей и не сбоят.

ToolBar::ИсполнениеДелегата(СписокЗначений Процедуры=) : В классе 'ГрупповойКонтекст' не найден метод 'Копировать'
Делегат.Добавить(Конт, Действие);

Пробовали убивать профиль пользователя в Citrix, у котого сбоило - помогло на некоторое время, стабильно все работтало. Потом 1С вылетела с ошибкой и при всех повторных подключениях это же пользователя, постоянно выдавалась ошибка на один из методов класса Делегат.

Компонента прогружается у всех стабильно.
Релизы 1С 25, 1С++ 3.0.1.22, FormEx 2.0.5.92

При отслеживании ситуации, обнаружено следующее: в Citrix сессии можно зайти под любым пользователем, это не влияет на стабильность работы, но зато авторизация внутри 1С под пользователем влияет. Т.е. если произошел сбой под одним пользователем, зарегистрированным в 1С, то потом, если зайти под тем тем же пользователем в Citrix, но при авторизации в 1С выбрать другого пользователя, то у него некоторое время так же работает. У того пользователя, который зашел в 1С и произошел сбой, больше стабильно работать не хочет.

При этом ситуация повторяется. Пользователь 1С работает, потом происходит вылет 1С, следующий раз он входит и выдается сообщение об ошибке метода! Все остальные методы и классы работают, не работает только один метод.

Может кто-нибудь что подсказать или посоветовать?
« Последняя редакция: 02. Июня 2009 :: 11:04 - Voldemar »  
Наверх
 
IP записан
 
Voldemar
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 04. Мая 2009
Re: Работа компоненты под Citrix - у некоторых сбоит, а других работает...
Ответ #1 - 02. Июня 2009 :: 10:57
Печать  
Итак, причина определена!

Теперь хотелось бы, чтобы уважаемые разработчики посмотрели и подсказали, почему такое происходит!

Удалось смоделировать ситуацию и определить при каких условиях начинает сбоить метод класса.

На локальной машине выглядет так:
1. Пользователь зашел в 1С.
2. Пользователь ни чего не делая, просто вышел из 1С.

На цитриксе выглядит так:
1. Пользователь вошел в 1С.
2. Пользователь выполнил некоторые действия.
3. Произошло схлопывание Citrix сессии - пока не выяснено почему произошло схлопывание (при этом 1С закрылось в нормальном режиме, только мы этого не видели - однако смоделировалась ситуация как буд-то пользователь ни чего не делал).

В результате происходят следующие манипуляции в ветке реестра:

HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Options\1C++ Components & Class\Work-billing\V7\

создается подветка \Пользователь\ в которую компонента пишет параметры

EnabledCheckType ="1"
EnableDebugging ="1"
EnableHookEventsGroupContext ="0"
EnableOptimizate ="1"
EnableTableSourceTable ="0"
EnableTurboBL ="0"

При моделировании нормального входа пользователя, работы пользователя с формами, где задействованы внешние компоненты, при завершении работы в ту же ветрку реестра пишутся следующие значения параметров:

EnabledCheckType ="1"
EnableDebugging ="1"
EnableHookEventsGroupContext ="0"
EnableOptimizate ="2"
EnableTableSourceTable ="1"
EnableTurboBL ="1"

Т.е. как видно из сравнения, в случае, если пользователь вошел в сессию и вышел, ни чего не сделав, т.е. ни разу не задействовав объекты внешней компоненты, то в параметры записывается:

EnableTableSourceTable ="0"
EnableTurboBL ="0"

после этого начинаются некоторые некорректности работы внешней компоненты.

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

Остается только два варианта - либо заменить значения вышеуказанных параметров, либо удалить целиком ветку Пользователь, что и применили в нашем случае. Таким образом, при входе пользователя, каждый раз ветка пустая и соответсвенно, методы корректно отрабатывают всегда.

Исходя из вышеописанного, очень хочется обратиться к разработчикам и попросить проанализировать данную ситуацию с записью параметров внешней компоненты в реестр.

Возможность менять значения параметров  - очень полезная весчь.
Но вот подобное поведение при записи параметров, возможно не очень корректно и по аналогии могут возникнуть сложности у других коллег, использующих эту обалденную разработку!

Готов выслать исходную конфигурацию - для проверки.
Но смоделировать запись данных параметров может любой. Достаточно в глобальном модуле загрузить компоненту, после входа в 1С сразу выйти ни чего не делая и посмотреть реестр. А так же можно войти в 1С и вызвать какую-нибудь обработку, использующую один из методов. Тогда все станет корректно в части записанных параметров.

  

_______001.JPG ( 51 KB | Загрузки )
_______001.JPG
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Работа компоненты под Citrix - у некоторых сбоит, а других работает...
Ответ #2 - 02. Июня 2009 :: 11:10
Печать  
При начале работы принудительно устанавливай нужные тебе настройки.

Примерно так.

УН=СоздатьОбъект("УправлениеНастройками");
УН.Сбросить("EnabledCheckType");
УН.Сбросить("EnableOptimizate");
УН.Сбросить("EnableDebugging");
УН.Включить("TurboBL");
  
Наверх
ICQ  
IP записан
 
Voldemar
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 04. Мая 2009
Re: Работа компоненты под Citrix - у некоторых сбоит, а других работает...
Ответ #3 - 02. Июня 2009 :: 11:24
Печать  
Теперь уже понятно, что настройки можно включать при начале использования внешней компоненты!

Вопрос в другом, это считается нормальным поведением, когда в параметры для пользователя прописываются при завершении работы системы:
1. В случае, если методы внешней компоненты использовались - одни значения.
2. В случае, если методы внешней компоненты не использовались - другие значения.

Вроде здесь наблюдается какая-то неоднозначность в поведении!
Ведь в любом случае компонента пишет значения параметров в реестр при завершении работы системы! А вот то, что она пишет разные значение, если методы были задействованы или нет при первом запуске 1С++ для пользователя, это уже вопрос, корректно это или нет! Ведь при первом запуске, настроек в реестре нет, да и работает все корректно!

Кстати, а класс Делегат к какой настройке относится? К TurboBL?
Просто совершенно недавно начали использовать значительно больше возможностей 1С++! Соответсвенно, многое еще не очевидно и не известно!
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Работа компоненты под Citrix - у некоторых сбоит, а других работает...
Ответ #4 - 02. Июня 2009 :: 12:26
Печать  
Voldemar писал(а) 02. Июня 2009 :: 11:24:
Теперь уже понятно, что настройки можно включать при начале использования внешней компоненты!

Кстати, а класс Делегат к какой настройке относится? К TurboBL?
Просто совершенно недавно начали использовать значительно больше возможностей 1С++! Соответсвенно, многое еще не очевидно и не известно!

1. Именно включай настройки при запуске и не парься.
2. У тебя проблема не с классом Делегат, а именно с вызовом метода группового контекста через контекст, т.е. проблема с ТурбоБЛ.

3. У нас есть багзилла, создай баг, когда-нибудь его решим.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Voldemar
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 04. Мая 2009
Re: Работа компоненты под Citrix - у некоторых сбоит, а других работает...
Ответ #5 - 02. Июня 2009 :: 13:16
Печать  
Ок, обязательно создам!  Подмигивание
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать