PEX API リファレンス
このリファレンスは、PEX フレームワークでサポートされるいずれかの外部言語で記述された PEX コンポーネント用のメソッドを示しています。リモート・クラスに対して生成される ObjectScript プロキシ・クラスは、EnsLib.PEX パッケージ内の ObjectScript クラスから継承します。
メソッドに関する一般的な注意事項
メソッドをオーバーライドしてプロダクション・コンポーネントを実装する際は、以下の点に留意してください。
-
各プロダクション・コンポーネントは、すべての抽象メソッドをオーバーライドする必要があります。
-
ネイティブの相互運用メソッドは 1 つの入力引数と 1 つの出力引数を使用してステータスを返しますが、対応する PEX メソッドは 1 つの入力引数を取り、戻り値として出力引数を返します。
-
例外により PEX メソッドのすべてのエラー処理が行われます。
-
入力および出力引数として永続オブジェクトを必要としないネイティブの相互運用メソッドでは、対応する PEX メソッドも引数として任意のオブジェクトを使用して値を返すことができます。PEX は、外部言語サーバのフォワード・プロキシとリバース・プロキシを使用して、任意のオブジェクトを適切にマッピングします。
-
引数として永続オブジェクトを必要とするネイティブの相互運用メソッド (他のプロセスにメッセージを送信するメソッドなど) では、対応する PEX メソッドで引数として PEX メッセージを使用して値を返すことができます。このようなメソッドの例には、SendRequestSync、SendRequestAsync、OnRequest、OnResponse、OnMessage があります。
-
コールバック・メソッドをオーバーライドする際は、メッセージ・クラスをカスタマイズした場合でも、そのメソッドの仮仕様を変更しないでください。引数タイプはオブジェクトとして残ります。
ビジネス・オペレーション
ビジネス・オペレーションでは、オプションでアダプタを使用して送信メッセージを処理できます。ビジネス・オペレーションにアダプタが指定されている場合、オペレーションはそのアダプタを使用して外部システムにメッセージを送信します。アダプタとしては、PEX アダプタまたは ObjectScript アダプタのいずれかを使用できます。
OnMessage() メソッド
OnMessage() メッセージは、ビジネス・オペレーションが別のプロダクション・コンポーネントからメッセージを受信したときに呼び出されます。通常、そのオペレーションは、受信したメッセージを外部システムに送信するか、ビジネス・プロセスまたは別のビジネス・オペレーションに転送します。オペレーションにアダプタが指定されている場合、そのオペレーションは Adapter.invoke() メソッドを使用して、外部システムにメッセージを送信するメソッドをアダプタで呼び出します。オペレーションが、メッセージを別のプロダクション・コンポーネントに転送するよう指定されている場合、そのオペレーションは、SendRequestAsync() メソッドまたは SendRequestSync() メソッドを使用します。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : (request)
-
request — Object 型。ビジネス・オペレーション宛ての受信メッセージが含まれます。
OnMessage メソッドの実装は、Object 型の単一パラメータを使用してユーザが行う必要があります。このメソッド内で、呼び出し元から渡される実際の型にこのパラメータをキャストできます。
戻り値 : オブジェクト
OnInit() メソッド
OnInit() は、コンポーネントが起動されるときに呼び出されます。OnInit() を使用すると、そのコンポーネントで必要な構造を初期化できます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
OnTearDown() メソッド
OnTearDown() メソッドは、コンポーネントが終了される前に呼び出されます。OnTeardown() を使用すると、構造を解放できます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
SendRequestAsync() メソッド
SendRequestAsync() メソッドは、指定されたメッセージをターゲットのビジネス・プロセスまたはビジネス・オペレーションに非同期に送信します。
パラメータ : (target, request [ , description ])
-
target — 要求を受信するビジネス・プロセスまたはビジネス・オペレーションの名前を指定する文字列。target は、コンポーネントのクラス名ではなく、プロダクション定義の Item Name プロパティに指定されているコンポーネント名です。
-
request — ターゲットに送信するメッセージを指定します。request には、Message クラスのサブクラスであるクラスまたは IRISObject クラスを使用します。ターゲットが組み込みの ObjectScript コンポーネントである場合、IRISObject クラスを使用する必要があります。IRISObject クラスを使用すると、PEX フレームワークにより、ターゲットでサポートされているクラスにメッセージを変換できます。ターゲットが組み込みの ObjectScript コンポーネントでない場合は、Message クラスのサブクラスを使用できます。
-
description — メッセージ・ヘッダに説明のプロパティを設定するオプションの文字列パラメータ。
戻り値 : void
SendRequestSync() メソッド
SendRequestSync() メソッドは、指定されたメッセージをターゲットのビジネス・プロセスまたはビジネス・オペレーションに同期的に送信します。
パラメータ : (target, request [ ,timeout [ , description ]])
-
target — 要求を受信するビジネス・プロセスまたはビジネス・オペレーションの名前を指定する文字列。target は、コンポーネントのクラス名ではなく、プロダクション定義の Item Name プロパティに指定されているコンポーネント名です。
-
request — ターゲットに送信するメッセージを指定します。request には、Message クラスのサブクラスであるクラスまたは IRISObject クラスを使用します。ターゲットが組み込みの ObjectScript コンポーネントである場合、IRISObject クラスを使用する必要があります。IRISObject クラスを使用すると、PEX フレームワークにより、ターゲットでサポートされているクラスにメッセージを変換できます。ターゲットが組み込みの ObjectScript コンポーネントでない場合は、Message クラスのサブクラスを使用できます。
-
timeout — 送信要求をエラーとして扱うまで待機する時間を秒数で指定するオプションの整数。既定値は -1 です。これは永久に待機することを意味します。
-
description — メッセージ・ヘッダに説明のプロパティを設定するオプションの文字列パラメータ。
LOGINFO() メソッド、LOGALERT() メソッド、LOGWARNING() メソッド、LOGERROR() メソッド、および LOGASSERT() メソッド
これらのログ・メソッドは、プロダクション・ログに書き込みます。プロダクション・ログは、管理ポータルでコンポーネントの [ログ] タブに表示できます。これらのメソッドは同じパラメータを使用し、ログ・メッセージの種類のみが異なります。
-
LOGINFO() のメッセージの種類は情報です。
-
LOGALERT() のメッセージの種類はアラートです。
-
LOGWARNING() のメッセージの種類は警告です。
-
LOGERROR() のメッセージの種類はエラーです。
-
LOGASSERT() のメッセージの種類はアサートです。
パラメータ : (message)
-
message — ログに書き込まれる文字列。
ビジネス・プロセス
ビジネス・プロセス・クラスには通常、プロダクションのほとんどのロジックが含まれます。ビジネス・プロセスは、ビジネス・サービス、別のビジネス・プロセス、またはビジネス・オペレーションからメッセージを受信できます。また、受信したメッセージに変更を加えるか、メッセージを別の形式に変換するか、またはメッセージの内容に基づいてメッセージをルーティングすることができます。ビジネス・プロセスは、メッセージをビジネス・オペレーションまたは別のビジネス・プロセスにルーティングできます。ビジネス・プロセスのプロパティを永続的にする方法の詳細は、"永続プロパティ" を参照してください。
OnRequest() メソッド
OnRequest() メソッドは、ビジネス・プロセスに送信された要求を処理します。プロダクションは、特定のビジネス・プロセスに関する最初の要求が適切なキューに到着して、実行すべきジョブが割り当てられるたびに、このメソッドを呼び出します。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : (request)
-
request — ビジネス・プロセスに送信された要求メッセージが含まれるオブジェクト。
OnResponse() メソッド
OnResponse() メソッドは、ビジネス・プロセスからターゲットに送信されたメッセージのレスポンスとしてビジネス・プロセスに送信されたレスポンスを処理します。プロダクションは、特定のビジネス・プロセスに関する応答が適切なキューに到着して、実行すべきジョブが割り当てられるたびに、このメソッドを呼び出します。通常、これは、要求の responseRequired パラメータの値が true の場合に、ビジネス・プロセスによって生成された非同期の要求に対するレスポンスです。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : (request, response, callRequest, callResponse, completionKey)
-
request — ビジネス・プロセスに送信された最初の要求メッセージが含まれるオブジェクト。
-
response — 初期メッセージを送信したプロダクション・コンポーネントにこのビジネス・プロセスが返すことができるレスポンス・メッセージが含まれるオブジェクト。
-
callRequest — ビジネス・プロセスがターゲットに送信した要求が含まれるオブジェクト。
-
callResponse — 受信レスポンスが含まれるオブジェクト。
-
completionKey — 送信処理を行う SendAsync() メソッドの completionKey パラメータに指定された completionKey が含まれる文字列。
OnComplete() メソッド
OnComplete() メソッドは、ビジネス・プロセスがターゲットに送信した要求に対するすべてのレスポンスを受信して処理した後に呼び出されます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : (request, response)
-
request — ビジネス・プロセスに送信された最初の要求メッセージが含まれるオブジェクト。
-
response — 初期メッセージを送信したプロダクション・コンポーネントにこのビジネス・プロセスが返すことができるレスポンス・メッセージが含まれるオブジェクト。
OnInit() メソッド
OnInit() メソッドは、コンポーネントが起動されるときに呼び出されます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
OnTearDown() メソッド
OnTearDown() メソッドは、コンポーネントが終了される前に呼び出されます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
Reply() メソッド
Reply() メソッドは、ビジネス・プロセスに最初の要求を送信したプロダクション・コンポーネントに、指定されたレスポンスを送信します。
パラメータ : (response)
-
response — レスポンス・メッセージが含まれるオブジェクト。
SendRequestAsync() メソッド
SendRequestAsync() メソッドは、指定されたメッセージをターゲットのビジネス・プロセスまたはビジネス・オペレーションに非同期に送信します。
パラメータ : (target, request [ , responseRequired [, completionKey [ , description ]]])
-
target — 要求を受信するビジネス・プロセスまたはビジネス・オペレーションの名前を指定する文字列。target は、コンポーネントのクラス名ではなく、プロダクション定義の Item Name プロパティに指定されているコンポーネント名です。
-
request — ターゲットに送信するメッセージを指定します。request には、Message クラスのサブクラスであるクラスまたは IRISObject クラスを使用します。ターゲットが組み込みの ObjectScript コンポーネントである場合、IRISObject クラスを使用する必要があります。IRISObject クラスを使用すると、PEX フレームワークにより、ターゲットでサポートされているクラスにメッセージを変換できます。ターゲットが組み込みの ObjectScript コンポーネントでない場合は、Message クラスのサブクラスを使用できます。
-
responseRequired — ターゲットがレスポンス・メッセージを送信する必要があるかどうかを指定するブーリアン値。
-
completionKey — レスポンス・メッセージと共に送信される文字列。
-
description — メッセージ・ヘッダに説明のプロパティを設定するオプションの文字列パラメータ。
SendRequestSync() メソッド
SendRequestSync() メソッドは、指定されたメッセージをターゲットのビジネス・プロセスまたはビジネス・オペレーションに同期的に送信します。
パラメータ : (target, request [ ,timeout [ , description ]])
-
target — 要求を受信するビジネス・プロセスまたはビジネス・オペレーションの名前を指定する文字列。target は、コンポーネントのクラス名ではなく、プロダクション定義の Item Name プロパティに指定されているコンポーネント名です。
-
request — ターゲットに送信するメッセージを指定します。request には、Message クラスのサブクラスであるクラスまたは IRISObject クラスを使用します。ターゲットが組み込みの ObjectScript コンポーネントである場合、IRISObject クラスを使用する必要があります。IRISObject クラスを使用すると、PEX フレームワークにより、ターゲットでサポートされているクラスにメッセージを変換できます。ターゲットが組み込みの ObjectScript コンポーネントでない場合は、Message クラスのサブクラスを使用できます。
-
timeout — 送信要求をエラーとして扱うまで待機する時間を秒数で指定するオプションの整数。既定値は -1 です。これは永久に待機することを意味します。
-
description — メッセージ・ヘッダに説明のプロパティを設定するオプションの文字列パラメータ。
SetTimer() メソッド
SetTimer() メソッドは、ビジネス・プロセスがすべてのレスポンスを待機する最大時間を指定します。
パラメータ : (timeout [ , completionKey ] )
-
timeout — 秒数を指定する整数または期間を指定する文字列。例えば、“PT15S” は、15 秒のプロセッサ時間を表します。
-
completionKey — 最大時間を超過した場合にレスポンスと共に返される文字列。
LOGINFO() メソッド、LOGALERT() メソッド、LOGWARNING() メソッド、LOGERROR() メソッド、および LOGASSERT() メソッド
これらのログ・メソッドは、プロダクション・ログに書き込みます。プロダクション・ログは、管理ポータルでコンポーネントの [ログ] タブに表示できます。これらのメソッドは同じパラメータを使用し、ログ・メッセージの種類のみが異なります。
-
LOGINFO() のメッセージの種類は情報です。
-
LOGALERT() のメッセージの種類はアラートです。
-
LOGWARNING() のメッセージの種類は警告です。
-
LOGERROR() のメッセージの種類はエラーです。
-
LOGASSERT() のメッセージの種類はアサートです。
パラメータ : (message)
-
message — ログに書き込まれる文字列。
ビジネス・サービス
ビジネス・サービス・クラスは、外部システムからデータを受信して、プロダクション内のビジネス・プロセスまたはビジネス・オペレーションにそのデータを送信します。ビジネス・サービスでは、アダプタを使用して外部システムにアクセスできます。
OnProcessInput() メソッド
OnProcessInput() メソッドは、受信アダプタからアダプタの ProcessInput() メソッド経由でメッセージを受信し、それをターゲットのビジネス・プロセスまたはビジネス・オペレーションに転送します。ビジネス・サービスでアダプタを指定しない場合、既定のアダプタがメッセージを指定せずに OnProcessInput() メソッドを呼び出し、ビジネス・サービスは外部システムからデータを受信して、それを検証します。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : (message)
-
message — 受信アダプタがビジネス・サービスに送信したデータが含まれるオブジェクト。message には、受信アダプタおよびビジネス・サービスで受け入れられるものであればどのような構造を使用してもかまいません。message は、Message のサブクラスまたは IRISObject である必要はなく、通常はデータベース内に永続化されません。
OnInit() メソッド
OnInit() メソッドは、コンポーネントが起動されるときに呼び出されます。OnInit() メソッドを使用すると、そのコンポーネントで必要な構造を初期化できます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
OnTearDown() メソッド
OnTearDown() メソッドは、ビジネス・ホストが終了される前に呼び出されます。OnTeardown() メソッドを使用すると、構造を解放できます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
ProcessInput() メソッド
受信アダプタがビジネス・サービスの ProcessInput0 メソッドを呼び出し、それを受けて、ProcessInput() メソッドは、カスタム・コードである OnProcessInput() メソッドを呼び出します。
パラメータ : (input)
-
input — 受信アダプタに受け入れられる任意の構造を持つオブジェクト。ProcessInput() メソッドに渡されるパラメータは、永続オブジェクトである必要はありません。
戻り値 : オブジェクト
SendRequestAsync() メソッド
SendRequestAsync() メソッドは、指定されたメッセージをターゲットのビジネス・プロセスまたはビジネス・オペレーションに非同期に送信します。
パラメータ : (target, request [ , description ])
-
target — 要求を受信するビジネス・プロセスまたはビジネス・オペレーションの名前を指定する文字列。target は、コンポーネントのクラス名ではなく、プロダクション定義の Item Name プロパティに指定されているコンポーネント名です。
-
request — ターゲットに送信するメッセージを指定します。request には、Message クラスのサブクラスであるクラスまたは IRISObject クラスを使用します。ターゲットが組み込みの ObjectScript コンポーネントである場合、IRISObject クラスを使用する必要があります。IRISObject クラスを使用すると、PEX フレームワークにより、ターゲットでサポートされているクラスにメッセージを変換できます。ターゲットが組み込みの ObjectScript コンポーネントでない場合は、Message クラスのサブクラスを使用できます。
-
description — メッセージ・ヘッダに説明のプロパティを設定するオプションの文字列パラメータ。
SendRequestSync() メソッド
SendRequestSync() メソッドは、指定されたメッセージをターゲットのビジネス・プロセスまたはビジネス・オペレーションに同期的に送信します。
パラメータ : (target, request [ ,timeout [ , description ]])
-
target — 要求を受信するビジネス・プロセスまたはビジネス・オペレーションの名前を指定する文字列。target は、コンポーネントのクラス名ではなく、プロダクション定義の Item Name プロパティに指定されているコンポーネント名です。
-
request — ターゲットに送信するメッセージを指定します。request には、Message クラスのサブクラスであるクラスまたは IRISObject クラスを使用します。ターゲットが組み込みの ObjectScript コンポーネントである場合、IRISObject クラスを使用する必要があります。IRISObject クラスを使用すると、PEX フレームワークにより、ターゲットでサポートされているクラスにメッセージを変換できます。ターゲットが組み込みの ObjectScript コンポーネントでない場合は、Message クラスのサブクラスを使用できます。
-
timeout — 送信要求をエラーとして扱うまで待機する時間を秒数で指定するオプションの整数。既定値は -1 です。これは永久に待機することを意味します。
-
description — メッセージ・ヘッダに説明のプロパティを設定するオプションの文字列パラメータ。
LOGINFO() メソッド、LOGALERT() メソッド、LOGWARNING() メソッド、LOGERROR() メソッド、および LOGASSERT() メソッド
これらのログ・メソッドは、プロダクション・ログに書き込みます。プロダクション・ログは、管理ポータルでコンポーネントの [ログ] タブに表示できます。これらのメソッドは同じパラメータを使用し、ログ・メッセージの種類のみが異なります。
-
LOGINFO() のメッセージの種類は情報です。
-
LOGALERT() のメッセージの種類はアラートです。
-
LOGWARNING() のメッセージの種類は警告です。
-
LOGERROR() のメッセージの種類はエラーです。
-
LOGASSERT() のメッセージの種類はアサートです。
パラメータ : (message)
-
message — ログに書き込まれる文字列。
Director
Director クラスは、ポーリングされないビジネス・サービスの場合に使用します。つまり、呼び出し間隔でプロダクション・フレームワークによって (受信アダプタ経由で) 自動的に呼び出されることはないビジネス・サービスの場合に使用します。これらのビジネス・サービスは、Director.CreateBusinessService() メソッドを呼び出すことで、カスタム・アプリケーションによって作成されます。
CreateBusinessService() メソッド
CreateBusinessService() メソッドは、指定されたビジネス・サービスを開始します。
パラメータ : (connection, target)
-
connection — 使用している言語の外部言語サーバへの接続を指定する IRISConnection オブジェクト。
-
target — プロダクション定義でビジネス・サービスの名前を指定する文字列。
戻り値 : businessService — 戻り値には、作成されたビジネス・サービス・インスタンスが含まれます。
受信アダプタ
InboundAdapter は、ProcessInput() メソッドを呼び出すことで、外部システムからデータを受信し、そのデータを検証して、ビジネス・サービスに送信します。
OnTask() メソッド
OnTask() メソッドは、ビジネス・サービスの CallInterval プロパティで指定された間隔で、プロダクション・フレームワークによって呼び出されます。OnTask() メソッドは、外部システムからデータを受信し、そのデータを検証して、メッセージに含めてビジネス・サービスの OnProcessInput() メソッドに送信します。message には、受信アダプタおよびビジネス・サービスで受け入れられるものであればどのような構造を使用してもかまいません。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
OnInit() メソッド
OnInit() メソッドは、コンポーネントが起動されるときに呼び出されます。OnInit() メソッドを使用すると、そのコンポーネントで必要な構造を初期化できます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
OnTearDown() メソッド
OnTearDown() メソッドは、ビジネス・ホストが終了される前に呼び出されます。OnTeardown() メソッドを使用すると、構造を解放できます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
LOGINFO() メソッド、LOGALERT() メソッド、LOGWARNING() メソッド、LOGERROR() メソッド、および LOGASSERT() メソッド
これらのログ・メソッドは、プロダクション・ログに書き込みます。プロダクション・ログは、管理ポータルでコンポーネントの [ログ] タブに表示できます。これらのメソッドは同じパラメータを使用し、ログ・メッセージの種類のみが異なります。
-
LOGINFO() のメッセージの種類は情報です。
-
LOGALERT() のメッセージの種類はアラートです。
-
LOGWARNING() のメッセージの種類は警告です。
-
LOGERROR() のメッセージの種類はエラーです。
-
LOGASSERT() のメッセージの種類はアサートです。
パラメータ : (message)
-
message — ログに書き込まれる文字列。
送信アダプタ
送信アダプタ・クラスは、外部システムにデータを送信します。
OnInit() メソッド
OnInit() メソッドは、コンポーネントが起動されるときに呼び出されます。OnInit() メソッドを使用すると、そのコンポーネントで必要な構造を初期化できます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
OnTearDown() メソッド
OnTearDown() メソッドは、ビジネス・ホストが終了される前に呼び出されます。OnTeardown() メソッドを使用すると、構造を解放できます。
抽象メソッド : ユーザが実装する必要があります。
パラメータ : なし
戻り値 : void
Invoke() メソッド
Invoke() メソッドを使用すると、BusinessOperation で、OutboundAdapter に定義されているあらゆるパブリック・メソッドを実行できます。
パラメータ : (methodname, arguments )
-
methodname — アウトバウンド・アダプタに定義されている実行対象のメソッドの名前を指定します。
-
arguments — 指定したメソッドの引数が含まれます。
LOGINFO() メソッド、LOGALERT() メソッド、LOGWARNING() メソッド、LOGERROR() メソッド、および LOGASSERT() メソッド
これらのログ・メソッドは、プロダクション・ログに書き込みます。プロダクション・ログは、管理ポータルでコンポーネントの [ログ] タブに表示できます。これらのメソッドは同じパラメータを使用し、ログ・メッセージの種類のみが異なります。
-
LOGINFO() のメッセージの種類は情報です。
-
LOGALERT() のメッセージの種類はアラートです。
-
LOGWARNING() のメッセージの種類は警告です。
-
LOGERROR() のメッセージの種類はエラーです。
-
LOGASSERT() のメッセージの種類はアサートです。
パラメータ : (message)
-
message — ログに書き込まれる文字列。
Message
Message クラスは、コンポーネント間で送信される永続メッセージのスーパークラス・クラスである抽象クラスです。Message クラスには、プロパティもメソッドもありません。プロパティを追加するには、ユーザが Message クラスのサブクラスを作成します。PEX フレームワークは、Message クラスから派生したオブジェクトに永続性を提供します。