| Oracle® Fusion Middleware Oracle WebLogic Server WebLogic Tuxedo Connectorプログラマーズ・ガイド 12c リリース1 (12.1.1) B65957-01 |
|
![]() 前 |
![]() 次 |
この章では、Oracle WebLogic Tuxedo ConnectorサービスEJBの作成方法について説明します。
この章の内容は以下のとおりです。
サービス・アプリケーションは、JavaおよびJATMIプリミティブを使用して、次のタスクを提供します。
サービス情報へのアクセス
バッファ・メッセージ
リクエストされたサービスの実行
TPServiceInformationクラスを使用すると、サービスを実行するためにOracle Tuxedoクライアントによって送信されるサービス情報にアクセスできます。
アプリケーションと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()メソッドを使用します。
以下のJATMIプリミティブは、Oracle Tuxedoクライアントと通信する会話型サーバーを作成する際に使用します。
文字列引数を受信し、その文字列をすべて小文字に変換して、変換された文字列をクライアントに返す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);
}
.
.
.