Текущее время: Чт, мар 19 2026, 01:28

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Пн, июн 28 2010, 15:34 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
Есть JDBC-receiver (Оракл), который асинхронно получает данные. Асинхронно. Без всякого EOIO.
Сегодня столкнулся с проблемой -- при оракловых дедлоках в процессе вставки вся шина (7.1ehp4) перестаёт отправлять JDBC-сообщения в сторону получателей, любых. Получается что внешний асинхронный получатель может задосить все обмены при некоторых условиях :(

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Вт, авг 10 2010, 19:49 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
Возвращусь к указанной теме... Очень серъёзная и неприятная проблема, в Backlog видная через затык в DispatchDisp. Есть несколько нот на тему добавление диспетчеру ресурсов, правда у меня не получилось добавить как написано тут -- нота 1136790 Blocking receiver channel may affect the whole adapter type

Параметр messaging.system.queueParallelism.maxReceivers не меняется :(

Возможные дополнительные способы решения проблемы: установка лишней джава-ноды или вынос особо критичных JDBC-получателей в нецентральные адаптерные движки.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Пт, авг 13 2010, 14:56 
Ассистент
Ассистент
Аватара пользователя

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

driver:oracle.jdbc.ReadTimeout в миллисекундах
driver:oracle.net.CONNECT_TIMEOUT в миллисекундах
sqlquerytimeout в миллисекундах
poolWaitingTime в миллисекундах

taskTimeout в секундах

Еще можешь попробовать поставить галочку - отключаться от БД после каждого сообщения

Раньше меня эта проблема тоже данимала :twisted:

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Пт, авг 13 2010, 17:15 
Директор
Директор

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

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Пт, авг 13 2010, 19:44 
Ассистент
Ассистент
Аватара пользователя

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

Пробовал? У меня однозначно это помогло!

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Пн, сен 27 2010, 17:44 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
Кстати а как быть с другой похожей болячкой -- при одновременном засовывании скажем ~30-50 синхронных запросов, вылезает HTML ERROR 503 Error: /MessagingSystem/receive/AFW/XI is temporary unavailable. Думаю тут что-то связано с лимитом диалоговых рабочих процессов, т.к. если на ошибку запроса повторять его и повторять то в SM50 [censored]. Пока выкручиваюсь искусственными случайными задержками перед запросом (скажем от 10 до 60 секунд случайно спать), но это уже явно отжимает диалоговый процесс.

Или снова вариант -- все такие запросы выполнять не в CAE а в другом AE?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Вс, ноя 07 2010, 21:05 
Ассистент
Ассистент

Зарегистрирован:
Вт, июл 18 2006, 17:51
Сообщения: 48
chumpa написал:
Возвращусь к указанной теме... Очень серъёзная и неприятная проблема, в Backlog видная через затык в DispatchDisp. Есть несколько нот на тему добавление диспетчеру ресурсов, правда у меня не получилось добавить как написано тут -- нота 1136790 Blocking receiver channel may affect the whole adapter type

Параметр messaging.system.queueParallelism.maxReceivers не меняется :(

Возможные дополнительные способы решения проблемы: установка лишней джава-ноды или вынос особо критичных JDBC-получателей в нецентральные адаптерные движки.


Уважаемый chumpa,

если еще актуально. В вашем случае, судя по всему, увеличение записей в очереди DispatchDisp свидетельствует о проблемах на одном из адаптеров, вызванных проблемами на backend системах. Как вы правильно заметили нужно задать значение для параметра messaging.system.queueParallelism.maxReceivers. Но поменять его в NWA не получится. Это делается при помощи утилиты configTool (для SAP PI 7.1 EHP 1). У меня была аналогичная проблема, но с RFC адаптером, когда из-за проблем на любой backend системе подвисал весь Java стек на SAP PI системе.

С уважением, Александр


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Пт, апр 08 2011, 18:22 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 03 2005, 10:16
Сообщения: 74
У меня похожая проблема...

Есть PI 7.0 и его клон с апгрейдом до 7.1. На обоих в AF настроено Send.maxConsumers=20, Recv.maxConsumers=20, Call.maxConsumers=20, Rqst.maxConsumers=20 для SOAP и RFC.
Есть синх.сценарий SOAP - PI - BAPI настроенный на обеих системах.
Есть java-софтина, которая шлет http-запросы или дергает SOAP. Реализована многопоточность, т.е. отправлять она умеет сразу кучу синхронных запросов.

1) На PI 7.0
а) Тестирую SOAP вызовы. 100 вызовов с интервалом 200 мс.
Мониторю AF и вижу, что заполняются рабочие процессы SOAP, заполняются процессы RFC и как только все процессы заняты (BAPI выполняется секунды 4-5) начинает заполняться очередь SOAP . По мере выполнения BAPI-шек очередь SOAP очищается и все процессы SOAP и RFC освобождаются. Все ответы успешно получены.

б) Тестирую тоже самое только в обход SOAP, шлю сразу в IE http-запрос. 100 запросов с интервалом 200 мс.
Мониторю AF и вижу, что заполняются рабочие процессы RFC и как только все процессы заняты начинает заполняться очередь RFC. По мере выполнения BAPI-шек очередь RFC очищается и все процессы RFC освобождаются. Все ответы успешно получены.

