|
Oracle TuxedoサービスはPure Java言語を使用して開発できます。Java言語で実装されるサービスは、他のTuxedoサービスと同様に機能します。Tuxedo Javaサーバー(TMJAVASVR)によって通知されるサービスを、ATMIインタフェースを使用してクライアントまたはTuxedoサーバーから呼び出すことができます。同様に、Tuxedoサーバーによって通知されるサービスを、TJATMIインタフェースを使用してjava実装サービスから呼び出すことができます。
さらに、java実装サービスは、ネイティブ・クライアント、/WSクライアント、Joltクライアントなど、あらゆる種類のTuxedoクライアントから呼び出すことができます。
Tuxedoサービスを実装するために、TJATMIインタフェース、JATMI TypedBuffer、POLO javaオブジェクトなど、様々な主要Javaテクノロジの使用がサポートされます。
次のガイドラインは、Javaサービス開発の基本的な手順です。
TuxedoJavaServerクラスを継承し、デフォルトのコンストラクタを有している必要があります。 TPSVCINFOインタフェースのみを使用する必要があります。また、publicとして宣言する必要があります。tpsvrinit()メソッドを実装する必要があります。tpsvrdone()メソッドを実装する必要があります。tpcall、tpbeginなど)を使用できる状態にある必要があります。tpreturnを使用してクライアントに結果を返したり、例外をスローして終了できる状態にある必要があります。
プログラミング環境の詳細は、UBBCONFIGにおける構成に関する項を参照してください。
メソッドの動作は、Tuxedo 12cリリース2 (12.1.3)とTuxedo 12cリリース1 (12.1.1)で異なります。
Javaサーバーでサポートしている初期化メソッドおよび終了メソッドは、tpsvrinit()、tpsvrinit(String [])、tpsvrdone()、tpsvrthrinit()、tpsvrthrinit(String [])およびtpsvrthrdone()です。
| 注: | tpsvrinit()およびtpsvrdone()は必須です。他の4つのメソッドはオプションです。 |
アプリケーション・サーバー・クラスのロード時に、Javaサーバーはこれらすべての初期化メソッドおよび終了メソッドを検索し、次の規則に従って対応する初期化メソッドを呼び出します。
Javaサーバーは、インスタンス化およびアクティブ化時に対応するスレッド・レベルの初期化メソッドを呼び出します(ユーザー・サーバー・クラスの下に実装されている場合)。呼出し規則は次のとおりです。
サーバーのディスパッチ・スレッドの非アクティブ化時に、tpsvrthrdone()メソッドが呼び出されます(サーバー・クラスに実装されている場合)。
tpsvrthrinit()およびtpsvrthrdone()は、Javaサーバーがシングル・スレッド・モードで実行されている場合は呼び出されません。
| 注: | ユーザーは、初期化メソッドおよび終了メソッドでJava APIを呼び出すことができます。 |
ユーザーは、tpsvrinit()メソッドを実装する必要があります。tpsvrinit()はサーバーの起動時に呼び出されるため、このメソッドにクラス範囲の初期化を設定することをお薦めします。あるクラスのtpsvrinit()が失敗した場合、警告メッセージがユーザー・ログに報告され、Javaサーバーは実行を続けます。
ユーザーは、tpsvrdone()メソッドを実装する必要があります。tpsvrdone()はサーバーの停止時に呼び出されるため、このメソッドにクラス範囲のクリーンアップ処理を設定することをお薦めします。
Javaサービスのtpreturn()は、Javaサービス・メソッドの実行をすぐには中断しませんが、Tuxedo Javaサーバーに結果を返します。
Javaサービスにおけるtpreturn()の動作と、既存のTuxedoシステムにおけるtpreturn()の動作の違いを次に示します。
| 注: | Javaサービスで、先行するtpreturn()文なしでJavaのreturn文を使用することはお薦めしません。そうすると、Javaサーバーは対応するクライアントにrcode設定0を指定したTPFAILを返します。 |
|