[ОТВЕТИТЬ]
02.12.2013 17:11
mighty
 
Добрый день всем.
Кто нибудь знает в каком случае СМ выполняет функцию supermag.core.NewSession?

Версия СМ 1026.3 sp5.
Oracle 10.2.0.4 под линуксом.

Проблема возникла вот в чем. Есть два региона, в обоих одинаковая версия СМ, оракла. Офис в регионе №1 стал жаловаться на то что СМ "тормозит". Стал опрашивать, оказалось когда в карточках товаров щелкают по закладке "Цены" СМ подвисает на 10 секунд примерно.
Оттрассировал момент перехода на вкладку "цены":
Код:
Connection::Open "ConnectionString = 'Provider=MSDAORA;Data Source=CENTRAL_OFFICE;User ID=admin;Password=XXXX;OLE DB Services=-2;'
Command::Set_CommandText	 Text = 'supermag.core.NewSession'
Command::Execute
Command::Set_CommandText "Text = 'select TMain.ID,TMain.Name,TMain.CurrType,TMain.ShortName,TMain.RoundRule,TMain.FormatID,TMain.WithDue from Supermag.SVPriceTypes TMain
where TMain.ID=?'"
Connection::Open "ConnectionString = 'Provider=MSDAORA;Data Source=CENTRAL_OFFICE;User ID=admin;Password=XXXX;OLE DB Services=-2;'
Command::Set_CommandText Text = 'supermag.core.NewSession'
Command::Execute
Command::Set_CommandText "Text = 'select TMain.ID,TMain.Name,TMain.CurrType,TMain.ShortName,TMain.RoundRule,TMain.FormatID,TMain.WithDue from Supermag.SVPriceTypes TMain
where TMain.ID=?'"
Command::Execute
Command::Set_CommandTextText = 'Supermag.Office.CanUseFunction2'
 ............
Зависания по 6 секунд происходят именно на функциях (2 раза)
Код:
Command::Set_CommandText Text = 'supermag.core.NewSession'
Command::Execute
Потом попробовал сделать трассировку на другой базе(базе магазина этого же региона №1). Трассировка точно такая же но задержки на supermag.core.NewSession по секунде-полторы.
Вот она:
Код:
Connection::Open "ConnectionString = 'Provider=MSDAORA;Data Source=VLIG3759;User ID=admin;Password=XXXX;OLE DB Services=-2;'
Command::Set_CommandText	 Text = 'supermag.core.NewSession'
Command::Execute
Command::Set_CommandText "Text = 'select TMain.ID,TMain.Name,TMain.CurrType,TMain.ShortName,TMain.RoundRule,TMain.FormatID,TMain.WithDue from Supermag.SVPriceTypes TMain
where TMain.ID=?'"
Connection::Open "ConnectionString = 'Provider=MSDAORA;Data Source=VLIG3759;User ID=admin;Password=XXXX;OLE DB Services=-2;'
Command::Set_CommandText Text = 'supermag.core.NewSession'
Command::Execute
Command::Set_CommandText "Text = 'select TMain.ID,TMain.Name,TMain.CurrType,TMain.ShortName,TMain.RoundRule,TMain.FormatID,TMain.WithDue from Supermag.SVPriceTypes TMain
where TMain.ID=?'"
Command::Execute
Command::Set_CommandTextText = 'Supermag.Office.CanUseFunction2'
 ............
Затем подключился к офису региона №2 и там трассировка выглядит так:
Код:
Command::Set_CommandTextText = 'Supermag.Office.CanUseFunction2'
 ............
то есть выполнения supermag.core.NewSession нет вообще!
не поверил глазам своим, подключился к магазину региона №2, и там получил такую же трассировку:
Код:
Command::Set_CommandTextText = 'Supermag.Office.CanUseFunction2'
 ............
то есть без supermag.core.NewSession!

Подскажите куда копать, ничего уже не понимаю...все одинаково вроде, а супермаг разные запросы посылает.
От чего вообще зависит исполнение функции supermag.core.NewSession??
Никто не разбирался?
02.12.2013 17:41
whitewizard
 
В обоих базах супермаг подключается напрямую, без сервера приложений?
02.12.2013 17:42
OlegON
 
Трассировка была всех сессий? У супермага какой-то кривой пул соединений, он открывает штук шесть на юзера свободно, причем, регистрит себя во всех.
Тормоза при переключении разделов, как правило, связаны с плохой работой сервера лицензий, в смысле машины, где он работает. IPv6, другие ненужные протоколы, стенки, мусор и т.п. сними...
Да, сервер лицензий обязательно должен быть DEDICATED.
02.12.2013 17:43
whitewizard
 
И сервер приложений на чём стоит?
02.12.2013 17:49
mighty
 
>В обоих базах супермаг подключается напрямую, без сервера приложений?
Без, соединение прямое
>И сервер приложений на чём стоит?
На Win XP SP3(регион №1) и Win2003 server(регион №2)
Хм...надо поробовать на 2003 переставить. Попробую спасибо.

>Трассировка была всех сессий?
Трассировка только моей сессии(FlexTracker)

