AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2018, 16:22   #1  
rashuf is offline
rashuf
Участник
 
5 / 10 (1) +
Регистрация: 25.09.2013
Ax2009 SP1 RU6. Пользователи не могут зайти, но уже авторизованные продолжают работать
Добрый день!
DAX 2009 SP1 RU6, MS SQL 2012 Standard, Windows Server 2012 R2 Standard (и приложение, и база на одном физическом сервере). Все чаще (раньше - раз в пару недель, потом разв в неделю, теперь пару раз в неделю) наблюдается следующая картина - аксапта перестает "пускать" новых пользователей в аксапту, при этом уже авторизованные пользователи продолжают работать. "Не пускает" означает, что при запуске клиента он перестает отвечать - висит окно с заголовком и белым фоном. При наблюдении с помощью process monitor видно, что с клиентской машины уходит 2 пакета, и сервер на них отвечает. В TCP view соединение в статусе established. Порт открыт, база доступна. Служба не "падает". Но дальше этих двух пакетов процесс обмена между клиентом и сервером не идет. Устанавливали обновления ОС, настроен периодический перезапуск служб базы данных и приложений с удалением индексов. В логах ОС ничего, что хотя бы намекнуло на источник. Журнал SQL так же чист. Собирали дампы с помощью process explorer и debug diagnostic tools 2.2, анализировали с помощью скриптов (EMEADAXSupport ) в WinDbg - ничего (при критических падениях ранее эти скрипты помогли исправить ошибки). Нашел вот такую тему на форуме с похожей проблемой, но решения или описания источника в ней не нашел.
В чем может быть проблема? Кто-нибудь наблюдал такое поведение?
Старый 11.09.2018, 17:09   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,734 / 906 (34) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
У нас наблюдалось такое поведение чаще всего тогда, когда кто-то заходил в Аксапту с клиентом, версия которого ниже, чем у сервера.
Если такой пользователь заходил, то через некоторое время переставало пускать других. Может быть у Вас та же беда? Посмотрите значение поля BuildNum в таблице SysUserLog (ну или прямо в интерфейсе в запросах модуля Администрирование) у всех ли оно совпадает.
Старый 11.09.2018, 17:20   #3  
online
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,091 / 1807 (67) ++++++++
Регистрация: 12.10.2004
У нас похожее бывало когда глючил DNS и сервер аоса вываливался из домена.
Старый 11.09.2018, 18:47   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,728 / 841 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Такое случалось, когда кто-то пытался открыть редактор меток, просмотр меток, импорт проекта на рабочем приложении.
За это сообщение автора поблагодарили: rashuf (1).
Старый 11.09.2018, 20:15   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,401 / 887 (32) +++++++
Регистрация: 13.01.2004
Наверное, уже проверяли, но все-таки уточню. Ничего подозрительного в методах старта Axapta не делали?

- infolog.startup
- infolog.startupPost
- application.startup
- application.startupPost

При зависании, тем не менее, запись в логе входов пользователя создается?

Т.е., может, проблема не в системе, а в кривой кастомизации? Сделали какую-то обработку при входе, но не удачно и сейчас это проявилось...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 12.09.2018, 08:04   #6  
rashuf is offline
rashuf
Участник
 
5 / 10 (1) +
Регистрация: 25.09.2013
Thumbs up
Raven Melancholic,
действительно, есть несколько пользователей с BuildNum 1000.52 (при этом на сервере 1500.3761). Обновляем - ставим RU6. Но интересно, что раньше, когда приложение стояло на сервере 2008R2, "зависаний" не было. Кстати, в журнале Приложение ОС видно предупреждение с кодом 151 (Object Server 01: Internal aocp revision mismatch. Axapta client from PC310 (0.0.0.0) tried to attach with 5.0.1500.3761 revision of kernel)

Logger,
проверили DNS - вроде все нормально. Не может быть причиной проблемы с DNS на клиентах? Это проверим. Но в журналах контроллера домена никаких упоминаний на этот счет нет.

Wamr,
как раз бывало такое, что при импорте проекта приложение зависало и сервер переставал пускать новых пользователей Но т.к. сервер и сам по себе вис, без помощи программиста то мы посчитали это только признаком неправильной работы. Т.е. зависание не вызывается импортом. Раз на раз не приходится.

Владимир Максимов,
есть модификация на info.startupPost. Но код корректный. Запись в логах о входе пользователя не создается.

В общем, почти полный букет симптомов
Спасибо за отклик! Будем наблюдать, позже сообщу результаты.
Старый 18.09.2018, 14:41   #7  
rashuf is offline
rashuf
Участник
 
