Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第3章 CORBAワークユニット> 3.2 旧バージョンのアプリケーションからの移行方法

3.2.1 トランザクションアプリケーションからCORBAアプリケーションへ移行

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

(1) APIの移行

 トランザクションアプリケーションで使用しているAPIを、CORBAアプリケーション用のAPIに変更します。

 トランザクションアプリケーションとCORBAアプリケーションの、各言語のAPI対比表を以下に示します。

API対比表(C言語)

トランザクションアプリケーション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対比表(C++言語)

トランザクションアプリケーション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対比表(COBOL)

トランザクションアプリケーション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定義例とともに以下に示します。

■IDL定義(test.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アプリケーションへのソース修正例

 上記トランザクションアプリケーションを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();
}

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005