サーバアプリケーションの初期化が完了すると、ORBに対してその旨を通知します。ORBは、この命令が発行された時点で、クライアントからの要求をサーバアプリケーションに伝えます。活性化の方法は、サーバのタイプにより以下のように異なります。
サーバのタイプ | メソッド |
---|---|
shared server | CORBA-BOA-IMPL-IS-READY |
unshared server | CORBA-BOA-OBJ-IS-READY |
persistent server | CORBA-BOA-IMPL-IS-READY |
(1)インプリメンテーションリポジトリのオブジェクトリファレンスの獲得
CORBA-ORB-RESOLVE-INITIAL-REFERENCESメソッドを使用して、インプリメンテーションリポジトリのオブジェクトリファレンスを獲得します。パラメタには、CORBA-ORB-OBJECTID-IMPLREPを指定します。
(2)IMPLEMENTATIONDEFオブジェクトのオブジェクトリファレンスの検索
FJ-IMPLEMENTATIONREP-LOOKUP-IDを使用して、IMPLEMENTATIONDEFオブジェクトのオブジェクトリファレンスを求めます。パラメタには、サーバアプリケーションのIMPLEMENTATIONDEFオブジェクトを指定します。
(3)サーバの活性化
CORBA-BOA-IMPL-IS-READY/CORBA-BOA-OBJ-IS-READYを使用して、サーバの活性化を行います。
注意
メソッドの復帰後は、初期化時にオープンしたファイルのクローズ処理/領域の解放処理などの非活性化処理を行う必要があります。詳細については、“6.2.4 サーバの非活性化”を参照してください。
注意
以下の条件のとき、CORBA-BOA-IMPL-IS-READY/CORBA-BOA-OBJ-IS-READYが復帰せずにサーバアプリケーションが終了します。
サーバアプリケーションをプロセスモードで作成している場合 かつ
サーバアプリケーションをCORBAワークユニット運用している場合 かつ
CORBAワークユニットを停止した場合
CORBA-BOA-IMPL-IS-READY/CORBA-BOA-OBJ-IS-READYの後に後処理を行う場合は、サーバアプリケーションをスレッドモードで作成するか、またはワークユニットの出口機能を利用してください。ワークユニットの出口機能に関しては、“OLTPサーバ運用ガイド”の“ワークユニットの出口機能”を参照してください。
* インプリメンテーション情報のオブジェクトリファレンス検索 MOVE FUNCTION LENG (CORBA-ORB-OBJECTID-IMPLREP) TO STRING-LENGTH. CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH CORBA-ORB-OBJECTID-IMPLREP. CALL "CORBA-ORB-RESOLVE-INITIAL-REFERENCES" USING ORB TEMP-BUF ENV IMPL-REP. CALL "CORBA-FREE" USING TEMP-BUF. MOVE "CORBA-ORB-RESOLVE-INITIAL-REFERENCES-2" TO MESS. PERFORM ENV-CHECK * ImplementationRepオブジェクトリファレンス検索 MOVE FUNCTION LENG (IMPL-INTF-A) TO STRING-LENGTH. CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH IMPL-INTF-A. CALL "FJ-IMPLEMENTATIONREP-LOOKUP-ID" USING IMPL-REP TEMP-BUF ENV IMPL. CALL "CORBA-FREE" USING TEMP-BUF. MOVE "FJ-IMPLEMENTATIONREP-LOOKUP-ID" TO MESS. PERFORM ENV-CHECK * サーバの活性化 CALL "CORBA-BOA-IMPL-IS-READY" USING BOA IMPL ENV. MOVE "CORBA-BOA-IMPL-IS-READY" TO MESS. PERFORM ENV-CHECK.