BEA Logo BEA Tuxedo Release 8.0

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

 

   Tuxedo ホーム   |   BEA WebLogic Server での BEA Jolt の使用   |   先頭へ   |   前へ   |   次へ   |   目次

 


サーブレット・セッション・プールを使用する

プール・マネージャから指定した ServletSessionPool への参照は、Tuxedo の Jolt Server に対するセッション (または接続) のプールを表します。このプールのサイズと接続先の Tuxedo システムはアプリケーション・コードから抽出され、WebLogic の config.xml コンフィギュレーション・ファイルで定義されます。要求が発行されると、SessionPool は使用可能な接続で、最も負荷の低い接続を使用します。

Tuxedo サービスを呼び出す

Jolt 要求は、通常 SessionPoolcall() メソッドを使用する 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);

ここで、ssPoolServletSessionPool に対する参照、"serviceName" は呼び出す Tuxedo サービスの名前、request 引数はサーブレットに関連付けられた HttpServletRequest オブジェクトを示します。

ServletSessionPool.call() メソッドは、HttpServletRequest を内部で ServletDataSet (通常の SessionPool に送信可能) に変換します。

データ・セットにパラメータを追加する

Tuxedo サービスを呼び出す前に、パラメータ・セットにデータを追加することができます。たとえば、要求の日時を表すパラメータを追加したい場合、このパラメータは HttpServletRequestFORM データからは取得できません。このような場合、日時を表すパラメータをサーブレットに追加して、追加されたデータ・セットを 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 を指定すると、トランザクションを使用して複数のセッション呼び出しをグループ化していないことを示します。詳細については、 「トランザクションを使用する」を参照してください。

 

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