4.10.3 その他の注意事項
- 〈この項の構成〉
(1) クラスライブラリ使用上の注意事項
-
Hitachi.OpenTP1で始まる名前空間はOpenTP1が使用するため,OpenTP1以外のアプリケーションでは使用できません。
-
Extension .NETが提供するクラスライブラリはスレッドセーフではありません。マルチスレッドで使用した場合の動作は保証できません。
(2) SPP.NETに関する注意事項
-
SPP.NETでは,サービスメソッドやInitializeSPPメソッド,FinalizeSPPメソッドが呼び出されたスレッドでだけOpenTP1が提供するクラスを使用できます。
それ以外のスレッド(SPP.NET上で任意に生成したスレッドや.NET Frameworkが提供するクラスによって生成されたスレッドなど)でOpenTP1の提供するクラスを使用しないでください。使用した場合の動作は保証できません。
また,SPP.NET上で使用するオブジェクトのデストラクタやFinalizeメソッドでも,OpenTP1が提供するクラスを使用しないでください。
-
OpenTP1が提供する各クラスは,SPP.NET実行コンテナによってSPP.NET実装クラスが呼び出されたアプリケーションドメインからだけ使用できます。SPP.NET内で独自に生成したアプリケーションドメインからOpenTP1のクラスを使用しないでください。使用した場合の動作は保証できません。
-
.NETインタフェース定義とSPP.NET実装クラスは同じプログラム言語で記述してください。サーバスタブは.NETインタフェース定義と同じプログラム言語を使用して生成されます。
-
.NETインタフェース定義,SPP.NET実装クラス,サーバスタブは一つのアセンブリに入れてください。これらが一つのアセンブリに入っていない場合,SPP.NETの起動ができません。SPP.NET実装クラスが使用するクラス,または参照するクラス(ほかのSPP.NETを利用する場合は,そのクライアントスタブも含む)については別のアセンブリになっていてもかまいません。
-
SPP.NET実装クラスではMainメソッドを実装する必要はありません。実装しても実行されません。
-
SPP.NET実装クラスを含むアセンブリはDLL形式にしてください。
-
SPP.NET内で例外ThreadAbortExceptionが発生した場合,KFCA00105-Eメッセージとともに,アボートコードE00001が出力され,SPP.NETのプロセスは異常終了します。
-
.NETインタフェース定義を使用しないサービスメソッドでユーザ例外が発生した場合,クライアントにはDCRPCER_SYSERR_AT_SERVERが返されます。エラーの詳細は.NETエラーログファイルを参照してください。
(3) SUP.NETに関する注意事項
-
SUP.NETでは,Mainメソッドが呼び出されたスレッドでだけOpenTP1が提供するクラスを使用することができます。それ以外のスレッド(SUP.NET上で任意に生成したスレッドや.NET Frameworkが提供するクラスによって生成されたスレッドなど)でOpenTP1が提供するクラスを使用しないでください。使用した場合の動作は保証できません。
また,SUP.NET上で使用するオブジェクトのデストラクタやFinalizeメソッドでも,OpenTP1が提供するクラスを使用しないでください。
-
SUP.NETの実装クラスではMainメソッドを実装してください。
-
SUP.NETの実装を含むアセンブリはEXE形式にしてください。
(4) Visual Studio上でコンパイルする場合の注意事項
Visual Studio上でSPP.NETおよびSUP.NETをコンパイルする場合,必ずVisual Studioのメニューから[プロジェクト]−[参照の追加]で,コンポーネント名「TP1/Extension for .NET Framework Class Library」を選択してください。