Текущее время: Пт, мар 29 2024, 16:58

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Вт, окт 18 2011, 08:43 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Коллеги, ситуация такая: к нам в систему приходят соообщения из PI и обрабатываются ABAP-прокси. Иногда при обработке сообщения возникает ошибка уровня бизнес логики и в таком случает возникает исключение, предусмотренное интерфейсом. Однако такое ошибочное сообщение блокирует всю входящую очередь, что естественно никого не устраивает. Ручной перезапуск бесполезен, т.к. при повторной обработке возникает та же самая ошибка.
Что можно попробовать сделать в такой ситуации?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Вт, окт 18 2011, 10:00 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
какое именно "предусмотренное исключение" не обрабатывается в коде прокси?

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Вт, окт 18 2011, 10:59 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
CX_SAPPLCO_STANDARD_MSG_FAULT - возвращается аккуратный списочек ошибок/предупреждений в ответ на пришедшее сообщение.
Хм, а что, блокируется очередь или нет зависит от вида ошибки?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Вт, окт 18 2011, 13:53 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
CX_SAPPLCO_STANDARD_MSG_FAULT унаследован от CX_PROXY_FAULT ?

Вообще, в двух системах (BW7 и иксайной) я такого CX_PROXY_FAULT не нашёл, наверное у вас он какой-то специфичный а не стандартный для Local Integration Engine.

В qRFC/SMQ2 будет при многих исключениях зависать, собственно это "так и должно быть" для мониторинга. Можно настроить задание по периодическому рестарту LUWов, тогда будет пробовать снова и снова. Как правило, такие необработанные исключения требуют вмешательства оператора.

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Вт, окт 18 2011, 20:48 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вт, сен 25 2007, 13:27
Сообщения: 45
Откуда: Москва, АНТ-Информ (Газпром)
Пол: Мужской
Необходимо в коде Abap-proxy ловить любое исключение, а затем генерировать уже исключение данной прокси. Таким образом сообщение не будет висеть в очереди со статусом Sheduled, более того через SXI_MONITOR ты сможешь увидеть текст исключения в виде XML-ки, а сообщение будет со статусом Application Error, и к нему будут доступны все фичи - редактирование меседжа, алертинг и рестарт.
Чтобы у Abap-proxy было собственное исключение, необходимо, чтобы интерфейс на котором генерируется прокси имел Fault Message.

_________________
Ерин Саня: А я напишу свой SAP ...с блэкджеком и шлюх*ми


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Ср, окт 19 2011, 16:25 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
chumpa написал:
CX_SAPPLCO_STANDARD_MSG_FAULT унаследован от CX_PROXY_FAULT ?

Вообще, в двух системах (BW7 и иксайной) я такого CX_PROXY_FAULT не нашёл, наверное у вас он какой-то специфичный а не стандартный для Local Integration Engine.

В qRFC/SMQ2 будет при многих исключениях зависать, собственно это "так и должно быть" для мониторинга. Можно настроить задание по периодическому рестарту LUWов, тогда будет пробовать снова и снова. Как правило, такие необработанные исключения требуют вмешательства оператора.


Да, это исключение в ERP обитает, но у нас накатывались какие-то дополнительные компоненты. CX_SAPPLCO_STANDARD_MSG_FAULT наследуется от CX_DYNAMIC, который наследуется от CX_ROOT. На самом деле рестарт в большинстве случаев может не помочь, т.к. если проблема в пришедших данных (т.е. бизнес уровня), то ошибка будет повторяться при каждом перезапуске.
Т.е. я вижу несколько вариантов:
1. Редактировать сообщение (но ведь отправившая система об этом ничего не узнает, возникнет рассинхронизация данных и маленький персональный хаос);
2. Удалить сообщение и перезапустить очередь (но нужно как-то уведомлять отправившую систему об ошибке);
3. Пропустить сообщение и отправить текст исключения отправителю - вот этот вариант и видится мне самым разумным.

erinsasha написал:
Необходимо в коде Abap-proxy ловить любое исключение, а затем генерировать уже исключение данной прокси. Таким образом сообщение не будет висеть в очереди со статусом Sheduled, более того через SXI_MONITOR ты сможешь увидеть текст исключения в виде XML-ки, а сообщение будет со статусом Application Error, и к нему будут доступны все фичи - редактирование меседжа, алертинг и рестарт.
Чтобы у Abap-proxy было собственное исключение, необходимо, чтобы интерфейс на котором генерируется прокси имел Fault Message.


Вот, я догадывался об этом и именно так сделал. Т. е. это исключение и есть исключение моей прокси (я это попытался выразить фразой "предусмотренное интерфейсом"). И действительно текст виден, статус Application Error. А очередь все равно блокируется. Наверное я где-то какую-то мелочь упускаю. Попробую еще поэкспериментировать. В крайнем случае буду сообщения об ошибках отправлять отдельным интерфейсом. Или акноледжменты настраивать буду учиться.

Спасибо всем вам большое за помощь!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Ср, окт 19 2011, 17:38 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Вт, сен 25 2007, 13:27
Сообщения: 45
Откуда: Москва, АНТ-Информ (Газпром)
Пол: Мужской
>А очередь все равно блокируется. Наверное я где-то какую-то мелочь упускаю.
А сообщение случаем не EOIO ? Префикс у имени очереди с буквой T или Q ?

>В крайнем случае буду сообщения об ошибках отправлять отдельным интерфейсом. Или акноледжменты настраивать буду учиться.
Никакой дополнительной ф-ии для акноледжментов не нужно! Если в заголовке сообщения стоит, что оно требует акноледжмент, то
1) Если успешно обработалось, автоматически пошлется успешный ack
2) Если прокси словила исключение (было сгенерировано исключение именно данной прокси), то отправится акноледжмент appl err

Вывод - надо полюбому ловить все исключения в прокси.

_________________
Ерин Саня: А я напишу свой SAP ...с блэкджеком и шлюх*ми


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Пт, окт 21 2011, 15:47 
Специалист
Специалист

Зарегистрирован:
Ср, май 04 2011, 23:46
Сообщения: 228
Гляньте ноты
Note 1483845 - Using the report RSARFCEX
и
Note 527481 - tRFC or qRFC calls are not processed


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как отключить блокировку очереди в SMQ2?
СообщениеДобавлено: Пн, окт 24 2011, 09:36 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 23 2004, 10:40
Сообщения: 459
adropofmind написал(а):
Гляньте ноты
Note 1483845 - Using the report RSARFCEX
и
Note 527481 - tRFC or qRFC calls are not processed

и как эти ноты помогут в описанной ситуации?


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB