Interstage Application Server OLTPサーバ運用ガイド
目次 索引 前ページ次ページ

付録I トランザクションアプリケーションのワークユニット機能> I.5 タイマ監視

I.5.1 ワークユニットのサーバアプリケーション最大処理時間

 トランザクションアプリケーションでは、以下のタイマ監視ができます。

 プロセスバインド機能を使用した場合については、“アプリケーション作成ガイド (コンポーネントトランザクションサービス編)”の“プロセスバインド機能を使用したトランザクションアプリケーションの作成”を参照してください。

サーバアプリケーションのタイマ監視

 サーバアプリケーションの最大処理時間(タイムアウト)を設定できます。タイムアウト値は、アプリケーション単位でワークユニットに定義します。
 アプリケーション最大処理時間には0〜86400の整数値を設定することができます。省略値は0が設定されており、0が指定されているワークユニットは、タイマ監視を実施しません。
 なお、サーバアプリケーションの処理中に最大処理時間を超えた場合、Interstageはアプリケーションプロセスを強制停止します。このとき、クライアントアプリケーションには、サーバアプリケーションの復帰値として「10004」(サーバアプリケーション異常)が通知されます。例外情報は通知されません。
 また、Interstageにより強制停止されたアプリケーションプロセスは、自動再起動され、キューイングされている次の要求から順次処理を行います。ただし、ワークユニット定義に連続異常終了回数が設定されている場合で、かつ、タイムアウトが連続異常終了回数に達した場合は、ワークユニットが異常終了します。

 サーバアプリケーション間通信を実施する場合、クライアント側ワークユニットの最大処理時間は、サーバ側ワークユニットの最大処理時間に7秒以上加算した時間を設定してください。
 サーバ側ワークユニットでアプリケーションの処理が最大処理時間を超過した場合、Interstageが実際にサーバの最大処理時間の超過を検出し、クライアントに異常を通知するまでに、最大で7秒かかる場合があります。
 また、要求がサーバ側ワークユニットの待ちキューに滞留している時間およびクライアント側ワークユニットのアプリケーション処理時間も考慮して、クライアント側ワークユニットの最大処理時間を算出してください。

タイマ機能はサーバアプリケーションの障害などにより、アプリケーションの復帰が遅延する場合の対処として使用してください。一般的な運用で頻繁にタイムアウトが発生するような使用は避けてください。

出口プログラムのタイマ監視

 前出口および後出口プログラムのループ回避のために、最大処理時間(タイムアウト)を設定できます。タイムアウト値は、ワークユニット定義に設定します。
 なお、前出口プログラムの処理中にこの最大処理時間を超えた場合、ワークユニットの起動は失敗します。後出口プログラムの処理中にこの最大処理時間を超えた場合、ワークユニットは異常停止となります。

●タイムアウト時の振る舞い

 トランザクションアプリケーションのワークユニットでは、タイムアウト時の振る舞いは以下の1つです。

■定義方法

 ワークユニット定義の“Maximum Processing Time (アプリケーション最大処理時間)”に設定します。以下に定義登録の実行例を示します。なお、ワークユニット定義の詳細は“ワークユニット定義”を参照してください。

ワークユニット定義の登録


 ワークユニット定義

 [Application Program]
 Maximum Processing Time:120


 isaddwudefコマンドでワークユニット名を指定して登録します。

 isaddwudef -o ISSAMPLE1

■タイムアウト時間の設定の目安

 CORBAクライアントアプリケーションとワークユニットで連携する場合、クライアントアプリケーション側で不当なタイムアウトを発生させないために、period_receive_timeout(リクエスト返信までの待機時間)を以下の式が成立するように設定する必要があります。
 なお。サーバアプリケーションタイマ機能とクライアントタイマ機能との役割として、以下のように使い分けます。
 サーバアプリケーションタイマ機能は、主にサーバアプリケーションループなどのサーバアプリケーション処理遅延を主に監視します。
 クライアントのタイマ機能は、レスポンスの保証に使用します。

 period_receive_timeout(T1) > キューイング時間+ Maximum Processing Time(T2)


 サーバアプリケーション間通信を実施する場合、クライアント側ワークユニットの最大処理時間は、サーバ側ワークユニットの最大処理時間に2秒以上加算した時間を設定してください。
 サーバ側ワークユニットでアプリケーションの処理が最大処理時間を超過した場合、Interstageが実際にサーバの最大処理時間の超過を検出し、クライアントに異常を通知するまでに、最大で2秒かかる場合があります。
 また、要求がサーバ側ワークユニットの待ちキューに滞留している時間およびクライアント側ワークユニットのアプリケーション処理時間も考慮して、クライアント側ワークユニットの最大処理時間を算出してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007