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アプリケーションでは未サポート |
トランザクションアプリケーションAPI名 |
CORBAアプリケーションAPI名 |
備考 |
---|---|---|
TD::xxx_alloc() |
CORBA::xxx_alloc() |
|
TD::free() |
CORBA::free() |
|
TD::string_free() |
CORBA::string_free() |
|
TD::wstring_free() |
CORBA::wstring_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アプリケーションでは未サポート |
トランザクションアプリケーションAPI名 |
CORBAアプリケーションAPI名 |
備考 |
---|---|---|
TDXXXALLOC |
CORBA-XXX-ALLOC |
|
TDSTRINGSET |
CORBA-STRING-SET |
|
TDSTRINGGET |
CORBA-STRING-GET |
|
TDWSTRINGSET |
CORBA-WSTRING-SET |
|
TDWSTRINGGET |
CORBA-WSTRING-GET |
|
TDFREE |
CORBA-FREE |
|
TDGETSMONAME |
− |
CORBAアプリケーションでは未サポート |
TDGETCLIENTID |
− |
CORBAアプリケーションでは未サポート |
TDGETUSERINFORMATION |
− |
CORBAアプリケーションでは未サポート |
TDGETSESSIONID |
− |
CORBAアプリケーションでは未サポート |
TDSETCONTCVT |
− |
CORBAアプリケーションでは未サポート |
TDREFSESSIONID |
− |
CORBAアプリケーションでは未サポート |
TDFREESEQUENCEBUF |
CORBA-FREE |
|
TDSEQUENCEELEMENTGET |
CORBA-SEQUENCE-ELEMENT-GET |
|
TDSEQUENCEELEMENTSET |
CORBA-SEQUENCE-ELEMENT-SET |
|
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(); } |
目次
索引
![]() ![]() |