18.3.3 ユーザファンクションの実装に関する留意事項
ユーザファンクションの実装に関する留意事項を次に示します。
-
ユーザファンクションのデフォルトコンストラクタのアクセス修飾子はpublicにして,EADsサーバから使用できるようにしてください。
-
EADsクライアントからの引数と戻り値は,シリアライズ可能なオブジェクトにしてください。
-
Groupインタフェースを使用してデータを取得する場合,次のどちらかの方法で,オブジェクトをデシリアライズするために十分な内容をクラスパスに追加してください。
-
jarファイルのマニフェストのClass-Path属性にjarファイルのパスを記載する。
-
<運用ディレクトリ>/app/libディレクトリ下にjarファイルを配置する。
-
-
ユーザファンクションのインスタンスは単一であり,複数のEADsクライアントで同時に実行すると,EADsサーバではマルチスレッドで同一のインスタンスを使用します。そのため,ユーザファンクションには次のような処理を実装しないでください。
-
排他制御をしないで,インスタンス変数,static変数を更新する。
-
排他制御をしないで,スレッドセーフでないAPIを使用する。
-
-
FunctionContextと,そこから取得できるオブジェクトの有効範囲は,Functionインタフェースのメソッドの中だけです。これらのオブジェクトを,メソッドの範囲外で参照した場合の動作は保証されません。
-
ユーザファンクション内でスレッドを生成しないでください。スレッドを生成・実行した場合の動作は保証されません。
-
ユーザファンクションは,EADsサーバプロセスで動作するため,カレントディレクトリは運用ディレクトリになります。