8.4 スレッドパーセッションポリシー
スレッドパーセッションポリシーでは,スレッドはクライアントおよびサーバのプロセス間のコネクションによって割り当てられます。サーバがスレッドパーセッションポリシーを選択すると,新しいクライアントがサーバに接続するたびに新しいスレッドが割り当てられます。個々のクライアントから受信したすべてのリクエストを処理するために,一つのスレッドが割り当てられます。このため,スレッドパーセッションはスレッドパーコネクションとも呼ばれます。クライアントがサーバとのコネクションを切断すると,スレッドはデストラクトされます。クライアントコネクションごとに割り当て可能なスレッドの最大数は,vbroker.se.iiop_ts.scm.iiop_ts.manager.connectionMaxプロパティの設定で制限できます。
|
図8-5は,スレッドパーセッションポリシーの使用を示しています。クライアントアプリケーション#1がオブジェクトインプリメンテーションとのコネクションを確立します。クライアントアプリケーション#2とオブジェクトインプリメンテーションの間には別のコネクションが存在します。クライアントアプリケーション#1からオブジェクトインプリメンテーションにリクエストが入ってくると,ワーカスレッドがそのリクエストを処理します。クライアントアプリケーション#2からリクエストが入ってくると,そのリクエストを処理するために別のワーカスレッドが割り当てられます。
|
図8-6は,クライアントアプリケーション#1から2番目のリクエストがオブジェクトインプリメンテーションに入ってきたところを示しています。リクエスト1を処理するのと同じスレッドがリクエスト2を処理します。このスレッドは,リクエスト1の処理を完了するまでリクエスト2を待たせます(スレッドパーセッションでは,同じクライアントからの複数のリクエストは並列処理しません)。リクエスト1が完了すると,スレッドはクライアントアプリケーション#1からのリクエスト2を処理できます。クライアントアプリケーション#1から複数のリクエストが入ってくることがありますが,リクエストは入ってきた順に処理され,追加スレッドがクライアントアプリケーション#1に割り当てられることはありません。