| Interstage Application Server アプリケーション作成ガイド (データベース連携サービス編) |
目次
索引
![]()
|
| 第4章 サーバアプリケーションの開発(CORBAアプリケーション/C言語) |
利用者が使用する初期化処理部、ユーザサービス処理部についての基本形を以下に示します。
main(argc,argv)
int argc;
char *argv[];
{
:
static CORBA_ORB orb;
static CORBA_BOA boa;
static CORBA_ImplementationDef impl;
static FJ_ImplementationRep impl_rep;
static CORBA_Environment env;
CORBA_Object OTSobj;
Int current_argc = argc;
:
/* CORBAサービスの初期化 */
orb = CORBA_ORB_init(¤t_argc, argv, FJ_OM_ORBid, &env); …(1)
boa = CORBA_ORB_BOA_init(orb, ¤t_argc, argv, CORBA_BOA_OAid, &env);
/* インプリメンテーションリポジトリのOR取得 */
impl_rep = CORBA_ORB_resolve_initial_references(
orb, CORBA_ORB_ObjectId_ImplementationRepository,&env);
impl = FJ_ImplementationRep_lookup_id(impl_rep, _IMPL_mod_intf, &env);
...
/* サーバがデータベースをアクセスするための初期化 */
OTSobj = CORBA_ORB_resolve_initial_references(orb,
CORBA_ORB_ObjectId_TransactionServerInit, &env);
OTS_init(OTSobj, orb, _IMPL_mod_intf, &env); …(2)
/* リクエスト受信可能であることをCORBAサービスへ通知 */
CORBA_BOA_impl_is_ready(boa, impl, &env); …(3)
/* サーバがデータベースをアクセスするための終了処理 */
OTS_term(OTSobj, &env); …(4)
} |
CORBAサービスを初期化するために以下のメソッドを使用します。
サーバがデータベースをアクセスするための初期化を行います。
OTS_initメソッドのパラメタにはサーバアプリケーションのインプリメンテーションリポジトリIDを指定します。
OTS_initメソッドはデータベースへのコネクションをオープンします。
リクエスト受信可能であることをCORBAサービスへ通知します。

アプリケーションの登録時には、インプリメンテーション情報定義ファイルのmodeにSYNC_ENDを指定する必要があります。SYNC_ENDを指定することによって、アプリケーションが非活性化された場合やアプリケーション停止時まで復帰しないようになります。
サーバがデータベースをアクセスするための終了処理を行います。OTS_termメソッドはデータベースへのコネクションをクローズします。
ユーザサービス処理部には、データベースへの処理を記述します。また、このユーザサービス処理部のインタフェースは、ユーザがIDL定義を行う必要があります。ユーザサービス処理部の記述例を以下に示します。
mod_intf_methodA(mod_intf obj, CORBA_long account1, CORBA_long *account2,
CORBA_Environment *env)
{
/* ユーザの操作 */
SQL データベースへのアクセス
.................
} |
また、IDLファイルの定義例を以下に示します。
module mod {
interface intf {
void methodA(in long account1,
out long account2);
};
}; |
サーバアプリケーションが異常を検出した場合
サーバアプリケーションが以下のようなエラーを検出した場合、エラーをクライアントアプリケーションに通知する必要があります。
エラーが通知されたクライアントアプリケーションでは、rollbackを発行してトランザクションを終了させてください。
目次
索引
![]()
|