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

|
7.1.1 初期化
CORBAの初期化メソッドCORBA-ORB-INITを呼び出し初期化処理を行います。当メソッドの結果として、ORBのオブジェクトリファレンスが返されます。このオブジェクトリファレンスは、以降で呼び出すORBインタフェースを使用する場合に指定します。環境部(ENVIRONMENT DIVISION)およびデータ部(DATA DIVISION)を定義します。
IDENTIFICATION DIVISION.
PROGRAM-ID. "CLIENT-MAIN".
AUTHOR. OD/IDLCOMPILER VER.2.0.
INSTALLATION. IDL FILE NAME IS COBSAMPLE.IDL.
SECURITY. THIS SOURCE CODE WAS GENERATED BASE ON YOUR IDL FILE.
WHEN THIS STUB/SKELETON SOURCE CODE IS CHANGED, THE OPERATION.
GURANTEED IS NOT DONE.
DATE-WRITTEN. TUE MAY 6 11:03:40 1997
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
ARGUMENT-NUMBER IS ARG-C
ARGUMENT-VALUE IS ARG-V
SYMBOLIC CONSTANT
COPY SYMBOL-CONST IN CORBA.
.
*
DATA DIVISION.
*
WORKING-STORAGE SECTION.
COPY CONST IN CORBA.
01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY CURRENT-ARG-C.
01 CURRENT-ARG-V.
02 FILLER OCCURS 6.
03 CURRENT-ARG-V-VALUE USAGE POINTER.
01 COPY LONG IN CORBA REPLACING CORBA-LONG BY ARG-COUNT.
01 APLI-NAME PIC X(8) VALUE "simple_c".
01 TMP-STRING-BUF PIC X(20).
01 COPY ULONG IN CORBA REPLACING CORBA-UNSIGNED-LONG BY STRING-LENGTH.
01 TEMP-BUF USAGE POINTER.
01 MESS PIC X(30).
01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV.
01 COPY ORB IN CORBA REPLACING CORBA-ORB BY ORB.
01 COPY BOA IN CORBA REPLACING CORBA-BOA BY BOA.
*
PROCEDURE DIVISION.
*
MAIN.
* ObjectDirectorのObjectIDを設定
DISPLAY "CLIENT START!!".
* argument set : CURRENT-ARG-V-VALUE
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 > CURRENT-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
CURRENT-ARG-V-VALUE (ARG-COUNT)
STRING-LENGTH
TMP-STRING-BUF
END-PERFORM.
SET CURRENT-ARG-V-VALUE (ARG-COUNT) TO NULL.
* ObjectDirector初期化
MOVE 12 TO STRING-LENGTH.
CALL "CORBA-STRING-SET" USING
TEMP-BUF
STRING-LENGTH
FJ-OM-ORB-ID.
CALL "CORBA-ORB-INIT" USING
CURRENT-ARG-C
CURRENT-ARG-V
TEMP-BUF
ENV
ORB.
CALL "CORBA-FREE" USING TEMP-BUF.
MOVE "CORBA-ORB-INIT" TO MESS.
PERFORM ENV-CHECK
MOVE 15 TO STRING-LENGTH.
CALL "CORBA-STRING-SET" USING
TEMP-BUF
STRING-LENGTH
CORBA-BOA-OA-ID.
CALL "CORBA-ORB-BOA-INIT" USING
ORB
CURRENT-ARG-C
CURRENT-ARG-V
TEMP-BUF
ENV
BOA.
* ORBIDに格納した領域を解放する
CALL "CORBA-FREE" USING TEMP-BUF.
MOVE "CORBA-ORB-BOA-INIT" TO MESS.
PERFORM ENV-CHECK.
例外処理については、“クライアントアプリケーションの例外処理”を参照してください。
Copyright 2006 FUJITSU LIMITED