| 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();
} |
目次
索引
![]()
|