Interstage Application Server OLTPサーバ運用ガイド
目次 索引 前ページ次ページ

第4章 各アプリケーションのワークユニット運用

4.1 CORBAワークユニットの運用

 CORBAワークユニット(CORBAアプリケションのワークユニット)を動作させるための、環境作成と運用手順について説明します。

ワークユニットを使用する場合、CORBAアプリケーション環境設定フェーズと、ワークユニットでの運用フェーズの作業が必要になります。

1〜5はCORBAアプリケーション環境設定フェーズです。1〜5の作業は従来のCORBAアプリケーションを単体で動作させる場合と同様です。

ワークユニットおよびワークユニット配下で動作するCORBAアプリケーションの情報については、9〜11の作業を行ってください。


 CORBAアプリケーションの開発(プログラミング、IDLコンパイラ等)については、“アプリケーション作成ガイド(CORBAサービス編)”、および“リファレンスマニュアル(コマンド編)”を参照してください。

(1)アプリケーションの開発

 ワークユニット配下で動作させるCORBAアプリケーションプログラムの作成を行います。プログラミング方法については、ワークユニット配下外で動作させる場合と同様です。

(2)IDLコンパイラ(IDLcコマンド)によるコンパイル

IDL定義を作成し、IDLcコマンドにより、インタフェースリポジトリの登録、スケルトンの出力を行います。IDL定義については、ワークユニット配下外で動作させる場合と同様です。

(3)CORBAサーバアプリケーションの作成

 作成したCORBAアプリケーションプログラムとIDLcコマンドにより作成したスケルトンよりCORBAサーバアプリケーション(実行モジュール)を作成します。CORBAサーバアプリケーションの作成方法については、ワークユニット配下外で動作させる場合と同様です。


 CORBAワークユニットで動作モードとして"SYNC_END"を使用する場合、CORBA_BOA_impl_is_readyから復帰した場合、必ずプロセスを終了する必要があります。ワークユニットの通常停止および同期停止を行った場合、"SYNC_END"であった場合、CORBA_BOA_impl_is_readyから復帰しますが、プロセスを終了するまではワークユニットの停止は待ち状態となります。そのため、必ずCORBA_BOA_impl_is_readyから復帰した場合はプロセスを終了する必要があります。

(4)インプリメンテーションリポジトリ定義へのサーバアプリケーションの情報登録

ワークユニットで動作させるCORBAアプリケーションの情報を設定します。

基本的にはワークユニット配下外で動作させる場合と同様です。ワークユニット上で動作させる場合は、定義情報の注意事項を以下に示します。

サーバアプリケーションの起動タイプ(type)

ワークユニット配下で動作させる場合、サーバアプリケーションの起動タイプは"persistentサーバ"タイプを設定する必要があります。

プロセス最大多重度(proc_conc_max)

ワークユニット定義で設定したプロセス多重度よりも大きい値を設定する必要があります。ワークユニット定義で設定したプロセス多重度よりも小さい値を設定していた場合、ワークユニットの起動に失敗しますので、注意してください。


 インプリメンテーションリポジトリ定義へのサーバアプリケーションの情報登録については、“リファレンスマニュアル(コマンド編)”を参照してください。

(5)オブジェクトリファレンスの生成

 作成したサーバアプリケーションを他のアプリケーションからオブジェクトとしてアクセスできるようにするために、そのオブジェクトを識別するためのオブジェクトリファレンスを作成します。同時に作成したオブジェクトリファレンスをネーミングサービスに登録します。
 基本的にはワークユニット配下外で動作させる場合と同様です。

(6)ワークユニット定義の作成/登録

CORBAアプリケーションをワークユニットで動作させるため、ワークユニット定義の作成・登録を行います。

(7)ワークユニットの起動

ワークユニット定義で設定したCORBAワークユニットの起動を行います。起動はisstartwuコマンドでワークユニット名を指定して行います。

ワークユニットの起動については、コマンド以外に、Interstage運用API、Interstage運用操作ツールおよびSystemwalker OperationMGRより行うことが可能です。


ワークユニットで運用中はワークユニット定義に設定した、CORBAアプリケーションの実行モジュールの削除、上書きを行わないでください。行った場合、CORBAアプリケーション処理や該当ワークユニットの運用操作がハングアップすることがあります。

(8)ワークユニットの停止

起動中のワークユニットの停止を行います。

 通常停止する場合は、通常停止、同期停止を使用します。緊急に停止したい場合には強制停止を使用します。

[通常停止]

通常停止は、該当ワークユニットに定義されているすべてのアプリケーションが処理中でない場合に限りワークユニットを停止します。ワークユニットが業務処理中の場合、ワークユニットは停止できません。この場合、アプリケーションの処理の完了を待ってから、再度このコマンドを実行してください。


 CORBAアプリケーションの動作モードが"SYNC_END"である場合、ワークユニット通常停止を行った場合、アプリケーション上の動作として、CORBA_BOA_impl_is_readyが復帰します。この場合、アプリケーションの処理として必ずプロセスを終了する必要があります。プロセスを終了せずに待ち状態とした場合、ワークユニットの通常停止がハングアップ状態となりますので、注意してください。その強制停止コマンドで、強制的にワークユニットを停止してください。

[同期停止]

同期停止は、コマンド実行時に処理中の要求を実行した後、ワークユニットを停止します。待ち状態となっている要求については、破棄(クライアントにエラー)されます。


 同期停止の場合、処理中の要求が完了した後、停止します。そのため、処理中のアプリケーションが完了しない場合、ワークユニット停止がハングアップすることになります。その場合、強制停止コマンドで、強制的にワークユニットを停止してください。

 CORBAアプリケーションの動作モードが"SYNC_END"である場合、ワークユニット通常停止を行った場合、アプリケーション上の動作として、CORBA_BOA_impl_is_readyが復帰します。この場合、アプリケーションの処理として必ずプロセスを終了する必要があります。プロセスを終了せずに待ち状態とした場合、ワークユニットの通常停止がハングアップ状態となりますので、注意してください。その強制停止コマンドで、強制的にワークユニットを停止してください。

[強制停止]

強制停止はアプリケーションが処理中の場合でも、強制的に停止を行います。処理中のアプリケーションについては、処理中に強制的に停止され、待ち状態となっている要求に対しては破棄(クライアントにエラー)されます。

強制停止については、ワークユニット運用中以外の以下の状態時でも強制停止コマンドを実行することで、強制的に停止が可能です。

ワークユニットの停止については、コマンド(isstopwu)、Interstage運用API、Interstage運用操作ツールおよびSystemwalker OperationMGRより行うことが可能です。


下へ4.1.1 CORBAワークユニット定義
下へ4.1.2 CORBAアプリケーションのキュー制御
下へ4.1.3 グローバルトランザクション連携を行う場合

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

Copyright 2003 FUJITSU LIMITED