>сервер лицензий обязательно должен быть DEDICATED
Ты имеешь ввиду сервер Оракла?

Сейчас оттрассировал вообще подключение открытие карточек товаров в СМ в регионе№1 - зависания открытия классификатора карточек до 14 секунд. Связано именно с двойным выполнением процедуры supermag.core.NewSession.
02.12.2013 17:52
OlegON
 
Цитата:
mighty >Трассировка была всех сессий?
Трассировка только моей сессии(FlexTracker)

>сервер лицензий обязательно должен быть DEDICATED
Ты имеешь ввиду сервер Оракла?
Тогда мог и пропустить сессию...
Дедик - имею ввиду подключение от сервера лицензий к базе.
02.12.2013 17:58
mighty
 
Цитата:
OlegON Дедик - имею ввиду подключение от сервера лицензий к базе.
А где это посмотреть Олег?
02.12.2013 18:00
OlegON
 
Код:
select distinct server,machine from v$session;
для машины с сервером лицензий должен быть DEDICATED, а не SHARED или NONE.
02.12.2013 18:02
whitewizard
 
это прописывается в TNSNAME.ORA, например
02.12.2013 18:03
mighty
 
Абсолютно все сессии DEDICATE, в том числе и сессия сервера лицензий.
03.12.2013 09:36
OlegON
 
протоколы, нормальное разрешение имен, несколько ключей на сервере лицензий? проблема в хосте, скорее всего... я не исключаю, что накосячил и в самой БД что-то, но из того, что я встречал, чаще всего была проблема в хосте, где работал сервер приложений.
03.12.2013 10:17
mighty
 
Дело в том что это трайсы, которые показывают соединение локального клиента с СМ. Супермаг на клиенте САМ принимает решение о запуске процедуры supermag.core.NewSession, значит дело не в сервере лицензий и его коннекте с БД. А вот почему такое решение принимается не могу понять. Может СМ оценивает качество связи?

Попробовал на 1000Мб сети региона№2 - supermag.core.NewSession НЕТ.
Попробовал на сервере Windows XP региона№2 - supermag.core.NewSession НЕТ.

То есть от скорости сетки и типа операционной системы сервера лицензий этот реконнект не зависит.

Еще есть какие нибудь соображения?

Физических ключей на сервере лицензий 1, для чистоты эксперемента SQLNET.ORA на серверах убрал, остались только TNSNAMES.ORA.
Все одинаково...результат разный...причем во всем №1 реконнект идет, во всем регионе №2 не идет.
ДУмаю все таки что - то внутри базы, какой то параметр. Но я сравнил таблицу supermag.sssysinfo в обоих регионах и разницы не выявил, которая бы явно была подозрительной.

Вообщем пока состояние прострации...
03.12.2013 10:21
Mtirt
 
Параметры БД в Администраторе сервера приложений тоже совпадают???
03.12.2013 11:02
OlegON
 
У меня есть некая уверенность, что ты просто не ловишь сессию с newsession. Кроме того, предлагаю разврапить newsession и посмотреть, есть предположение, что эта процедура дергает ключ, а, соответственно, заставляет работать сервер лицензий, что ты не видишь, отслеживая только одну клиентскую сессию.
03.12.2013 11:10
mighty
 
Цитата:
Mtirt Параметры БД в Администраторе сервера приложений тоже совпадают???
Почти все, разница в 5 параметрах, сверялся прямо в таблице sssysinfo. Различные параметры это параметры выгрузки из СМ в УКМ. У меня эта выгрузка везде в кассовых модулях отключена(в обоих регионах), поскольку кассы использую 1С Штрих 1.10, 1С Штрих 5, ДЭНСИ и соотвественно загрузчик их свой.
То есть упрощенно считаем что параметры идентичны.
03.12.2013 11:17
mighty
 
Цитата:
OlegON У меня есть некая уверенность, что ты просто не ловишь сессию с newsession.
Я тоже сначала так думал, но эксперемент проводил в регионе №2 (трассировал флекстракером) на 3 компах (два раза на клиентских и 1 раз прямо на сервере запускал СМ и трассировал его, чтобы исключить влияние сети), причем ораклы тоже были разные и на линуксе и на винде. И во всех случаях в регионе №2 нет NewSession.
В регионе №1 точно такие же эксперементы ловят двойной запуск этой процедуры.
Эта процедура запускается не только на переходе на вкладку "Цены", но и при открытии Разделы-Карточки товаров, при переходе на вкладку "Документы"...Вот что еще напрягает. И из за этого происходят торможения. Если нужно могу выложить лог трейса в HTML, там есть время действия каждой процедуры.
Цитата:
OlegON Кроме того, предлагаю разврапить newsession и посмотреть, есть предположение, что эта процедура дергает ключ
Это сделал первым делом, глянул, за время работы данной процедуры производится около 4 запросов к таблице SSLOCKS, видимо на ней и тормоза, проверил все индексы, ключи, в обоих регионах структура таблицы совпадает.
03.12.2013 11:33
OlegON
 
Выложи разврапленый код, посмотрим. Вручную запускать процедуру пробовал?
03.12.2013 12:01
mighty
 
