WebOTX Manual V11.1 (第6版) 目次を表示 |
WebOTXには、いくつかのAPIが用意されています。 これらを使用することにより、アプリケーションを効率よく、かつ安全に実行することができます。
オープン性の高いアプリケーションを作成する場合は、これらのAPIを使用すべきではありません。 しかし、WebOTXの高機能/高信頼の恩恵を受けるためには、 これらのAPIの利用は不可欠なものとなります。
サーバAPI○コンポーネント情報の登録 (add)
形式 |
クラス名 jp.co.nec.WebOTX.WOComponent public static void add(WOServantCallback woservantcallback) |
引数 | woservantcallback - 実装情報 |
機能 | コンポーネント初期化関数(運用管理ツールで指定するコンポーネント初期化クラス)にて、 コンポーネント内に定義されている実装情報をWebOTXにするために使用します。 引数 woservantcallback は実装情報のインスタンスを指定します。 複数の実装を定義している場合は、その数だけ呼び出してください。 |
注意事項 | 本APIはコンポーネント初期化関数でのみ利用するようにしてください。 それ以外の場所から呼び出しても何も起こりません。 |
○サーバオブジェクトの生成 (CreateServant)
形式 |
クラス名 jp.co.nec.WebOTX.WOServantManager public static org.omg.CORBA.Object CreateServant(WOServantCallback woservantcallback) |
引数 | woservantcallback - 実装情報 |
機能 | WebOTXに、サーバオブジェクトの生成を通知します。
引数 woservantcallback は生成するオブジェクトの実装情報のインスタンスを指定します。
指定された実装情報に対応するオブジェクトがステートレスだった場合は、
事前生成されているオブジェクトが返ります。ステートフルだった場合は、
新しくオブジェクトを生成されて、そのオブジェクトリファレンスが返ります。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○サーバオブジェクトの解放 (ReleaseServant)
形式 | クラス名 jp.co.nec.WebOTX.WOServantManager public static void ReleaseServant(WOServantCallback woservantcallback, org.omg.CORBA.Object objref) |
引数 | woservantcallback - 実装情報 objref - オブジェクトリファレンス |
機能 | WebOTXに、サーバオブジェクトの解放を通知します。 引数 woservantcallback は解放する実装情報のインスタンスを指定します。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○トランザクション終了状態の通知 (TPSSetTxStatus)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static void TPSSetTxStatus(int status) |
引数 |
|
機能 | 以後のオペレーション実行要求を制御することが可能です。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○データベースオブジェクトの登録 (TPSRegisterDB)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static int TPSRegisterDB(jp.co.nec.WebOTX.WebOTX_DB regdb); public static int TPSRegisterDB(java.sql.Connection jdbcConnect); |
引数 |
|
返却値 |
|
機能 | サーバオブジェクト内で使用するリモートデータオブジェクトをWebOTXサーバへ登録します。 登録するオブジェクトはWebOTX提供のWebOTX_DBクラスから派生したクラスのオブジェクトあるいはJDBCのConnectionオブジェクトです。 例外発生時には、このオブジェクトのrollback()メソッドが呼び出されます。 WebOTX_DBのrollback()メソッドはabstract関数になっていますので、派生したクラスでオーバライドして、ロールバック処理を記述してください。 |
注意事項 |
本APIは、サーバオブジェクトのコンストラクタまたはオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○スレッド、プロセスの強制終了、スレッドのリスタート (TPSAbort)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static void TPSAbort(int aborttype); |
引数 |
|
機能 | 利用者の処理中にスレッドやプロセスを終了したり、スレッドをリスタートしたりすることが可能です。 本関数を呼び出した後は速やかにオペレーションを終了(return)してください。 なお、続けてTPSRestart()を実行した場合は、TPSAbort()を優先的に行います。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○オペレーションのリスタート (TPSRestart)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static void TPSRestart(); |
機能 | 利用者の処理を中断し、オペレーションを最初から実行し直します。 本関数を呼び出した後は速やかにオペレーションを終了(return)してください。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○利用者のトレース出力 (TPSUserTrace)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static void TPSUserTrace(int nLevel, String message) |
引数 |
|
機能 |
利用者のトレースをWebOTXのトレースにあわせて出力します。出力されるファイルは、運用管理ツールで指定します。 トレースレベル2以下の場合、エラーメッセージがsyslogやイベントログに出力されるため、WebOTXの性能が劣化する可能性があります。 エラー発生時以外はトレースレベル2以下を指定しないでください。 |
注意事項 |
ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○トレースレベルの取得 (TPSGetUserTraceLevel)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static long TPSGetUserTraceLevel() |
返却値 | 現在のトレースレベル |
機能 | 運用管理ツールで指定しているトレースレベルを取得します。トレースファイルに出力するメッセージを組み立てるかどうかを決めるために使用してください。 |
注意事項 |
ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○イベントジャーナルへの出力 (TPSEventJournal)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static long TPSEventJournal(short ejkind, String msg) |
引数 |
|
返却値 |
0は正常終了。異常時には負の値を返します。 -1 内部エラー -2 パラメータ不正 |
機能 |
引数 ejkind のジャーナル種別で引数msgをイベントジャーナルに出力します。
コンポーネント名はUSERとなります。また、msgは16進数で出力します。 イベントジャーナルに関しては [ 構築・運用 > ドメインの構築 > TPシステム > 通信情報(イベントジャーナル) ] をご覧ください。 |
注意事項 |
ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○論理クライアントIDの取得(TPSGetLid)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static String TPSGetLid(); |
返却値 | 論理クライアントID |
機能 | オペレーションの発行元を示す論理クライアントIDを返却します。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 しかし、ステートフルサーバオブジェクトに限っては、コンストラクタでも利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○引数の取得 (TPSGetArgument)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static String[] TPSGetArgument() |
返却値 | 引数の文字列配列 |
機能 | 運用管理ツールで指定した引数を文字列配列として返却します。 |
注意事項 |
ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○WebOTX情報の取得 (TPSGetServerInformation)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static jp.co.nec.WebOTX.WebOTX_Information TPSGetServerInformation() |
返却値 |
jp.co.nec.WebOTX.WebOTX_Informationオブジェクト。WebOTX_Informationは以下のような構成になっています。
package jp.co.nec.WebOTX; public class WebOTX_Information { // アプリケーショングループ名 public String apGroupName; // プロセスグループ名 public String apServerName; public static int STATELESS = 0; public static int STATEFULL = 1; // ステートフルかステートレスか public int state; public static int THREAD_NONE = 0; public static int THREAD_SINGLE = 1; public static int THREAD_APARTMENT = 2; public static int THREAD_FREE = 3; // スレッドモデル public int threadModel; // IIOPリスナポート番号 public int iiopPort; // クライアント管理ライブラリポート public int asyncPort; // 単一常駐オブジェクトクラス名 public String precteatedClassName; // OTS連携を行うか public boolean isOTS; // システムID public int systemID; // 接続サーバ名 public String serverName; // 名前サーバ名 public String nameServer; // Watchサーバを使用するか public boolean isWatchServer; // 名前サーバに登録するリファレンスの数(多重度) public int multiplexDegree; // ファクトリを使うかどうか public boolean isFactory; } |
機能 |
現在のプロセスに設定されているWebOTXの各種設定を返却します。 ステートおよびスレッドモデルはWebOTX R5.1から実装単位に指定可能になりました。 よって、呼び出した実装クラスによって値が変わることがあります。また、実装クラス以外から 呼び出す場合は、注意が必要です。 詳しくは [注意制限事項 > Object Broker JavaTM/C++ > 注意事項(Java) ] を参照してください。 |
注意事項 |
ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○ORBの取得 (TPSGetORB)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static org.omg.CORBA.ORB TPSGetORB() |
返却値 | ORB |
機能 | WebOTXサーバがアプリケーション起動時に作成した、ORBを取得します。 サーバアプリケーション内でCORBAのサービスを利用したいときに取得してください |
注意事項 |
ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○単一常駐オブジェクトの取得 (TPSGetPrecreatedUsersObject)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static java.lang.Object TPSGetPrecreatedUsersObject() |
返却値 | 単一常駐オブジェクトポインタ |
機能 | WebOTXサーバがアプリケーション起動時に作成した、単一常駐オブジェクトを取得します。 指定が無かったり、オブジェクトの生成に失敗している時はnullオブジェクトを返却します。 各常駐オブジェクトは1スレッドに1つ作成します。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○複数常駐オブジェクトの取得 (TPSGetPrecreatedUsersObjectForPlural)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static java.lang.Object TPSGetPrecreatedUsersObjectForPlural(String ident) throws jp.co.nec.WebOTX.exceptions.NotUsePluralPrecreatedUsersObject, jp.co.nec.WebOTX.exceptions.ArgumentIsNullPointer, jp.co.nec.WebOTX.exceptions.ArgumentIsNullString, jp.co.nec.WebOTX.exceptions.NotFound |
引数 | ident - 常駐オブジェクト識別子 |
返却値 | 複数常駐オブジェクトポインタ |
例外 |
|
機能 |
WebOTXサーバがアプリケーション起動時に作成した、複数常駐オブジェクトを取得します。取得するオブジェクトは引数
ident で指定します。 各常駐オブジェクトは1スレッドに1つ作成します。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○共有プロパティ : プロパティグループの生成(TPSCreatePropertyGroup)
形式 |
クラス名 jp.co.nec.WebOTX.WOPropertyGroupManager public int WOPropertyGroup TPSCreatePropertyGroup(String name, int area, WOPropertyGroup[] pgptr); |
引数 |
|
返却値 |
|
機能 |
nameで指定したプロパティグループを生成します。 正常に生成できたときは、プロパティグループクラス(WOPropertyGroup)のオブジェクトをpgptr[0]に設定します。
また、既に存在するときは、既存のプロパティグループポインタを設定します。 失敗したときはnullを設定します。 areaはプロパティグループの有効範囲を指定します。 異なるareaに同一名のプロパティグループがあっても影響は受けません。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : プロパティグループの取得(TPSGetPropertyGroup)
形式 |
クラス名 jp.co.nec.WebOTX.WOPropertyGroupManager public int TPSGetPropertyGroup(String name, int areatype, WOPropertyGroup[] pgptr) |
引数 |
|
返却値 |
|
機能 | nameとareaで指定したプロパティグループクラスのポインタを返却します。存在しないときはnullポインタを返却します。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : プロパティグループの削除(TPSDeletePropertyGroup)
形式 |
クラス名 jp.co.nec.WebOTX.WOPropertyGroupManager public int TPSDeletePropertyGroup(WOPropertyGroup pgptr) |
引数 | pgptr - プロパティグループクラスオブジェクトを指定します。 |
返却値 |
|
機能 | pgptrで指定したプロパティグループを削除します。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : プロパティの生成
形式 |
クラス名 jp.co.nec.WebOTX.WOPropertyGroup public int CreateProperty(String propname, WOProperty[] pptr ); |
引数 |
|
返却値 |
|
機能 | nameで指定したプロパティを生成します。 正常に生成できたときは、プロパティクラス(WOProperty)のオブジェクトをpptr[0]に設定します。 また、既に存在するときは、既存のプロパティオブジェクトをpptr[0]に設定します。 失敗したときはnullをpptr[0]に設定します。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : プロパティの取得
形式 |
クラス名 jp.co.nec.WebOTX.WOPropertyGroup public int GetProperty(String propname, WOProperty[] pptr); |
引数 |
|
返却値 |
|
機能 | nameで指定したプロパティクラスのオブジェクトを取得します。存在しないときはnullを返却します。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : プロパティの削除
形式 |
クラス名 jp.co.nec.WebOTX.WOPropertyGroup public int DeleteProperty(WOProperty pptr); |
引数 | pptr - 削除するプロパティオブジェクトを指定します。 |
返却値 |
|
機能 | pptrで指定したプロパティクラスのオブジェクトを削除します。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : プロパティグループのロック
形式 |
クラス名 jp.co.nec.WebOTX.WOPropertyGroup public int Lock(int inWaitflag, int waitmilsec); |
引数 |
|
返却値 |
|
機能 |
プロパティグループをロックします。これは、プロパティグループを生成するときに指定したareaの範囲内で有効です。 ロックを解放せずにオペレーションを終了(つまりreturn)した場合は、WebOTX側で自動的にロックを解放します。 同一プロパティグループに対してアンロックせずにロックを2回続けて実行した場合はWOSP_RC_DEADLOCKエラーとなります。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : プロパティグループのアンロック
形式 |
クラス名 jp.co.nec.WebOTX.WOPropertyGroup public int Unlock(); |
返却値 |
|
機能 | プロパティグループをアンロックします。ロックをかけていないときはWOSP_RC_NOLOCKEDを返却します。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : 値の設定
形式 |
クラス名 jp.co.nec.WebOTX.WOProperty int Set(boolean value); int Set(byte value); int Set(char value); int Set(short value); int Set(int value); int Set(long value); int Set(float value); int Set(double value); int Set(byte[] value); |
引数 | value - 値を指定します。 |
返却値 |
|
機能 |
valueで指定した値を設定します。 本APIはロックを取得してから呼び出してください。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○共有プロパティ : 値の取得
形式 |
クラス名 jp.co.nec.WebOTX.WOProperty int Get(boolean[] value); int Get(byte[] value); int Get(char[] value); int Get(short[] value); int Get(int[] value); int Get(long[] value); int Get(float[] value); int Get(double[] value); |
引数 | value - 値が設定されます。 |
返却値 |
|
機能 |
valueに値を設定します。byte[]だけ配列の大きさが2以上のときは配列の大きさにあわせてデータを取得します。 本APIはロックを取得してから呼び出してください。 |
注意事項 |
本APIは、アプリケーションが独自に生成したスレッドの処理中では利用できません。 また、ファイナライザから本APIを呼び出すことは推奨できません。 ファイナライザはいつ呼び出されるのかがわからないためです。 例えば、WebOTXの終了処理が完了した後にファイナライザが実行されて本APIが呼び出されたり した場合に例外が発生してしまうことなどが考えられます。 |
○VDサーバにデータを送信 (TPSVDSend)
形式 |
クラス名 jp.co.nec.WebOTX.orbsvwpr.WoServerWrapper public static int TPSVDSend(String vdname, String trans_id, String format_id, byte[] data) |
引数 |
|
返却値 |
|
機能 |
VDサーバにdataの内容を送信します。trnsiidは8文字、format_idは10文字までが有効です。 本APIを利用する場合、OLF/TP-UTのクライアントアプリケーションが必要であり、それ以外の 目的で使用することはありません。 |
注意事項 |
本APIは、サーバオブジェクトのオペレーション処理中でのみ利用できます。 それ以外の場所では利用できません。 アプリケーションが独自に生成したスレッドの処理中などでも利用できないので注意してください。 |
○コンポーネント初期化インタフェース
形式 |
クラス定義
package jp.co.nec.WebOTX; public interface WOUserComponent { public void init(); } |
void init() |
コンポーネントファイル読み込み時、一度だけ呼び出されます。 WOComponent.add()を呼び出してコンポーネント情報を登録してください。 |
機能 |
R5.1からの新機能です。
R4.2まではコンポーネント内の実装クラスはIDLのインタフェース(正確にはリポジトリID)にあわせて固定化していました。
R5.1からは任意の実装クラスを作成できるようになりました。
また、1つのインタフェースから複数の実装も可能になりました。 本インタフェースは、コンポーネント情報をWebOTXに通知するためのコールバックインタフェースです。 運用管理ツールにて本インタフェースを実装したクラスを指定することにより、 サーバプロセス起動時にWebOTXからinit()が呼び出されます。 init()では、WOComponent.add()を呼び出してコンポーネントファイル内に定義されている実装情報を登録してください。 |
○実装情報の定義
形式 |
クラス定義
package jp.co.nec.WebOTX; public interface WOServantCallback { public String _name(); public String _id(); public Servant _newInstance(); } |
String _name() | 実装識別名を返却してください。この値はコンポーネントファイル内でユニークなものにてください。 使える文字列は「英字」と「数字」です。空白や記号、漢字などの2byte文字は使用できません。 |
String _id() | リポジトリIDを返却してください。例えば、interface LoopBackSampleの実装なら"IDL:LoopBackSample:1.0"を返却してください。 |
Servant _newInstance() | サーバントをnewした結果を返却してください。WebOTXが必要に応じて呼び出します。 |
機能 | R5.1からの新機能です。 R4.2まではコンポーネント内の実装クラスはIDLのインタフェース(正確にはリポジトリID)にあわせて固定化していました。 R5.1からは任意の実装クラスを作成できるようになりました。 また、1つのインタフェースから複数の実装も可能になりました。 本インタフェースはその実装クラス情報をWebOTXに通知するためのものです。 実装毎にこのインタフェースを実装したクラスを作成し、WOComponent.add()にて登録してください。 |
IDL定義にてインタフェースを定義するとき、WO_Baseからの派生と指定し、サーバアプリケーション内で以下のオペレーションを定義することで、特定の事象が発生したときに、WebOTXサーバが定義済みのオペレーションをコールします。
○クライアントへのセッションが切断
形式 | public void OnTPSDisconnect() |
機能 | クライアントアプリケーションがステートフルサーバオブジェクトを生成してから解放するまでの間にクライアントへのセッションが切断されると、WebOTXはこのオペレーションを呼びます。 |
○オペレーションの異常終了
形式 | public void OnTPSAbort(int status) |
引数 |
|
機能 |
例外が発生した場合などオペレーション処理中に何らかの異常が発生して正常に終了できなかった場合や、
WebOTXサーバが無限ループを強制的に停止したタイミングでコールされます。 なお、WebOTXはこのオペレーション実行後にロールバック処理を行いますが、 ロールバック後の後処理を実行したい場合には、 このオペレーション内でロールバックを行って、後処理を記述して下さい。 |
○運用管理コマンドからのメッセージ受信
形式 | public void OnTPSMessageNotified(java.lang.String mes) |
引数 | mes - 運用管理コマンドからのメッセージ |
機能 | 運用管理コマンドからのメッセージを受け取ります。 WebOTX Clusterにおいて、フェイルオーバがあったときに呼び出されます。 WebOTX Clusterを使用していない場合は、本関数はretrun 文のみ記述してください。 |
以下は特定の条件で呼び出されるコールバック関数およびコールバック関数の登録用APIです。
○プロセス起動および終了時のコールバック関数
形式 |
クラス定義
package jp.co.nec.WebOTX.Objectcreator; import org.omg.CORBA.ORB; import jp.co.nec.WebOTX.WebOTX_Information; import jp.co.nec.WebOTX.WO_InitTerm; public class InitTerm implements WO_InitTerm { public void initialize(ORB orb, WebOTX_Information info) {} public void terminate(ORB orb, WebOTX_Information info) {} } |
引数 |
|
機能 | WebOTXはプロセス起動時に本クラスのインスタンスを生成し、initialize関数を呼び出します。またプロセス終了時にterminate関数を呼び出します。この呼び出しはそれぞれ1度しか行われません。よって、static変数の初期化などを行う時はここに記述してください。 |
○オブジェクトの生成/消滅時
形式 |
インタフェース定義
package jp.co.nec.WebOTX; public interface WO_ObjectListener { public void OnTPSCreateObject(); public void OnTPSReleaseObject(); } |
機能 | WebOTXはOnTPSCreateObject()はサーバオブジェクト生成後に、 OnTPSReleaseObject()はサーバオブジェクト消滅前にそれぞれ呼び出します。 |
ここでは、単一常駐オブジェクトのコールバックインタフェースについて説明します。
○単一常駐オブジェクト用の生成/解放時のコールバックインタフェース
形式 |
package jp.co.nec.WebOTX; public interface WO_PUOObjectListener { public void OnTPSPUOCreateObject(); public void OnTPSPUOReleaseObject(); } |
機能 | 単一常駐オブジェクト生成時と解放前に特別な処理を入れる時にimplementsしてください。 |
○単一常駐オブジェクト用のオペレーション呼び出し時のコールバックインタフェース
形式 |
package jp.co.nec.WebOTX; public interface WO_PUOOperationListener { public void OnTPSPUOOperationStart(String intf, String opname); public void OnTPSPUOOperationNormal(String intf, String opname); public void OnTPSPUOOperationAbnormal(String intf, String opname, int status); public void OnTPSPUOOperationAbort(String intf, String opname, int status); } |
引数 |
|
機能 | オペレーションが呼び出された時に、本インタフェースを実装している単一常駐オブジェクトは各サーバオブジェクトの呼び出し(OnTPSOperationStart)、正常終了時(OnTPSPUOOperationNormal)、異常終了時(OnTPSPUOOperationAbnormal)、例外時(OnTPSPUOOperationAbort)にそれぞれ呼び出されます。 |
ここでは、複数常駐オブジェクトのコールバックインタフェースについて説明します。
○複数常駐オブジェクト用の生成/解放時のコールバックインタフェース
形式 |
package jp.co.nec.WebOTX; public interface WO_PUOObjectListenerForPlural { public void OnTPSPUOCreateObject(String ident); public void OnTPSPUOReleaseObject(String ident); } |
引数 | ident - 常駐オブジェクト識別子 |
機能 | 複数常駐オブジェクト生成時と解放前に特別な処理を入れる時にimplementsしてください。 |
○複数常駐オブジェクト用のオペレーション呼び出し時のコールバックインタフェース
形式 |
package jp.co.nec.WebOTX; public interface WO_PUOOperationListenerForPlural { public void OnTPSPUOOperationStart(String ident, String intf, String opname); public void OnTPSPUOOperationNormal(String ident, String intf, String opname); public void OnTPSPUOOperationAbnormal(String ident, String intf, String opname, int status); public void OnTPSPUOOperationAbort(String ident, String intf, String opname, int status); } |
引数 |
|
機能 | オペレーションが呼び出された時に、本インタフェースを実装している複数常駐オブジェクトは各サーバオブジェクトの呼び出し(OnTPSOperationStart)、正常終了時(OnTPSPUOOperationNormal)、異常終了時(OnTPSPUOOperationAbnormal)、例外時(OnTPSPUOOperationAbort)にそれぞれ呼び出されます。 |
○クライアント管理ライブラリの初期化
形式 |
クラス名:jp.co.nec.WebOTX.TerminalManager public int SetFactoryObject(org.omg.CORBA.ORB orb, org.omg.CORBA.Object fObj); |
引数 |
|
戻り値 |
|
機能 | クライアント管理ライブラリを初期化します。 このメソッドを呼び出すことにより、クライアント管理が開始されます。このとき、コンソールタイプのJavaアプリケーションを使用するときは、次に示すSetMessageType(TerminalManager.TM_MESSAGE_SYSTEMOUT)を必ず実行してください。 |
○メッセージタイプの設定
形式 |
クラス名:jp.co.nec.WebOTX.TerminalManager public void SetMessageType(int type); |
引数 |
|
機能 | 非同期メッセージを受信したときに、どこに表示するかを指定します。コンソールタイプのJavaアプリケーションの場合は必ず本関数をSetFactoryObject()以降にTerminalManager.TM_MESSAGE_SYSTEMOUTを引数に実行してください。SetMessageTypeとSetMessageHookを一度も呼ばない、またはTerminalManager.TM_MESSAGE_DIALOGを指定すると、非同期メッセージ受信時にメッセージダイアログを表示して通知します。 |
○コールバックオブジェクトの設定
形式 |
クラス名:jp.co.nec.WebOTX.TerminalManager public void SetMessageHook(jp.co.nec.WebOTX.TerminalMessageHook hook); |
引数 | hook - jp.co.nec.WebOTX.TerminalMessageHookインタフェースをimplementsしたオブジェクトを指定 |
機能 | 非同期メッセージを受信したときに、hookに指定したオブジェクトのmessage(String message)メソッドを呼び出します。 このメソッドを呼び出すとSetMessageType()の指定は無効になります。 |
○クライアント管理ライブラリの終了
形式 |
クラス名:jp.co.nec.WebOTX.TerminalManager public void Term(); |
機能 | クライアント管理ライブラリの機能を停止します。本関数を呼び出さないと最悪プロセスが停止しませんので、必ず呼び出すようにしてください。 |