Javaを使用したOracle Tuxedoアプリケーションのプログラミング

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

ATMI Javaサーバーのユーザー・インタフェース

このトピックには次の項が含まれます:

 


TuxedoJavaServer

TuxedoJavaServerは抽象クラスです。サービスを実装するすべてのユーザー定義クラスによって継承される必要があります。

表2-1 TuxedoJavaServerインタフェース
関数
説明
tpsvrinit
初期化処理を実行するために、子クラスが実装する必要がある抽象メソッド
tpsvrdone
クリーンアップ処理を実行するために、子クラスが実装する必要がある抽象メソッド
getTuxAppContext
現在アタッチされているTuxedoアプリケーションJavaコンテキストを取得するために使用

 


Oracle Tuxedo Javaコンテキスト

Oracle Tuxedo Javaサーバーで提供されるTJATMIプリミティブにアクセスするには、すべてのTJATMIプリミティブを実装するTuxAppContextオブジェクトを取得する必要があります。

サービス・クラスはTuxedoJavaServerから継承するため、サービスでgetTuxAppContext()を呼び出してコンテキスト・オブジェクトを取得します。ただし、tpsvrinit()ではTuxAppContextを取得できません。この時点でTuxAppContextは準備ができていないためです。tpsvrinit()TuxAppContextオブジェクトを取得しようとすると、tpsvrinit()が失敗して、例外がスローされます。

 


Tuxedo JavaアプリケーションのTJATMIプリミティブ

TJATMIは、サービスの呼出し、トランザクションの開始と終了、DataSourceへの接続の取得など、クライアントとサーバー間の通信を提供する一連のプリミティブです。

詳細は、Java Server Javadocを参照してください。

表2-2 TJATMIプリミティブ
名前
オペレーション
tpcall
要求/応答通信でOracle Tuxedoサービスの同期呼出しに使用する。
tpreturn
Tuxedo Javaサーバーで戻り値とデータを設定するために使用します。
tpbegin
トランザクションの開始に使用します。
tpcommit
現在のトランザクションをコミットするために使用します。
tpabort
現在のトランザクションを強制終了するために使用します。
tpgetlev
トランザクションが進行中かどうかをチェックするために使用します。
getConnection
構成したDataSourceへの接続を取得するために使用します。
userlog
ユーザー・ログをTuxedoユーザー・ログ・ファイルに出力するために使用します。

注: tpreturnが実行を終了した後も、サービスは実行し続けます。tpreturn()をサービスの最後の実行文として指定してください。

 


Tuxedo JavaアプリケーションのTypedBuffer

ATMI Javaサーバーは、Oracle Tuxedo型付きバッファに対応するOracle WebLogic Tuxedo Connector TypedBufferを再利用します。メッセージは、サーバーの型付きバッファに渡されます。ATMI Javaサーバーによって提供されるバッファ・タイプを表2-3に示します。

表2-3 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構造体を使用するとき、使用されるバッファ・タイプ。Oracle Tuxedoの等価タイプ: VIEW
TypedView32
VIEWに似たバッファ・タイプだが、より大きい文字フィールド、より多くのフィールド、およびより大きいバッファ全体に対して使用可能。Oracle Tuxedoの等価タイプ: VIEW32

TypedBufferの詳細は、weblogic.wtc.jatmiのパッケージを参照してください。

また、Javaサーバー・クラスでTypedFML/TypedFML32またはTypedView/TypedView32(あるいはその両方)を使用する場合は、「リファレンス」の「Oracle Tuxedo JavaサーバーでのFMLの使用」および「Oracle Tuxedo JavaサーバーでのVIEWの使用」の情報が役立ちます。

Typedbufferサポートの制限事項

 


サービス情報の取得または設定

TPSVCINFOクラスを使用して、Oracle Tuxedoクライアントによって送信されるサービス情報を取得または設定します。

表2-4 ゲッター関数
関数
説明
getServiceData
Oracle Tuxedoクライアントから送信されるサービス・データを返すために使用する。
getServiceFlags
Oracle Tuxedoクライアントから送信されるサービス・フラグを返すために使用する。
getServiceName
呼び出されたサービス名を返すために使用する。
getAppKey
アプリケーション認証クライアント・キーを取得するために使用されます。
getClientID
最初のクライアントのクライアントIDを取得するために使用されます。

TuxATMIReplyを使用して、サービス呼出しの返信データとメタデータを取得します。

表2-5 返信のゲッター関数
関数
説明
getReplyBuffer
サービスから返される型付きバッファ(nullの可能性あり)を返します。
gettpurcode
サービスから返されるtpurcodeを返します。

 


例外

tpcall()などのサービスでJATMIプリミティブによってスローされる例外を捕捉する必要があります。JATMIがスローする例外は2種類あります。

詳細は、Java Server Javadocを参照してください。

 


トレース

従来のTuxedo ATMIの場合と同じく、TMTRACE=atmi:ulogをエクスポートする必要もあります。TJATMI APIトレースは他のATMIトレースとしてULOGに書き込まれます。

 


Tuxedo 12cリリース2 (12.1.3)から新しく追加されたJava API

新しく追加されたJava API

Tuxedo 12cリリース2 (12.1.3)から、Tuxedo Javaサーバーにイベント、任意通知型メッセージ、/Q、非同期コール、ブロック時間制御、サーバー・サービス転送などの一連のJava APIが追加されました。新しく追加されたJava APIの詳細は、Javadocを参照してください。

注: tpappthrinit()およびtpappthrterm()以外のすべてのAPIは、TuxAppContextオブジェクトが正しく作成されて呼出し側から取得された場合にのみ呼び出す必要があります。

新しく追加されたJava APIのプログラミング例

Tuxedo Java APIのほとんどは、有効なTuxedoコンテキストで呼び出す必要があります。これらのAPIを呼び出す前に、有効なTuxedoコンテキストを取得する必要があります。

次の例では、Java APIでのプログラム方法を示します。

前述の例では、有効なTuxedoアプリケーション・コンテキストは、アプリケーションによって作成されたJavaサーバー・スレッドでTuxAppContextUtil.tpappthrinit() を呼び出すことで作成できます。TuxAppContextUtil.tpappthrinit()の呼出しに成功すると、TuxAppContextUtil.getTuxAppContext()メソッドを呼び出して有効なTuxedoアプリケーション・コンテキストを取得し、その後Tuxedo Java APIをコンテキストに呼び出すことができます。


  先頭に戻る       前  次