Цитата:
OlegON Выложи разврапленый код, посмотрим. Вручную запускать процедуру пробовал?
Да не хотел бы. Все таки интеллектуальная собственность С+. Раз врапят то могут и привлечь. Не стоит, наверное (
Я конечно не юрист, но что-то мне подсказывает что нельзя выкладывать их коды.
03.12.2013 12:04
Mtirt
 
Цитата:
mighty Почти все, разница в 5 параметрах, сверялся прямо в таблице sssysinfo. Различные параметры это параметры выгрузки из СМ в УКМ. У меня эта выгрузка везде в кассовых модулях отключена(в обоих регионах), поскольку кассы использую 1С Штрих 1.10, 1С Штрих 5, ДЭНСИ и соотвественно загрузчик их свой.
То есть упрощенно считаем что параметры идентичны.
Я не про sssysinfo, а про параметры БД Администратора сервера приложений.
Это немного разные вещи.
03.12.2013 12:23
mighty
 
Цитата:
Mtirt Я не про sssysinfo, а про параметры БД Администратора сервера приложений.
Если открыть Администратора СМ и сравнить все параметры? Я так тоже сверял оба региона. Но различие только в настройках выгрузки данных.
Ну и задания разные немного (оракловые events), например расчет среднсуточной в регионе №1 нормально делается, в регионе №2 базы больше и расчет сср часто несрабатывает, поэтому там оно отключено..Но это не принципиально...Проблема в чем то другом..
03.12.2013 12:26
Mtirt
 
Там параметров то 3 штуки... По нажатию кнопки параметры БД.
03.12.2013 12:49
mighty
 
Цитата:
Mtirt Там параметров то 3 штуки... По нажатию кнопки параметры БД.
Извини не понял сначала где смотреть. Он в регионе №1 остановлен(в котором newsession два раза запускается). В регионе №2 (в котором newsession не запускается)- сервера приложений вообще нет. Его не устанавливают.
03.12.2013 12:55
Mtirt
 
Всё. Я осознала, что я не права. В Вашей версии Администратора сервера приложений еще не было.
03.12.2013 13:07
mighty
 
Меня то напрягает пока не тормоза базы, а именно разные запросы двух одинаковых версий СМ (1.026.3 сп 5), потому что тормоз возникает именно на этом этапе.
Лог на одной из баз магазинов региона №1 приложил.
Там NewSession работает относительно быстро(0,3 секунды), но вот в офисе это время от 5 до 7 секунд.
А двухкратное срабатывание этой процедуры в офисе подвешивает СМ клиента на 10-14 секунд.
Вложения
Тип файла: xls trace1.xls (19.5 Кб, 164 просмотров)
03.12.2013 13:17
Mtirt
 
Эта процедура - это опрос ключа защиты.
Найди утилиты проверки ключа, потестируй сам ключ, если уверен, что с сервером всё в порядке.
03.12.2013 14:17
vdm
 
Согласен, что первый подозреваемый - ключ.

А подозрения на тормозной запрос к БД лучше проверять не на клиенте, а на сервере, триггером включать трейс всех сессий по имени юзера и далее tkprof на них. И видны будут реальные запросы, а не абстрактное имя процедуры.
https://olegon.ru/showthread.php?t=10590

С кодом newsession тут возиться не стоит, в каком месте тормозит он не покажет.
03.12.2013 15:34
mighty
 
Цитата:
Mtirt Найди утилиты проверки ключа, потестируй сам ключ, если уверен, что с сервером всё в порядке.
Тань я не совсем понял, ты хочешь сказать что сервер СМ теряет ключ? А что за утилиты? Я скачал диагностику HASP, ключ нашелся нормально, посмотрел отчет, никаких ошибок там не указано...Не понимаю...

Кроме этого NewSession запускается на всех серверах(каждый со своим ключом) региона №1 а их более 20.
А в регионе №2 серверов больше, но там NewSession не запускается.
Навряд ли это ключ.
Дело в СМ.
Попробую трассировку, конечно, но там будут запросы к БД, а мне то хотелось отловить именно причину запуска процедуры проверки ключа...Почему???
03.12.2013 15:38
Mtirt
 
Супермаг ключ не теряет.
Просто Супермаг так написан, что при каждом действии он обращается к ключу. И проверяет, есть ли свободные лицензии, ну и права у пользователя на доступ к запрошенной функции.
03.12.2013 16:21
mighty
 
Цитата:
vdm tkprof на них. И видны будут реальные запросы, а не абстрактное имя процедуры.
сделал так:
1) Запустил СМ на клиенте, открыл карточку товара с артикулом '001689'
2) Включил трассировку сессии (уровень 12)
3) Перешел в СМ на вкладку цены, чтобы отрассировать именно момент торможения.
4) прогнал трэйсфайл через tkprof
Смотрю его (в приложении) никаких торможении вообще не вижу..
Вложения
Тип файла: rar 10185.rar (3.5 Кб, 70 просмотров)
03.12.2013 19:22
OlegON
 
Супермаг открывает несколько сессий, какую ты трассируешь?


Опции темы


Часовой пояс GMT +3, время: 12:41.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.