サーバアプリケーションの初期化が完了すると、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 サーバの非活性化”を参照)が必要です。
* インプリメンテーション情報のオブジェクトリファレンス検索
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.