5 / 10 (1) +
Регистрация: 25.09.2013
обновление клиентов не помогло
Добрый день!
Изменение версии клиентов (в 6 случаях - увеличение (поставили RU6), в одном - уменьшение (удалили одно KB)) на зависания не повлияло. Сегодня опять зависла служба.
В описании симптомов забыл упомянуть, что служба AIF, которая работает через BusinessConnector, мгновенно перестает отвечать. Это своего рода мониторинг зависаний
Хочу также поинтересоваться, используется ли такое сочетание ПО (Server 2012 Standard + MS SQL 2012 + DAX 2009 на одном сервере) у кого-нибудь еще? А то есть подозрение, что дело может быть в версии ОС. А пока потихоньку готовим запасной плацдарм в виде виртуальной Windows Server 2012 на Hyper-V. И будем убирать модификацию info.startupPost.
Старый 30.11.2018, 09:19   #8  
rashuf is offline
rashuf
Участник
 
5 / 10 (1) +
Регистрация: 25.09.2013
Thumbs up
После нескольких месяцев наблюдений делаем следующие выводы.
Во-первых, после удаления модификации метода info.startupPost() "зависаний" стало гораздо меньше. Несколько раз было, но причины пока неясны.

Во-вторых, были падения службы AOS в момент, когда один из разработчиков пытался открыть редактор меток.

Считаю, что основная причина, отвественная за зависания в 90% случаев, выяснена - модификация info.startupPost().

Всем спасибо за помощь!
Старый 30.11.2018, 10:40   #9  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
3,977 / 2048 (76) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А какой код там был?
__________________
Ivanhoe as is..
Старый 30.11.2018, 12:26   #10  
rashuf is offline
rashuf
Участник
 
5 / 10 (1) +
Регистрация: 25.09.2013
Вот этот метод вызвался в startupPost
X++:
boolean closeOpenSession_flx()
{
    int             counter = 0,num;
    int             curSessions,maxSessions;
    int             curSessionId = new xSession().sessionId();
    container       users;
    userId          userId;
    Session         sessionToTerm;
    xSession        session;
    Container       userCon,activeUserCon;
    UserInfo        userInfo;
    ;

    counter = Info::licensedUsersTotal();
    userCon = SysUserInfo::getFullLicense();
    maxSessions = counter - conlen(userCon);
    curSessions = Info::getAllOnlineUser();
    userid = curuserid();
    // Проверка лицензий для приоритетных пользователей
    if (!confind(userCon,curuserid()) && curSessions >= maxSessions )
    {
        sessionToTerm = new Session(curSessionId);
        sessionToTerm.terminate();
        sessionToTerm = NULL;
        box::stop(strfmt("%1! Программа не может быть запущена. Количество активных пользователей превышает количество лицензий. Попробуйте подключиться позже!",
                  xUserInfo::find().name), "Microsoft Dynamics AX Access Control");
        appl.globalCache().set(classstr(Info),identifierstr(Autologoff), true);
        infolog.shutDown(true);
        return true;
    }
    // Проверка повторного входа того же пользователя
    if (SysUserInfo::checkLicenseAccess(userid))
    {
        for(counter = 1; counter < maxSessions;counter++ )
        {
            session = new xSession(counter, true);
            if(session && session.userId() && session.clientKind()!= ClientType::WorkerThread)
            {
                select firstOnly userInfo
                    where userInfo.id == session.userId();

                if (userInfo && (userid == session.userId()))
                {
                    num++;
                }
            }
        }
    }
    if (num > 1)
    {
        box::stop(strfmt("%1! Программа не может быть запущена дважды!",
                  xUserInfo::find().name), "Microsoft Dynamics AX Access Control");
        appl.globalCache().set(classstr(Info),identifierstr(Autologoff), true);
        infolog.shutDown(true);
        return true;
    }
    return false;
}
X++:
if (this.closeOpenSession_flx())
{
    return;
}

Последний раз редактировалось rashuf; 30.11.2018 в 12:28.
Теги
ax2009, зависание

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX2009 как работать с элементом Window Arahnid DAX: Администрирование 2 14.09.2014 14:59
Dynamics AX Sustained Engineering: Individual patching for Dynamics AX2009 SP1 industry solutions Blog bot DAX Blogs 0 13.06.2012 10:11
axinthefield: Choosing a Single Deployment or Multiple Deployments of AX2009 Blog bot DAX Blogs 0 15.06.2011 03:25
Ax2009 SP1 RU6. LedgerBalanceSum_CurrentMST.buildQuery(). Ошибка при пустой начальной дате Damn DAX: Программирование 11 30.03.2011 16:15
Почему не могут зайти пользователи Excel 2003 на OLAP 2005? mazzy DAX: Администрирование 4 30.08.2007 10:35
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:35.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.