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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.04.2010, 11:52   #1  
grnik is offline
grnik
Участник
 
6 / 10 (1) +
Регистрация: 17.09.2013
Работает WEB доступ через NAS сервер.Все нормально, но! Если возникает ошибка, то NAS сервер пишет его в лог сообщений Windows. Я могу его прочитать, но как определить к какому пользователю данная ошибка?
Хочется что бы пользователь смог прочитать ответное сообщение. Аналогично и с предупреждениями.
Старый 21.04.2010, 14:16   #2  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от gr_nik@mail.ru Посмотреть сообщение
Работает WEB доступ через NAS сервер.Все нормально, но! Если возникает ошибка, то NAS сервер пишет его в лог сообщений Windows. Я могу его прочитать, но как определить к какому пользователю данная ошибка?
Хочется что бы пользователь смог прочитать ответное сообщение. Аналогично и с предупреждениями.
Прямого ответа не знаю (точнее про NAS сервер знаю ответ НЕТ), но пытаюсь понять где Вы хотите видеть пользователя (предположительно того, кто входил через Web), в лог сообщений Windows или NAV?
Старый 21.04.2010, 15:04   #3  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Вплоть до шестой версии (ака 2009) NAS является однопоточных приложением, в один момент времени обрабатывается только один запрос к серверу приложений. Сравнение времени появления записи в логе подключений от веб-сервера (надеюсь есть такой и сразу после записи в лог стоит commit ) со временем появления записи в event логе однозначно определит пользователя и ошибку.
Если Вы используете Navision версии 5.0 и выше и не используете транзакции записи - поможет обработка входящего XML запроса с мягким гашением ошибок и получением текста последней ошибки (примерно так):
ProcessXML.setDOC(xmlDOC);
if not ProcessXML.run then
AddError(xmlDoc, GetLastError);

Насколько я помню, при использовании User Portal Pipe в версии NAS 3.70 предупреждения и сообщения валились в выходищий XML, причем на confirm'ы выдавались заданные по дефолту ответы, про Commmunication компоненты ничего сказать не могу, реализация сокетов с ограничением размера пакета толи в 32, толи в 64 кБ (лишнее просто обрезалось) окончательно убила во мне веру в возможность нормальной интеграции НАВ через NAS .
Старый 21.04.2010, 19:03   #4  
grnik is offline
grnik
Участник
 
6 / 10 (1) +
Регистрация: 17.09.2013
Я использую Navision 4.0 SP2. Проверку по времени я делаю, но... это не помогает(вернее помогает не всегда). Так как я могу знать только время отправки сообщения NAS серверу, если я считываю сообщение после этого, то оно может принадлежать другому потоку, который NAS сервер обрабатывал в момент отправки сообщения.
Но за ответ спасибо. По крайней мере копать дальше не буду...
Старый 22.04.2010, 11:53   #5  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от gr_nik@mail.ru Посмотреть сообщение
Я использую Navision 4.0 SP2. Проверку по времени я делаю, но... это не помогает(вернее помогает не всегда). Так как я могу знать только время отправки сообщения NAS серверу, если я считываю сообщение после этого, то оно может принадлежать другому потоку, который NAS сервер обрабатывал в момент отправки сообщения.
Каким образом сервер обрабатывает новое сообщение до отправки ответа по предыдущему?
У Вас пул из нескольких NAS или особый многопоточный NAS (мне до 2009 попадались только однопоточные)?
Алгоритм организации обработки запросов для корректного поиска ошибки:
1. При приеме XML первым делом ищем необработанные записи из лога Нава (нет метки что запрос завершился успешно, нет метки что ощибка обработана).
2. Если запись есть (согласно алгоритму всегда будет не более одной) - ищем последнюю ошибку в логе Винды. Сопоставляем ошибку (лог Винды) и пользователя (лог Навижна). В запись лога Нава дописываем текст ошибки и ставим метку что ошибку обработана.
3. Перед обработкой запроса пишем в лог Нава и коммитим. После обработки в лог Нава пишем что запрос завершился успешно.

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


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:25.