Oracle WebLogic Tuxedo Connector プログラマーズ ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Oracle WebLogic Tuxedo Connector サービス EJB の開発

以下の節では、Oracle WebLogic Tuxedo Connector サービス EJB の作成方法について説明します。

 


サービス EJB の基本操作

サービス アプリケーションは、Java および JATMI プリミティブを使用して、次のタスクを提供します。

サービス情報へのアクセス

TPServiceInformation クラスを使用すると、サービスを実行するために Oracle Tuxedo クライアントによって送信されるサービス情報にアクセスできます。

表 3-1 JATMI TPServiceInformation プリミティブ
バッファ タイプ
説明
getServiceData()
Oracle Tuxedo クライアントから送信されるサービス データを返すために使用する。
getServiceFlags()
Oracle Tuxedo クライアントから送信されるサービス フラグを返すために使用する。
getServiceName()
呼び出されたサービス名を返すために使用する。

バッファ メッセージ

アプリケーションと Oracle Tuxedo の間でメッセージの送信および受信を行う場合は、次の TypedBuffer を使用します。

表 3-2 TypedBuffer
バッファ タイプ
説明
TypedString
データが NULL 文字で終了する文字の配列である場合に使用されるバッファ タイプ。Oracle Tuxedo の等価タイプ : STRING。
TypedCArray
データが、NULL 可能な文字の未定義配列 (バイト配列) である場合に使用されるバッファ タイプ。Oracle Tuxedo の等価タイプ : CARRAY。
TypedFML
データが自己定義である場合に使用されるバッファ タイプ。各データ フィールドは独自の識別子、オカレンス番号、および可能であれば長さインジケータを保持する。Oracle Tuxedo の等価タイプ : FML。
TypedFML32
TypeFML に似たバッファ タイプだが、より大きい文字フィールド、より多くのフィールド、およびより大きいバッファ全体に対して使用可能。Oracle Tuxedo の等価タイプ : FML32。
TypedXML
データが XML ベースのメッセージである場合に使用されるバッファ タイプ。Oracle Tuxedo の等価タイプ : XML (Tuxedo リリース 7.1 以降)。
TypedVIEW
VIEW 記述ファイルを用いてバッファ構造を定義するためにアプリケーションが Java 構造体を使用するとき、使用されるバッファ タイプ。Tuxedo の等価タイプ : VIEW。
TypedVIEW32
VIEW に似たバッファ タイプだが、より大きい文字フィールド、より多くのフィールド、およびより大きいバッファ全体に対して使用可能。Oracle Tuxedo の等価タイプ :VIEW32。
TypedXOctet
データが、NULL 可能な文字の未定義配列 (バイト配列) である場合に使用されるバッファ タイプ。X_OCTET のセマンティクスは CARRAY と同じ。Oracle Tuxedo の等価タイプ : X_OCTET。
TypedXCommon
VIEW のセマンティクスと同じバッファ タイプ。Oracle Tuxedo の等価タイプ :VIEW。
TypedXCType
VIEW のセマンティクスと同じバッファ タイプ。Oracle Tuxedo の等価タイプ :VIEW。
TypedMBString
マルチバイト文字をサポートするためにデータがマルチバイトの配列である場合に使用されるバッファ タイプ。Oracle Tuxedo の等価タイプ : MBSTRING。

要求されたサービスの実行

サービスを提供するために必要なロジックを表現するには、Java コードを使用します。

要求/応答通信でクライアント メッセージを返す

クライアント リクエストに応答するには、TuxedoReply クラスの setReplyBuffer() メソッドを使用します。

会話型通信で tpsend および tprecv を使用する

注意 : 会話型通信の詳細については、「Oracle WebLogic Tuxedo Connector JATMI 会話」を参照してください。

以下の JATMI プリミティブは、Oracle Tuxedo クライアントと通信する会話型サーバを作成する際に使用します。

表 3-3 Oracle WebLogic Tuxedo Connector の会話型クライアントのプリミティブ
名前
操作
tpconnect
Oracle Tuxedo 会話型サービスとの接続を確立するために使用する。
tpdiscon
会話を管理するプロセスによって実行された場合に接続を中止し、TPEV_DISCONIMM イベントを生成するために使用する。
tprecv
Oracle Tuxedo アプリケーションからオープンな接続を介してデータを受信するために使用する。
tpsend
Oracle Tuxedo アプリケーションにオープンな接続を介してデータを送信するために使用する。

 


サンプル サービス EJB

文字列引数を受信し、その文字列をすべて小文字に変換して、変換された文字列をクライアントに返す TolowerBean.java サービス EJB の例を次に示します。

コード リスト 3-1 サンプル サービス EJB
.
.
.

public Reply service(TPServiceInformation mydata) throws TPException {
     TypedString data;
     String lowered;
     TypedString return_data;

     log("service tolower called");

     data = (TypedString) mydata.getServiceData();
     lowered = data.toString().toLowerCase();
     return_data = new TypedString(lowered);

     mydata.setReplyBuffer(return_data);
     return (mydata);
}
.
.
.

ページの先頭       前  次