WebLogic Tuxedo Connector プログラマーズ ガイド
WebLogic Tuxedo Connector サービス EJB の開発
以下の節では、WebLogic Tuxedo Connector サービス EJB の作成方法について説明します。
サービス EJB の基本操作
サービス アプリケーションは、Java および JATMI プリミティブを使用して、次のタスクを提供します。
サービス情報へのアクセス
TPServiceInformation クラスを使用すると、サービスを実行するために Tuxedo クライアントによって送信されるサービス情報にアクセスできます。
表 3-1 JATMI TPServiceInformation プリミティブ
バッファ タイプ
|
説明
|
getServiceData()
|
Tuxedo クライアントから送信されるサービス データを返すために使用する。
|
getServiceFlags()
|
Tuxedo クライアントから送信されるサービス フラグを返すために使用する。
|
getServiceName()
|
呼び出されたサービス名を返すために使用する。
|
バッファ メッセージ
アプリケーションと Tuxedo の間でメッセージの送信および受信を行う場合は、次の TypedBuffer を使用します。
表 3-2 TypedBuffer
バッファ タイプ
|
説明
|
TypedString
|
データが NULL 文字で終了する文字の配列である場合に使用されるバッファ タイプ。Tuxedo の等価タイプ : STRING。
|
TypedCArray
|
データが、NULL 可能な文字の未定義配列 (バイト配列) である場合に使用されるバッファ タイプ。Tuxedo の等価タイプ : CARRAY。
|
TypedFML
|
データが自己定義である場合に使用されるバッファ タイプ。各データ フィールドは独自の識別子、オカレンス番号、および可能であれば長さインジケータを保持する。Tuxedo の等価タイプ : FML。
|
TypedFML32
|
TypeFML に似たバッファ タイプだが、より大きい文字フィールド、より多くのフィールド、およびより大きいバッファ全体に対して使用可能。Tuxedo の等価タイプ : FML32。
|
TypedXML
|
データが XML ベースのメッセージである場合に使用されるバッファ タイプ。Tuxedo の等価タイプ : XML (Tuxedo リリース 7.1 以降)。
|
TypedVIEW
|
VIEW 記述ファイルを用いてバッファ構造を定義するためにアプリケーションが Java 構造体を使用するとき、使用されるバッファ タイプ。Tuxedo の等価タイプ : VIEW。
|
TypedVIEW32
|
VIEW に似たバッファ タイプだが、より大きい文字フィールド、より多くのフィールド、およびより大きいバッファ全体に対して使用可能。Tuxedo の等価タイプ : VIEW32。
|
TypedXOctet
|
データが、NULL 可能な文字の未定義配列 (バイト配列) である場合に使用されるバッファ タイプ。X_OCTET のセマンティクスは CARRAY と同じ。Tuxedo の等価タイプ : X_OCTET。
|
TypedXCommon
|
VIEW のセマンティクスと同じバッファ タイプ。Tuxedo の等価タイプ : VIEW。
|
TypedXCType
|
VIEW のセマンティクスと同じバッファ タイプ。Tuxedo の等価タイプ : VIEW。
|
TypedMBString
|
マルチバイト文字をサポートするためにデータがマルチバイトの配列である場合に使用されるバッファ タイプ。Tuxedo の等価タイプ : MBSTRING。
|
要求されたサービスの実行
サービスを提供するために必要なロジックを表現するには、Java コードを使用します。
要求/応答通信でクライアント メッセージを返す
クライアント リクエストに応答するには、TuxedoReply クラスの setReplyBuffer()
メソッドを使用します。
対話通信で tpsend および tprecv を使用する
注意 : 対話通信の詳細については、「WebLogic Tuxedo Connector JATMI 会話」を参照してください。
以下の JATMI プリミティブは、Tuxedo クライアントと通信する対話サーバを作成する際に使用します。
表 3-3 WebLogic Tuxedo Connector の対話クライアントのプリミティブ
名前
|
操作
|
tpconnect
|
Tuxedo 対話サービスとの接続を確立するために使用する。
|
tpdiscon
|
会話を管理するプロセスによって実行された場合に接続を中止し、TPEV_DISCONIMM イベントを生成するために使用する。
|
tprecv
|
Tuxedo アプリケーションからオープンな接続を介してデータを受信するために使用する。
|
tpsend
|
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);
}
.
.
.