Apdesigner プログラマーズガイド
|
目次
索引
|
8.2.2 ビジネスメソッドを実装する
CORBAサーバアプリケーション生成ウィザードで生成したビジネスメソッドクラスのひな型ソースに、メソッドの実装処理を記述してください。メインプログラムやサーバアプリケーション登録プログラムはそのまま使用可能です。
詳細は、"Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)"を参照してください。
ここでは、「加算プログラム」をCORBAサーバアプリケーション生成ウィザードで定義した例を示します。
++加算プログラムのIDLファイル
// モジュール宣言
module SAMPLE {
// ユーザインタフェース宣言
interface CALCULATE_ADD {
long CALCULATE(in long param1,
in long param2);
};
};
++加算プログラムのメインプログラム
IDENTIFICATION DIVISION.
PROGRAM-ID. CALCULATE_ADD.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
COPY CORBA--REP.
COPY USCALCULATE_ADD--REP.
.
SPECIAL-NAMES.
SYMBOLIC CONSTANT
COPY CORBA--CONST.
.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CORBA--COPY.
COPY USCALCULATE_ADD--COPY.
01 API-NAME PIC X(50).
01 APL-NAME PIC X(64) VALUE "CALCULATE_ADD".
01 ORB USAGE OBJECT REFERENCE CORBA-ORB.
01 BOA USAGE OBJECT REFERENCE CORBA-BOA.
01 IMPL-REP USAGE OBJECT REFERENCE FJ-IMPLEMENTATIONREP.
01 IMPL USAGE OBJECT REFERENCE CORBA-IMPLEMENTATIONDEF.
01 REP-ID PIC X(128) VALUE "IDL:SAMPLE/CALCULATE_ADD:1.0".
01 OBJ USAGE OBJECT REFERENCE CORBA-OBJECT.
01 EXCEPT-ID USAGE OBJECT REFERENCE CORBA-STRING.
01 EXCEPT-ID-VALUE PIC X(50).
LINKAGE SECTION.
PROCEDURE DIVISION
.
*
* ORBの初期化
*
INVOKE CORBA "ORB_INIT" USING APL-NAME FJ-OM_ORBID RETURNING ORB.
*
* BOAの初期化
*
INVOKE ORB "BOA_INIT" USING APL-NAME CORBA-BOA_OAID RETURNING BOA.
*
* インプリメンテーションリポジトリオブジェクトの取得
*
INVOKE ORB "RESOLVE_INITIAL_REFERENCES" USING CORBA-OBJECTID_IMPLEMENTAT-001 RETURNING OBJ.
INVOKE FJ-IMPLEMENTATIONREP "NARROW" USING OBJ RETURNING IMPL-REP.
*
* インプリメンテーション情報の取得
*
INVOKE IMPL-REP "LOOKUP_ID" USING REP-ID RETURNING OBJ.
INVOKE CORBA-IMPLEMENTATIONDEF "NARROW" USING OBJ RETURNING IMPL.
*
SET OBJ TO NULL.
*
* サーバーの活性化をODに通知する
*
MOVE "CORBA::BOA::IMPL_IS_READY" TO API-NAME.
INVOKE BOA "IMPL_IS_READY" USING IMPL.
*
STOP RUN.
END PROGRAM CALCULATE_ADD.
++加算プログラムのサーバアプリケーション登録プログラム
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE-CALCULATE_ADD--INIT.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
CLASS SAMPLE-CALCULATE_ADD
CLASS SAMPLE-CALCULATE_ADD-IMPL
.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 RET USAGE OBJECT REFERENCE SAMPLE-CALCULATE_ADD.
PROCEDURE DIVISION
RETURNING RET
.
INVOKE SAMPLE-CALCULATE_ADD-impl "new" RETURNING RET.
EXIT PROGRAM.
END PROGRAM SAMPLE-CALCULATE_ADD--INIT.
++加算プログラムのビジネスメソッドクラス
CLASS-ID. SAMPLE-CALCULATE_ADD-IMPL AS "SAMPLE-CALCULATE_ADD-IMPL" INHERITS
SAMPLE-CALCULATE_ADD
.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
REPOSITORY.
COPY CORBA--REP.
COPY USCALCULATE_ADD--REP.
.
SPECIAL-NAMES.
SYMBOLIC CONSTANT
COPY CORBA--CONST.
.
OBJECT.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CORBA--COPY.
COPY USCALCULATE_ADD--COPY.
PROCEDURE DIVISION
.
METHOD-ID. CALCULATE AS "CALCULATE" OVERRIDE.
* <IDL-INFO-START>
* long CALCULATE(in long param1,in long param2)
* <IDL-INFO-END>
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 復帰値 PIC S9(9) COMP-5.
01 PARAM1 PIC S9(9) COMP-5.
01 PARAM2 PIC S9(9) COMP-5.
PROCEDURE DIVISION
USING
PARAM1
PARAM2
RETURNING 復帰値
.
COMPUTE 復帰値 = PARAM1 + PARAM2.
END METHOD CALCULATE.
END OBJECT.
END CLASS SAMPLE-CALCULATE_ADD-IMPL.
All Rights Reserved, Copyright (C) 富士通株式会社 1998-2006