Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第3章 CORBAワークユニット | > 3.2 旧バージョンのアプリケーションからの移行方法 |
トランザクションアプリケーションをCORBAアプリケーションへ移行する場合の手順を説明します。
トランザクションアプリケーションで使用しているAPIを、CORBAアプリケーション用のAPIに変更します。
トランザクションアプリケーションとCORBAアプリケーションのAPI対比表を以下に示します。
トランザクションアプリケーションAPI名 |
CORBAアプリケーションAPI名 |
備考 |
---|---|---|
TD_xxx_alloc() |
CORBA_xxx_alloc() |
|
TD_free() |
CORBA_free() |
|
TD_get_smo_name() |
− |
CORBAアプリケーションでは未サポート |
TD_get_client_id() |
− |
CORBAアプリケーションでは未サポート |
TD_get_user_information() |
− |
CORBAアプリケーションでは未サポート |
TD_getsessionid() |
− |
CORBAアプリケーションでは未サポート |
TD_setcontcvt() |
− |
CORBAアプリケーションでは未サポート |
TD_refsessionid() |
− |
CORBAアプリケーションでは未サポート |
CORBAアプリケーション未サポート機能を使用する場合、トランザクションアプリケーションを使用してください。
トランザクションアプリケーションでは、トランザクションアプリケーション用スケルトンのインクルードファイル(モジュール名_インタフェース名.h)をインクルードしていましたが、CORBAアプリケーションでは、CORBAアプリケーション用スケルトンのヘッダファイル(IDLファイル名.h)をインクルードするように修正します。
CORBAアプリケーションでは、main関数を持つ実行モジュールを作成する必要があります。
そのため、main関数を作成し、CORBAアプリケーションの初期化処理を行う必要があります。
トランザクションアプリケーションからCORBAアプリケーションに移行するためのアプリケーションソースの修正例を、IDL定義例とともに以下に示します。
module MOD { interface INTF { long OPE(in string para1); }; }; |
#include "orb.h" #include"MOD_INTF.h" CORBA_long MOD_INTF_OPE(CORBA_string para1) { CORBA_long ret = 0; if (strcmp(para1,"test") == 0) { ret = 0; } else { ret = 1; } TD_free(para1); return ret; } |
上記トランザクションアプリケーションをCORBAアプリケーションに移行する場合には、下線部分を変更します。
#include "orb.h" #include "test.h" CORBA_long MOD_INTF_OPE(CORBA_string para1) { CORBA_long ret = 0; if (strcmp(para1,"test") == 0) { ret = 0; } else { ret = 1; } CORBA_free(para1); return ret; } void main(argc,char **argv) { int current_argc = argc; orb = CORBA_ORB_init(....); boa = CORBA_ORB_BOA_init(....); impl_ret = CORBA_ORB_resolve_initial_references(....); impl = FJ_Implementation_lookup_id(....); intf = CORBA_Repository_lookup_id(....); CORBA_BOA_impl_is_ready(....); exit(); } |
目次
索引
![]() ![]() |