BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   C 言語を使用した BEA Tuxedo アプリケーションのプログラミング   |   先頭へ   |   前へ   |   次へ   |   目次

 


サーバでのマルチスレッドとマルチコンテキストの動作

マルチスレッドおよびマルチコンテキスト・アプリケーションがアクティブの場合、サーバで行われる処理は次の 3 つのフェーズに分類できます。

起動フェーズ

起動フェーズで行われる処理は、コンフィギュレーション・ファイルの MINDISPATCHTHREADSMAXDISPATCHTHREADS パラメータの値によって異なります。

MINDISPATCHTHREADS の値

MAXDISPATCHTHREADS の値

処理内容

0

> 1

  1. BEA Tuxedo システムがスレッド・ディスパッ チャを生成します。

  2. ディスパッチャが tpsvrinit() を呼び出し て、アプリケーションに参加します。

> 0

> 1

  1. BEA Tuxedo システムがスレッド・ディスパッ チャを生成します。

  2. ディスパッチャが tpsvrinit() を呼び出し て、アプリケーションに参加します。

  3. BEA Tuxedo システムがサービス要求を処理す る新しいスレッドと、そのスレッドに対するコ ンテキストを生成します。

  4. システムで生成された新しいスレッドがそれぞ れ tpsvrthrinit(3c) を呼び出して、アプリ ケーションに参加します。

作業フェーズ

このフェーズでは、次の処理が行われます。

サーバ・ディスパッチ・スレッド

クライアントのサービス要求への応答として、サーバ・ディスパッチャは設定可能な最大数まで複数のスレッドを 1 つのサーバに生成します。このサーバは、各種のクライアント要求に同時に割り当てることができます。サーバが tpinit() を呼び出してクライアントになることはできません。

各ディスパッチ・スレッドは、別々のコンテキストと対応付けられています。この機能は会話型サーバと RPC サーバの両方で有用です。特に、会話型サーバではこの機能を利用できないと、ほかの会話接続がサービスを待っている間、クライアント側の会話をアイドル状態で待つことになります。

この機能は、UBBCONFIG(5) ファイルの SERVERS セクションと TM_MIB(5) の次のパラメータで制御されます。

UBBCONFIG パラメータ

MIB パラメータ

デフォルト値

MINDISPATCHTHREADS

TA_MINDISPATCHTHREADS

0

MAXDISPATCHTHREADS

TA_MAXDISPATCHTHREADS

1

THREADSTACKSIZE

TA_THREADSTACKSIZE

0 (オペレーティング・システムのデフォルト値)

アプリケーション生成のスレッド

オペレーティング・システム関数を使用して、アプリケーション・サーバ内に新しいスレッドを追加できます。アプリケーション生成のスレッドは、次のように動作します。

アプリケーション内にスレッドを生成する場合、次の制約があります。

BBL によるシステム・プロセスの正常性チェック

BBL は定期的にサーバを検証します。特定のサービス要求の実行に時間がかかりすぎている場合、BBL はそのサーバを強制終了します。そして、指定されている場合は、そのサーバを再起動します。BBL がマルチコンテキスト・サーバを強制終了した場合、プロセスを強制終了した結果として、実行中のそのほかのサービス呼び出しも終了します。

また、BBL はタイムアウト値を超えてメッセージの受信を待機しているプロセスまたはスレッドにメッセージを送信します。ブロッキング・メッセージ受信への呼び出しがタイムアウトを示すエラーを返します。

システムで保持されるサーバ・スレッドの統計

BEA Tuxedo システムでは、各サーバに対して次の統計情報が保持されます。

ユーザ・ログで保持されるスレッド固有の情報

userlog(3c) を使用すると、各アプリケーション内の各スレッドに対して次の識別情報が記録されます。

process_ID.thread_ID.context_ID

スレッドがサポートされていないプラットフォームやシングルコンテキスト・アプリケーションに対しては、thread_ID フィールドと context_ID フィールドにプレースホルダが出力されます。

TM_MIB(5) では、この機能は T_ULOG クラスの TA_THREADID フィールドと TA_CONTEXTID フィールドでサポートされています。

完了フェーズ

アプリケーションをシャットダウンすると、tpsvrthrdone(3c)tpsvrdone(3c) が呼び出されて、リソース・マネージャのクローズなど、必要な終了処理が行われます。

関連項目

 

先頭へ戻る 前のトピックへ 次のトピックへ