![]() |
![]() |
|
|
サーブレット・セッション・プールを使用する
プール・マネージャから指定した ServletSessionPool への参照は、Tuxedo の Jolt Server に対するセッション (または接続) のプールを表します。このプールのサイズと接続先の Tuxedo システムはアプリケーション・コードから抽出され、WebLogic の config.xml コンフィギュレーション・ファイルで定義されます。要求が発行されると、SessionPool は使用可能な接続で、最も負荷の低い接続を使用します。
Tuxedo サービスを呼び出す
Jolt 要求は、通常 SessionPool の call() メソッドを使用する Tuxedo サービスに対する 1 つの呼び出しで構成されています。Tuxedo サービスに名前を付けて、call() メソッドに一連のパラメータを設定すると、Tuxedo サービスから結果が返されます。1 つのトランザクションで複数の呼び出しを行うことにより、サーブレットが Tuxedo アプリケーションのトランザクション要求に対応したり、データベース間の整合性を維持することができます。このトランザクションの詳細については、「トランザクションを使用する」で説明します。
ServletDataSet を送信する
ServletSessionPool では、オーバーロードした call() メソッドを HTTP サーブレット内で使用できます。これらのメソッドは、HttpServletRequest オブジェクトによって入力パラメータを受け取るので、HTTP サーブレットの doPost() または doGet() メソッドに渡された HttpServletRequest オブジェクトと同じオブジェクトを受け取ることができます。ただし、この場合、HTTP でポストされた name=value の組み合わせが、Tuxedo サービスが要求する名前と一致している必要があります。これらのデータは最終的に Java Hashtable に変換されるので、名前の順序は識別されません。HttpServletRequest に含まれるその他のデータによって Tuxedo サービスが中断されることはありません。
Tuxedo サービスは、次のメソッドを使用して HTTP サーブレットから呼び出されます。
ssPool.call("serviceName", request);
ここで、ssPool は ServletSessionPool に対する参照、"serviceName" は呼び出す Tuxedo サービスの名前、request 引数はサーブレットに関連付けられた HttpServletRequest オブジェクトを示します。
ServletSessionPool.call() メソッドは、HttpServletRequest を内部で ServletDataSet (通常の SessionPool に送信可能) に変換します。
データ・セットにパラメータを追加する
Tuxedo サービスを呼び出す前に、パラメータ・セットにデータを追加することができます。たとえば、要求の日時を表すパラメータを追加したい場合、このパラメータは HttpServletRequest の FORM データからは取得できません。このような場合、日時を表すパラメータをサーブレットに追加して、追加されたデータ・セットを Tuxedo サービスに送信します。次の例は、この手順を示しています。
// 新しいデータ・セットの作成
ServletDataSet dataset = new ServletDataSet();
// HttpServletRequest をデータ・セットにインポート
dataset.importRequest(request);
// 追加のパラメータをデータ・セットに挿入
dataset.setValue("REQUEST_TIME", (new Date()).toString());
// データ・セットを指定したサービスに送信
ssPool.call("service_name", dataset, null);
このコード例は、HttpServletRequest オブジェクトを ServletDataSet オブジェクトに手動で変換する方法を示しています。この新しい形式では、setValue() メソッドを使用してパラメータを追加することができます。新しい値は、文字列で表されるキーに関連付けられています。次に、SessionPool から継承される call() メソッドが呼び出されます。このメソッドは ServletDataSet クラスを受け付けますが、トランザクションで使用するその他の引数を要求します。この最後のパラメータに null を指定すると、トランザクションを使用して複数のセッション呼び出しをグループ化していないことを示します。詳細については、 「トランザクションを使用する」を参照してください。
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|