名前
CORBA-ORB-INIT
形式
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. ARGUMENT-NUMBER IS ARG-C ARGUMENT-VALUE IS ARG-V. DATA DIVISION. WORKING-STORAGE SECTION. COPY CONST IN CORBA. 01 ORB-IDENTIFIER USAGE POINTER. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 COPY ORB IN CORBA REPLACING CORBA-ORB BY ORB 01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY C-ARG-C. 01 C-ARG-V. 02 FILLER OCCURS n. 03 C-ARG-V-VALUE USAGE POINTER. 01 APLI-NAME PIC X(m) VALUE "アプリケーション名". PROCEDURE DIVISION. CALL "CORBA-ORB-INIT" USING C-ARG-C C-ARG-V ORB-IDENTIFIER ENV ORB.
機能説明
ORBを初期化し、ORBのオブジェクトリファレンスを返します。本関数を発行することにより、以降の節に記述する各関数を使用できます。返されたオブジェクトリファレンスは、他のORBインタフェースを呼び出す場合のパラメタに使用します。COBOLの場合に他言語とインタフェースの整合性をとるため、C-ARG-CおよびC-ARG-Vには、プログラムに渡されるARG-CおよびARG-Vを以下のように加工して渡す必要があります。
* パラメタ数の設定 ACCEPT CURRENT-ARG-C FROM ARG-C. COMPUTE CURRENT-ARG-C = CURRENT-ARG-C + 1. * パラメタの取り出しと設定 PERFORM VARYING ARG-COUNT FROM 1 BY 1 UNTIL ARG-COUNT > C-ARG-C IF ARG-COUNT = 1 MOVE APLI-NAME TO TMP-STRING-BUF ELSE ACCEPT TMP-STRING-BUF FROM ARG-V END-IF MOVE FUNCTION LENG (TMP-STRING-BUF) TO STRING-LENGTH CALL "CORBA-STRING-SET" USING C-ARG-V-VALUE (ARG-COUNT) STRING-LENGTH TMP-STRING-BUF END-PERFORM. SET C-ARG-V-VALUE (ARG-COUNT) TO NULL.
CORBA-ORB-RESOLVE-INITIAL-REFERENCES関数によってクライアント固有のイニシャルサービスのオブジェクトリファレンスを獲得したい場合、“アプリケーション作成ガイド(CORBAサービス編)”の“ネーミングサービスのイニシャルリファレンスの獲得”にしたがってARG-C, ARG-Vに値を設定する必要があります。
また、ORB-IDENTIFIERはORBを識別するための名前として、FJ-OM-ORBIDを指定します。
復帰値
正常終了した場合は、ORBのオブジェクトリファレンスが設定されます。
異常終了した場合は、ENV構造体のMAJORにはCORBA-SYSTEM-EXCEPTIONが設定され、IDとMINORに詳細情報が設定されます。
IDとMINORの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
注意事項
本関数は、1プロセスで2回以上呼び出さないでください。
備考
形式中のn,mの意味は以下のとおりです。
n: 起動パラメタの数
m:プログラム名の長さ
sharedサーバ、またはunsharedサーバの場合、サーバアプリケーションの起動パラメタ(OD_impl_instコマンドの-axオプションで指定する定義ファイル内のparamで定義される)は、C-ARG-Vに以下のORBの制御パラメタに続いて設定されます。
第1パラメタ "-ORB_FJ_PROC_ID" 第2パラメタ プロセス番号 第3パラメタ "-ORB_FJ_HOME_DIR" 第4パラメタ $OD_HOMEの設定値