Component Integrator ベースのワーク・パフォーマーの開発
Java™ または Java Message Service (JMS) コンポーネント・キューをベースにしたワーク・パフォーマーを作成することができます。いずれのタイプのワーク・パフォーマーの場合でも、何らかの準備作業が必要になります。
Component Integrator ベースのワーク・パフォーマーを開発するには、次の操作を実行します。
JMS コンポーネント・キューを作成する前に、JMS キューへのアクセスを設定します。
- Java Naming and Directory Interface (JNDI) InitialContextFactory 情報を見つけます。
- JMS 用のコンポーネント・キューを構成する前に、ワークフロー・メッセージを送信する JMS キューの名前を把握しておく必要があります。
Java コンポーネント・キューを作成する前に、カスタム Java クラスをデプロイします。
- Java クラスは、次の要件を満たす必要があります。
- クラスにはパラメーターなしのコンストラクターが必要です。
- メソッドはパブリックでなければなりません。
- メソッドには、許容されるコンポーネントのオペレーション・パラメーターのタイプのみを含めることができます。
- (オプション) 以下の手順で、Java 認証・承認サービス (JAAS) 認証モジュール、および使用するクラス用のログイン構成ファイルを作成します。
- クラスがアクセスするシステム用の LoginModule クラスを作成します。LoginModule クラスの作成と使用については、JAAS ドキュメント (セキュリティー情報) を参照してください。
- カスタム Java クラスと対応する LoginModule クラスを保持する、JAR ファイルを作成します。
- アプリケーション・サーバーの管理ツールを使用して、LoginModule クラスを指定する LoginContext セクションを含む JAAS ログイン構成ファイルを構成します。
「認証および JAAS」を参照してください。
- カスタム・コンポーネントに必要なすべてのアイテムを含んだ JAR ファイルを格納するコード・モジュールを作成します。
- デプロイ済みのカスタム Java クラスまたは JMS キュー用のコンポーネント・キューを作成および構成します。1 つのクラスまたは JMS キューのみを、1 つのワークフロー・システム・コンポーネント・キューに関連付けることができます。ただし、追加のコンポーネント・キューに別の名前を割り当てることで、特定のクラスまたは JMS キュー用に複数のコンポーネント・キューを構成できます。コンポーネント・キューの作成については、コンポーネント・キューの作成を参照してください。
- Java コンポーネント・キューを構成する場合:
- キュー・オペレーションをデプロイ済みのカスタム Java コンポーネントのパブリック・メソッドに関連付けます。
- 必要であれば Java クラス・メソッドの各パラメーターを、コンポーネント・キュー用に定義された対応するオペレーション・パラメーターに関連付けます。(この関連付けは、メソッドにパラメーターが指定されていない場合は該当しません。)
- ポーリング・レートを指定する場合:
ポーリング・レートは、実行可能なワークがある場合のデフォルトのポーリング・レートを示します。ポーリング・レート設定は、Component Manager がコンポーネント・キューでサービスを要求しているワーク・アイテムをポーリングするレートを決定します。このレートは、通常、数秒 (ミリ秒で指定) に設定されます。
- バッチ・サイズを指定する場合:
バッチ・サイズは、実行時に照会する、バッチあたりのステップ・エレメントの数を指定します。推奨される最小値は 10 です。
- オペレーション・パラメーターのタイプを指定する場合:
コンポーネント・メソッドに誤ったパラメーター・タイプをインポートしようとすると、インポートが失敗します。特定のタイプのマッピング情報については、「コンポーネントのオペレーション・パラメーターのタイプ」を参照してください。
重要: 必ず変更内容をコミットしてください。 - Java コンポーネント・キューを構成する場合:
- ワークフローを作成します。Process Designer ツールを使用して、次の操作を実行します。
- 少なくとも 1 つの Java または JMS コンポーネントを含む、ワークフロー・ステップを追加します。これで、コンポーネント・キューのオペレーションがステップに関連付けられます。
- 各操作のパラメーター値を式として定義します。この式には、コンポーネント・キューから取得したワーク・アイテムのフィールド値を含めることができます。
例については、「Content-Extended Operations の例」を参照してください。
- 統合されたコンポーネント・ステップを使用し、コンポーネントのオペレーションをテストするワークフローを起動します。
コンポーネント・キューの処理方法
Component Manager は、ワークフロー・システムと Java または JMS サービス・アダプター間の処理を管理します。サービス・アダプターが初期化されると、コンポーネントの認証が実行されます。
Java コンポーネント・キュー
ワーク・アイテムが Java コンポーネント・キューを使用するステップに渡されると、Java サービス・アダプターは次の操作を実行します。
- Java コンポーネント・クラスをロードします。
- Java コンポーネントに関連付けられているインターフェースを実行します。
Java サービス・アダプターは、オペレーション・パラメーターの値をオペレーションに関連付けられているメソッドに渡します。オペレーション・パラメーターの値は、次の項目によって定義されます。
- 関連するコンポーネント・キューの構成。
- ワークフローに (Process Designer を使用して) 指定された式。式には、取得されたワーク・アイテムのフィールド値を含めることができます。
- Java コンポーネントが Java コンポーネント・インターフェースを実行するのを待機してから、サービス・アダプターに応答します。
- ワーク・アイテムのフィールド値を更新します。
- ワーク・アイテムをディスパッチします。このディスパッチには、以下の操作が含まれます。
- 更新されたフィールド値を保存します。
- ワーク・アイテムを後続のステップにディスパッチすることで、ステップを完了します。詳細については、ステップの完了を参照してください。
JMS コンポーネント・キュー
ワーク・アイテムが JMS コンポーネント・キューを使用するステップに渡されると、JMS サービス・アダプターは次の操作を実行します。
- オペレーション・パラメーターの値を設定します。これらの値は、次の項目によって定義されます。
- 関連するコンポーネント・キューの構成。
- ワークフローに (Process Designer を使用して) 指定された式。式には、取得されたワーク・アイテムのフィールド値を含めることができます。
- オペレーション・パラメーターの値を stepElement オブジェクトに渡します。
- 該当するステップの stepElement オブジェクトに対して Marshal を実行して、stepElement オブジェクトを表す XML 文字列に変換します。注: フォーマットされた XML 文字列エレメントによる JMS コンポーネント・ステップ値の表現方法については、「StepElement XML スキーマ定義」を参照してください。
- stepElement オブジェクトを表す XML 文字列をサービス・アダプター用に構成されている外部 JMS キューに送信します。
- ワーク・アイテムは更新されません。JMS コンポーネント・キュー処理の場合、ワーク・アイテムのフィールド値は読み取り専用で利用できます。
- ワーク・アイテムを後続のステップにディスパッチすることで、ステップを完了します。詳細については、ステップの完了を参照してください。