Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
|
目次
索引

|
7.2.1 初期化
CORBAの初期化メソッドCORBA-ORB_INITを呼び出し初期化処理を行います。当メソッドの結果として、ORBのオブジェクトリファレンスが返されます。このオブジェクトリファレンスは、以降で呼び出すORBインタフェースを使用する場合に指定します。環境部(ENVIRONMENT DIVISION)およびデータ部(DATA DIVISION)を定義します。
ここでは、IDLファイル名を"simple.idl"として説明します。IDLコンパイラが出力する登録集ファイル名は、"simple--rep.cbl", "simple--const.cbl","simple--copy.cbl"となります。
IDENTIFICATION DIVISION.
PROGRAM-ID. "SIMPLE_C"
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
* ObjectDirectorの標準登録集(リポジトリ宣言用)
COPY CORBA--REP.
* ネーミングサービスの標準登録集(リポジトリ宣言用)
COPY COSNAMING--REP.
* インタフェースリポジトリの標準登録集(リポジトリ宣言用)
COPY INTERFACEREP--REP.
* IDLコンパイラが出力した登録集(リポジトリ宣言用)
COPY SIMPLE--REP.
.
SPECIAL-NAMES.
SYMBOLIC CONSTANT
* ObjectDirectorの標準登録集(定数宣言用)
COPY CORBA--CONST.
* ネーミングサービスの標準登録集(定数宣言用)
COPY COSNAMING--CONST.
* インタフェースリポジトリの標準登録集(定数宣言用)
COPY INTERFACEREP--CONST.
* IDLコンパイラが出力した登録集(定数宣言用)
COPY SIMPLE--CONST.
.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
* ObjectDirectorの標準登録集(データ型宣言用)
COPY CORBA--COPY.
* ネーミングサービスの標準登録集(データ型宣言用)
COPY COSNAMING--COPY.
* インタフェースリポジトリの標準登録集(データ型宣言用)
COPY INTERFACEREP--COPY.
* IDLコンパイラが出力した登録集(データ型宣言用)
COPY SIMPLE--COPY.
*
01 ORB OBJECT REFERENCE CORBA-ORB.
01 OBJ OBJECT REFERENCE CORBA-OBJECT.
01 NAMING-CONTEXT OBJECT REFERENCE COSNAMING-NAMINGCONTEXT.
01 NAME TYPE COSNAMING-NAME.
01 NAME-COMPONENT OBJECT REFERENCE COSNAMING-NAMECOMPONENT.
01 NAME-ID OBJECT REFERENCE CORBA-STRING.
01 NAME-KIND OBJECT REFERENCE CORBA-STRING.
01 NAME-LEN TYPE CORBA-UNSIGNED-LONG.
01 NAME-ID-VALUE PIC X(18) VALUE "ODdemo::calculator".
01 APL-NAME PIC X(8) VALUE "Simple_c".
01 NAME-KIND-VALUE PIC X(1) VALUE SPACE.
01 TARGET OBJECT REFERENCE CORBA-OBJECT.
* インタフェースリポジトリに使用するパラメタ
01 IR-PARAM.
03 INTF-OBJ OBJECT REFERENCE CORBA-OBJECT.
03 INTF OBJECT REFERENCE CORBA-INTERFACEDEF.
03 CTD-SEQ OBJECT REFERENCE SEQUENCE-CORBA-CONTAINED.
03 TMP-CTD OBJECT REFERENCE CORBA-CONTAINED.
03 CTD-DES OBJECT REFERENCE CORBA-CONTAINED-DESCRIPTION.
03 DK-TYPE TYPE CORBA-DEFINITIONKIND.
03 OPE-ANY OBJECT REFERENCE CORBA-ANY.
03 OPE-DES OBJECT REFERENCE CORBA-OPERATIONDESCRIPTION.
03 PARA-SEQ TYPE CORBA-PARDESCRIPTIONSEQ.
03 PARAM-COUNT TYPE CORBA-LONG.
03 PARA-DES1 OBJECT REFERENCE CORBA-PARAMETERDESCRIPTION.
03 PARA-DES2 OBJECT REFERENCE CORBA-PARAMETERDESCRIPTION.
03 STR-1 OBJECT REFERENCE CORBA-STRING.
03 NAME1 PIC X(40).
03 STR-2 OBJECT REFERENCE CORBA-STRING.
03 NAME2 PIC X(40).
* リクエスト作成のパラメタ
01 REQUEST-PARAM.
03 REQ OBJECT REFERENCE CORBA-REQUEST.
03 RESULT-TYPE OBJECT REFERENCE CORBA-TYPECODE.
03 NVLIST OBJECT REFERENCE CORBA-NVLIST.
03 EXCEPTIONLIST OBJECT REFERENCE CORBA-EXCEPTIONLIST.
03 TMP-EXCEP TYPE CORBA-EXCDESCRIPTIONSEQ.
03 EX-DES OBJECT REFERENCE CORBA-EXCEPTIONDESCRIPTION.
03 EX-TYPE OBJECT REFERENCE CORBA-TYPECODE.
03 NAMEDVALUE OBJECT REFERENCE CORBA-NAMEDVALUE.
03 TMP-NAMEDVALUE OBJECT REFERENCE CORBA-NAMEDVALUE.
03 FLG TYPE CORBA-FLAGS.
03 ANY-A OBJECT REFERENCE CORBA-ANY.
03 ANY-B OBJECT REFERENCE CORBA-ANY.
03 ANY-RESULT OBJECT REFERENCE CORBA-ANY.
* 例外パラメタ
01 EXCEPTION-PARAM.
03 EXCEPTION-ID OBJECT REFERENCE CORBA-STRING.
03 EXCEPTION-ID-VALUE PIC X(50).
03 API-NAME PIC X(50).
03 TMP-ENV OBJECT REFERENCE CORBA-ENVIRONMENT.
03 ANY-EXC OBJECT REFERENCE CORBA-ANY.
03 EXCEP OBJECT REFERENCE CORBA-EXCEPTION.
03 EXC-STR OBJECT REFERENCE CORBA-STRING.
03 EXCEP-ID PIC X(40).
* 復帰値
01 CALCULATE-RESULT TYPE ODDEMO-CALCULATOR-RESULT.
*
PROCEDURE DIVISION.
*
DECLARATIVES.
ERR SECTION.
USE EXCEPTION CORBA-EXCEPTION.
SET EXCEPTION-ID TO IDL-ID OF EXCEPTION-OBJECT AS CORBA-EXCEPTION.
INVOKE EXCEPTION-ID "GET-VALUE" RETURNING EXCEPTION-ID-VALUE.
DISPLAY API-NAME " is failed.".
DISPLAY "Exception-id is " EXCEPTION-ID-VALUE.
EXIT PROGRAM.
END-ERR.
END DECLARATIVES.
*
INVOKE CORBA "ORB_INIT" USING APL-NAME FJ-OM_ORBID RETURNING ORB.
例外処理については、“クライアントアプリケーションの例外処理”を参照してください。
Copyright 2005 FUJITSU LIMITED