プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server Oracle WebLogic Tuxedo Connectorアプリケーションの開発
12c (12.2.1.3.0)
E90367-01
目次へ移動
目次

前
次

3 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の間でメッセージの送信および受信を行う場合は、次のTypedBuffersを使用します。

表3-2 TypedBuffers

バッファ・タイプ 説明

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);
} 
.
.
.