タイトル WebOTXサーバアプリケーション内で、インスタンス化していない例外クラスをTHROWした場合に、サーバAPが応答を返さなくなることへの対処方法について
詳細 通常、ユーザアプリケーション実行時に、インスタンス化していない(GETUPしていない)例外クラスをTHROWした場合には、HolonEnterpriseランタイムライブラリが、ユーザアプリケーションの論理的なエラー検出を行い、「ClassObject is sleep (HLN_USR_EXCEPT)」のような、メッセージボックスを出現させます。
ところが、WebOTXサーバアプリケーションにおいては、WindowsNTのサービスとして動作するため、画面上にメッセージボックスが出現せず、上記エラーが発生すると、サーバアプリケーションではメッセージボックス上のOKボタンを押すことができずに、続行不能状態に陥ることとなります。

この現象を回避するには、以下のシステム環境変数を設定し、実行時エラーメッセージを抑制します。
システム環境変数 HOLONNOMSG
値 1
(注)値の設定後、一旦、マシンの再起動が必要です。

上記設定後、アプリケーション実行エラーは、ABLトレースファイルに出力されるようになります。
環境変数ABLTRACEDIRで指定されたディレクトリ、指定がなければアプリケーションの実行時カレントに、"ABL"+プロセスIDの16進表記(8桁)+".log" というファイル名で作成されます。
※ABLトレースファイルの詳細な説明は、HolonEnterprise基本機能ガイドの「デバッグ支援機能」をご参照ください。

ABLトレースファイルにエラーの情報を書き込んだ後、アボート処理が発行されます。
HolonEnterpriseから発行されたアボート例外は、WebOTXサーバによって補足され、インタフェースのアボート時コールバック(OnTPSAbort)が呼び出され、アボート時の後処理を行うことができます。アプリケーションアボート後のWebOTXサーバの状態は、特に設定変更を行っていなければ、アボートを起こした関数のみが使用不能という状態になり、他の処理は使用することができます。
環境 Version HolonEnterprise V6.0(OV#03)以降
OS Windows NT4.0, Windows 2000
補足 インスタンス化していない(GETUPしていない)例外クラスをTHROWすることは、アプリケーションの論理的なエラーです。正しく動作させるには、プログラムの修正をすることが必要です。
更新日 2000.09.25