Т.е. все так, как и должно быть ...

2) На PI 7.1
а) Тестирую SOAP вызовы. 100 вызовов с интервалом 200 мс.
Мониторю AF и вижу, что заполняются рабочие процессы SOAP (максимум 15 из 20), заполняются процессы RFC (максимум 15 из 20) и совсем не заполняется очередь SOAP. По мере выполнения BAPI-шек все процессы SOAP и RFC освобождаются.
Примерно треть запросов успешно отрабатывает. Две трети возвращается с ответом:
Error: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (503Service Unavailable

б) Тестирую тоже самое только в обход SOAP, шлю сразу в IE http-запрос. 100 запросов с интервалом 200 мс.
Мониторю AF и вижу, что заполняются рабочие процессы RFC (максимум 15 из 20) и совсем не заполняется очередь RFC. По мере выполнения BAPI-шек все процессы RFC освобождаются.
Примерно одна пятая-шестая часть запросов успешно отрабатывает. Большинство же возвращается с ответом: Error: Server returned HTTP response code: 500 for URL:
В payload-e пишет:

"503 Service Unavailable
Error: /MessagingSystem/receive/AFW/XI is temporary unavailable."

Получается AF вместо того, чтобы складывать запросы в очередь, просто футболит их с ошибкой 503. При этом мониторинг AF в PI71 жутко тормозит и долго обновляет страницу.
Насчет DispatchDisp - не видно, что как-нить заполняется.

Как все это победить - пока не нашли ...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Вт, апр 12 2011, 17:36 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 03 2005, 10:16
Сообщения: 74
Проблема "503 Service Unvaliable" решена. Дело было в ограничении на кол-во http-соединений. https://service.sap.com/sap/support/notes/1469844
По дефолту было 15, соответственно 15 из 20 процессов и были заняты. Увеличили пока до 50, но для данного сценария походу мало.
Из 100 запросов все равно около 6-7 возвращаются с ошибкой 503.
Теперь используются все 20 процессов.
И очередь копится в DispatchDisp. А почему не в SOAP и RFC очередях?..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Вт, апр 12 2011, 17:39 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
про 15 соединений не знал но опробую нагрузку, посмотрю
А DispatchDisp в 7.1 это единая точка входа, поэтому в нём независимо от адаптера и копится (вернее для каждого адаптера "свой" dispatchdisp но показано одной строкой)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Чт, дек 08 2011, 09:52 
Специалист
Специалист

Зарегистрирован:
Пт, май 07 2010, 13:17
Сообщения: 120
Откуда: Сургут
Пол: Мужской
chumpa написал:
Есть JDBC-receiver (Оракл), который асинхронно получает данные. Асинхронно. Без всякого EOIO.
Сегодня столкнулся с проблемой -- при оракловых дедлоках в процессе вставки вся шина (7.1ehp4) перестаёт отправлять JDBC-сообщения в сторону получателей, любых. Получается что внешний асинхронный получатель может задосить все обмены при некоторых условиях :(


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

Как решать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Чт, дек 08 2011, 10:25 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
привет!
RWB -> Component monitoring -> Display -> Adapter Engine -> Engine status
Messaging overview
Смотри, что в DLNG по JDBC.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Чт, дек 08 2011, 12:19 
Специалист
Специалист

Зарегистрирован:
Пт, май 07 2010, 13:17
Сообщения: 120
Откуда: Сургут
Пол: Мужской
ничего не вижу. Отправил картинки почтой.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: JDBC, неожиданное бутылочное горло
СообщениеДобавлено: Чт, дек 15 2011, 11:37 
Ассистент
Ассистент
Аватара пользователя

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

Если там все по нулям, тогда что показывается в аудите сообщения в AE ?

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


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

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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