トランザクションアプリケーションをCORBAアプリケーションへ移行する場合の手順を説明します。

(1) APIの移行
トランザクションアプリケーションで使用している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アプリケーション未サポート機能を使用する場合、トランザクションアプリケーションを使用してください。
(2) インクルードファイルの修正
トランザクションアプリケーションでは、トランザクションアプリケーション用スケルトンのインクルードファイル(モジュール名_インタフェース名.h)をインクルードしていましたが、CORBAアプリケーションでは、CORBAアプリケーション用スケルトンのヘッダファイル(IDLファイル名.h)をインクルードするように修正します。
(3) mainロジックの追加
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(int argc,char **argv) |