WAS for z/OS: Servant HTTP request timeout & stalled threads

При превышении установленного значения  , по умолчанию, сервант сервера приложений падает по тайм-ауту, при этом возникает ошибка “BBOO0327I HTTP REQUEST TIMEOUT”

BBOO0327I: {0} REQUEST TIMEOUT: ({1}):({2}):({3}):({4}):({5}):({6}):({7}):({8}):({9}):({10}):({11}):():():({12})

Explanation Provides additional information for a request that experienced a timeout. The first string indicates the type of request. The other fields are defined below. (servant hexadecimal ASID): (request id): (internal information): (servant tcb address): (servant job id or job name): (time request received in controller): (time request queued to wlm): (time request dispatched in servant): (class name): (method name): (string indicating the origin of the request): (future data): (future data): (request type specific information) For a IIOP request, the last field is not used. For a HTTP request, the last field is the target URI. For a MDB request, the last field is the source message listener port name. If the request was not dispatched to the servant, then the servant TCB address and servant ASID fields in the message are zero and the time request dispatched in servant field is empty.
Action None.

BBOO0327I HTTP REQUEST TIMEOUT: (0091):(FFCA641D):(0001001D):(009CC080):(STC05513):(2014/08/14 10:59:41.885302):(2014/08/14 10:59:41.885826):(2014/08/14 10:59:41.885922):(RemoteWebContainer):(httprequest):(ip addr=10.248.33.54 port=3088):():():(/WAS/MRM/EtbSyncMRMDumb/ETB)

Если к указанному времени прибавить 5 минут (таймаут по умолчанию) = получим реальное время, когда произошел таймаут. В SYSPRINT Servant Region после установки переменной server_region_http_stalled_thread_dump_action=TRACEBACK:

Сервер приложений использует внутренний счетчик для подсчета количества зависших нитей (stalled threads/hung threads). Если нить успевает завершить обработку запроса до того, как SR будет перезапущен, то счетчик уменьшается на единицу. Используя параметр server_region_stalled_thread_threshold_percent, можно увеличить число допустимых зависших нитей, тем самым увеличив время, отводимое на завершение обработки запросов для зависших нитей. CR будет перезапускать SR только в случае достижения определенного количества зависших нитей, но пока это число будет достигнуто, некоторые ранее зависшие нити могут завершиться, т.е. успеть обработать запрос.

Имя переменной server_region_stalled_thread_threshold_percent
Описание Определяет процент от общего числа нитей в серванте, которые должны быть недоступны прежде чем CR завершит работу SR
Тип integer (0-100)
Scope cell/node/server/cluster
Значение по умолчанию 0 (CR завершит работу SR как только появится хотя бы одна зависшая нить)

Для установки этого параметра необходимо в административной консоли WAS выбрать раздел Environment -> WebSphere variables, выбрать нужный scope, нажать New, ввести имя и значение переменной. После сохранения и синхронзации изменений с узлами необходимо перезапустить сервер приложений.

The timers that are used to control processing behavior can be classified into five general types. These general types, and the operations that they control, are summarized in the following table.

General type Timer processing Timeout symptoms
Input Input timers define limits for receiving a complete request; the countdown starts when a connection to the J2EE server is established. The communication protocol (HTTP, HTTPS) determines the timer used for the request. The session is closed.
Session Session timers define limits for the use of session connections. These timers start the countdown as soon as a session becomes idle. The session is closed.
WLM dispatch Dispatch timers control how long a complete client request waits to be dispatched in a servant region for processing. For some dispatch timers, an additional value can be specified that designates the percent of the dispatch time as the timeout value for the WLM queue. If this time is exceeded, then the work is removed from the WLM queue, but an abend is not issued for the servant. The countdown starts when the controller places the request on the WLM queue. Depending on the specific timer, the time limit can include both the wait time on the WLM queue, and the time required for processing a response to the client request. Message BBOO0327I for all timeouts. If the servant is terminated, then Message BBOO0232W and an EC3 ABEND are displayed in the servant, with one of the following reason codes:

  • 04130003
  • 04130004
  • 04130006
Transaction Transaction timers define how long:

  • An application or controller waits for one transaction to complete. The countdown starts when the container starts a transaction on behalf of the application component.
  • A controller attempts to recover in-doubt transactions during peer restart and recovery mode.
Message BBOT0003W or BBOO0232W, and an EC3 ABEND are displayed in the servant, with one of the following reason codes:

  • 04130002
  • 04130005
Output Output timers define how long a controller waits to receive output for a client request. The countdown starts when the client request is dispatched to the servant for processing. The communication protocol (HTTP or HTTPS) determines the timer used for the request. Message BBOO0232W and an EC3 ABEND are displayed in the servant, with reason code 04130007.

https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/dispatch_timeout_handling_in_websphere_application_server_for_zos

VN:F [1.9.22_1171]
Rating: 5.0/5 (3 votes cast)
Tagged with: , , ,
Posted in WebSphere Application Server, Troubleshooting
2 comments on “WAS for z/OS: Servant HTTP request timeout & stalled threads
  1. Самолысов Павел says:

    Коллеги, не могли бы вы дать ссылку на источник этой замечательной сводной таблицы?

    VA:F [1.9.22_1171]
    Rating: +1 (from 1 vote)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Language: