このセクションでは、コラボレーション・オブジェクトの 変更方法について説明します。コラボレーション・オブジェクトのポート・バインディングまたはプロパティーを 変更する理由としては、次のことが考えられます。
コラボレーション・オブジェクトを変更するには、System Manager の「統合コンポーネント・ライブラリー」フォルダーまたは「ユーザー・プロジェクト」フォルダーで、「コラボレーション・オブジェクト」フォルダー内の コラボレーション・オブジェクトをダブルクリックします。
コラボレーション・オブジェクトには、グラフィック表示とツリー表示の 2 つの表示の方法があります。次のセクションでは、これらの表示およびそれぞれの利点について説明します。
コラボレーション・オブジェクトのグラフィック表示は、新規コラボレーション・オブジェクトの作成後にデフォルトで示される表示です。図 57 に示されているように、グラフィック表示では、コラボレーション・オブジェクトを示すアイコンが 中央に表示され、コラボレーション内の各ポートを示すアイコンが その外側に放射状に示されます。この表示は、ビジネス・プロセスの「フロー」を示すのに便利です。ビュー・ペインで各ポートをドラッグ・アンド・ドロップして、コラボレーション通信の方向を示す場所にそれらを置くことができます。例えば、トリガー・ビジネス・オブジェクトを受信するポートを ペインの左側に置き、宛先アプリケーションへビジネス・オブジェクトを送信する ポートをペインの右側に置くことができます。
図 57. コラボレーション・オブジェクトのグラフィック表示
「ツリー表示」タブをクリックすると、グラフィック表示からコラボレーション・オブジェクトのツリー表示へ 切り替えることができます。図 58 に示されているように、ツリー表示では、コラボレーション・オブジェクトを示すアイコンが 階層ツリーの一番上に表示され、各ポートを示すアイコンが その下に分岐して示されます。この表示ではビジネス・プロセスの「フロー」はあまりわかりませんが、各ポートおよびそれらにバインドされたコンポーネントが整然と表示されるので、再構成する必要がある特定のポートを容易に見つけることができます。多数のポートを持つテンプレートを基にしたコラボレーション・オブジェクト の場合、グラフィック表示では非常に複雑な表示になるため、この表示が特に役立ちます。コラボレーション・オブジェクトのツリー表示でアイコンの位置を 変更することはできません。
コラボレーション・ポートは、コラボレーションがビジネス・オブジェクトを送受信するインターフェースです。ポートによってサポートされるビジネス・オブジェクトのタイプを交換するには、コラボレーション・オブジェクト・ポートをさまざまなコンポーネントに バインドして構成します。
コラボレーション・オブジェクト・ポートのバインディングは、コラボレーション・オブジェクトの作成の説明に従い ウィザードを使用して最初にコラボレーション・オブジェクトを作成する際に、実行できます。また、コラボレーション・オブジェクトの作成後にポートのバインディングを 編集することもできます。グラフィック表示でポート・バインディングを編集するには、ポートのアイコンをダブルクリックするか、ポートのアイコンを右マウス・ボタンでクリックして コンテキスト・メニューから「ポートをバインド」を選択します。ツリー表示でポート・バインディングを編集するには、ポートのアイコンを右マウス・ボタンでクリックして コンテキスト・メニューから「ポートをバインド」を選択します。
コネクターや他のコラボレーション・オブジェクトのポートなど、内部コンポーネントへコラボレーション・ポートをバインドするには、「タイプ」ペイン内の「内部」というラベルの ラジオ・ボタンをオンにしたまま、内部ポート・バインディングの構成を参照してください。
ウェブ・サーブレットなどの外部プログラマチック・エンティティーに コラボレーション・ポートをバインドするには、「タイプ」ペイン内の「外部」というラベルの ラジオ・ボタンをオンにして、外部ポート・バインディングの構成を参照してください。
コネクターまたは別のコラボレーション・オブジェクトのポートへ コラボレーション・ポートをバインドするには、以下の手順を実行します。
図 59 に、内部バインディング・タイプのポート構成ダイアログを示します。
図 59. 内部コラボレーション・オブジェクト・ポートの構成
「ビジネス・オブジェクト定義」フィールドに 表示されているビジネス・オブジェクト定義タイプをサポートする コンポーネントのみがダイアログにリストされます。予期したコンポーネントが表示されない場合は、それが指定のタイプではないか (その場合は、「バインド先」ラジオ・ボタンを変更する必要があります)、あるいはコンポーネントがビジネス・オブジェクト定義をサポートしていません。「バインド先」ラジオ・ボタンが適切な コンポーネント・タイプに設定されているにも関わらず、予期したコンポーネントが表示されない場合は、そのコンポーネントの定義を変更して ビジネス・オブジェクト定義に対するサポートを追加し、その後、ポート構成ダイアログを起動します。
コラボレーション・オブジェクトを始動するには、すべてのポートをバインドする必要があるため、ポートのバインドが完了するまでコラボレーション・オブジェクトを実行する ことはできません。
コラボレーション・テンプレートの中には、ビジネス・ロジックのオプション・コースをサポートするポートが 定義されているものもあります。例えば、多くのコラボレーション・テンプレートは、操作が成功したことを確認するために、宛先アプリケーションで作成されたばかりのエンティティーを検索できるように 設計されています。多くの場合、この種の振る舞いはオプションであり、そのコラボレーションのコラボレーション固有プロパティーで構成できます。コラボレーションを始動するには、前述の説明に従って、コラボレーション・オブジェクトのポートをすべてコンポーネントに バインドする必要があります。したがって、オプションの振る舞いを利用するつもりがない場合でも、それをサポートするためのポートを構成する必要があります。その場合は、未使用のコンポーネント (PortConnector など) に ビジネス・オブジェクト定義のみに対するサポートを追加し、オプションの機能を使用しないようにコラボレーション・プロパティーを構成します。
コネクターまたは別のコラボレーション・オブジェクトのポートへ コラボレーション・ポートをバインドするには、以下の手順を実行します。
「ビジネス・オブジェクト・タイプ」ダイアログが表示されたら、ドラッグ・アンド・ドロップしたビジネス・オブジェクトが、それを変換するマップ内でソース・オブジェクトであるか 宛先オブジェクトであるかに応じて、「ソース・ビジネス・オブジェクト」または「宛先ビジネス・オブジェクト」ラジオ・ボタンを選択します。
図 60 に、外部バインディング・タイプのポート構成ダイアログを示します。
図 60. 外部コラボレーション・オブジェクト・ポートの構成
外部プログラマチック・エンティティーとの統合を実装する方法の詳細については、「アクセス開発ガイド」を参照してください。
コラボレーションの一般プロパティーは、オブジェクトの基になるテンプレートを開発者がどう設計したかにかかわりなく、すべてのコラボレーション・オブジェクトに属すプロパティーです。これは、システム全体でのコラボレーション・オブジェクトの振る舞いに 影響します。
コラボレーション・オブジェクトの一般プロパティーを変更するには、以下の手順を実行します。
表 15. コラボレーション・オブジェクトの一般プロパティー
プロパティー名 | 指定可能な値 |
---|---|
作成のテンプレート | コラボレーション・オブジェクトの基になるテンプレートの読み取り専用名 |
有効トランザクション・レベル | なし、最小限の努力、最大限の努力、または緊急 |
最小トランザクション・レベル | コラボレーション・テンプレートの設計に応じて、なし、最小限の努力、最大限の努力、または緊急 |
システム・トレース・レベル | 0 - トレースなし
1 - コラボレーション操作 2 - およびコラボレーション・イベント 3 - および状態トランザクション 4 - および着信/発信メッセージ 5 - およびメッセージの詳細な内容 |
コラボレーション・トレース・レベル | 0 から 5 |
E メール通知アドレス | 任意の有効な E メール別名 |
クリティカル・エラーの場合は一時停止 | オンまたはオフ |
並行イベントの最大数 | 0 から 9999 |
転送中状態でサービスの呼び出しを持続 | オンまたはオフ |
リカバリー・モード | 「常時」または 「据え置き」 |
暗黙的なデータベース・トランザクション | オンまたはオフ |
最大イベント容量 | 1 から 2147483647 までの整数 |
ブロッキング・タイプ | オンまたはオフ |
イベント分離 | オンまたはオフ |
この読み取り専用テキスト・フィールドには、コラボレーション・オブジェクトの基になる コラボレーション・テンプレートの名前が表示されます。
有効トランザクション・レベルは、すべてのコラボレーション・オブジェクトの 最大トランザクション・レベルの最高値と、オブジェクトにバインドされたすべての コネクターの最大トランザクション・レベルの最低値との間の範囲です。
特定のトランザクション・レベルがサポートされていないコネクターにバインドする必要がある場合は、コラボレーションの有効トランザクション・レベルを下げることができます。
有効トランザクション・レベルを変更するには、「有効トランザクション・レベル」ドロップダウン・リスト から希望の値を選択し、「OK」をクリックします。
最小トランザクション・レベルは、コラボレーション・テンプレートおよびそれを基にするすべての コラボレーション・オブジェクトのトランザクション・レベルの最低値を指定します。
例えば、コラボレーション・テンプレートの開発者が テンプレートに対して「最大限の努力」の最小トランザクション・レベル を指定した場合は、そのテンプレートを基にしたすべてのオブジェクト が「最大限の努力」または「緊急」で稼働する必要があります。有効トランザクション・レベルに関するセクションで 説明されているように、コラボレーション・オブジェクトにバインドされた すべてのコンポーネントが有効トランザクション・レベルをサポートしている 必要があります。最小トランザクション・レベルを使用すると、コラボレーション・テンプレートの開発者は、テンプレートを基にしたコラボレーション・オブジェクトを実行する インターフェース全体の最低トランザクション・レベルを指定できます。
コラボレーション・オブジェクトを構成する際、「最小トランザクション・レベル」フィールドは 読み取り専用です。これは、コラボレーション・テンプレートでしか変更できません。
コラボレーション・テンプレートの変更の詳細については、「コラボレーション開発ガイド」を参照してください。
コラボレーションの実行に関する情報がサーバー出力で報告されるように コラボレーション・オブジェクトを構成することができます。そのためには、「システム・トレース・レベル」ドロップダウン・メニュー で希望の値を選択します。表 16 に、さまざまなレベルおよびそこで報告される情報のタイプを示します。
システム・トレース・レベル | 報告される情報 |
---|---|
0 - トレースなし
| このレベルでは情報はトレースされません。 |
1 - コラボレーション操作
| コネクターからのビジネス・オブジェクトの受信およびシナリオの開始を トレースします。 |
2 - およびコラボレーション・イベント
| レベル 1 のメッセージと、順方向実行とロールバックの両方を含めた 各シナリオの開始および完了を印刷します。 |
3 - および状態トランザクション
| レベル 1 および 2 のメッセージと、各シナリオの決定ブロックまたは アクション・ノードの実行を印刷します。 |
4 - および着信/発信メッセージ
| レベル 1 から 3 までのメッセージと、各シナリオによる 各ビジネス・オブジェクトの送信と受信を印刷します。 |
5 - およびメッセージの詳細な内容 | レベル 1 から 4 までのメッセージと、処理中のビジネス・オブジェクトの構造を 各属性の値とともに印刷します。 |
コラボレーションの開発者は、テンプレート固有のトレースで コラボレーション・テンプレートをコード化します。システム・トレース (システム・トレース・レベルを参照) はコラボレーション・ランタイム全般に関するトレース情報を提供しますが、コラボレーション・トレースは、特定のコラボレーションに関する情報を示します。例えば、次のようになります。
コラボレーションのトレース・レベルを設定するには、「コラボレーション・トレース・レベル」ドロップダウン・メニューで 0 から 5 までの希望の値を選択します。
特定のコラボレーションの異なるトレース・レベルでどのような情報が 報告されるかを確認するには、そのコラボレーション・テンプレートの 資料を参照してください。
コラボレーション・テンプレートを変更し、コラボレーション・トレースを実装する方法の詳細については、「コラボレーション開発ガイド」を参照してください。
特定のコラボレーション・オブジェクトに関連するエラーが発生した 場合に E メール通知が送信されるように、コラボレーション・オブジェクトを構成することができます。
インターフェース固有の管理が望ましい場合は、この機能を使用すると、管理が容易になります。例えば、あるサイトに、WebSphere InterChange Server 自体に関連するエラーに責任を負う管理者、顧客アカウント同期インターフェースに特に責任を負う管理者、オーダー処理インターフェースに特に責任を負う管理者 がそれぞれいるような場合です。
「E メール通知アドレス」フィールドに、エラー通知の送信先となる SMTP 準拠の E メール・アドレスを入力してください。コンマ区切りで複数のアドレスを入力できます。システムで E メール通知を使用できるようにする方法の詳細については、System Manager を使用した E メール通知プロパティーの構成および「システム管理ガイド」を参照してください。
「E メール通知アドレス」フィールドでの値の設定 以外にも、E メール通知を送信するタイミングについてさまざまな設定が、多数のコラボレーション・テンプレートに用意されています。どのくらいの設計が可能かはコラボレーション・テンプレートの設計で 決まるので、各コラボレーション・テンプレートの E メール通知機能については、それぞれの資料を参照してください。
コラボレーションがコネクターにビジネス・オブジェクト要求を送信したときに、コネクターによるビジネス・オブジェクト要求の処理を妨げるエラーが 発生する場合があります。例えば、次のようなエラーがあります。
これらのタイプのエラーが発生すると、コラボレーションがコネクターへ 要求を送信しても、その問題のためにフローが失敗します。問題を解決するまで、送信されたすべての要求について同じことが起こり、その結果、トランザクションのボリュームが大きくエラーの継続時間が長い場合には、インターフェースで多数のフローが失敗することになります。
クリティカル・エラーのために要求が失敗した後はコネクターへの要求の送信を停止するように、コラボレーション・オブジェクトを構成することができます。そのためには、「クリティカル・エラーの場合は一時停止」チェック・ボックスをオンにします。
クリティカル・エラー、クリティカル・エラーに対するコラボレーション・オブジェクトの対応、およびこの機構の機能の詳細については、「システム管理ガイド」を参照してください。
複数のイベント・トリガー・フローを並行して処理するように、コラボレーション・オブジェクトを構成することができます。それにより、インターフェースのスループットが向上します。これを行うには、「並行イベントの最大数」ドロップダウン・メニューで 0 から 9999 までの数を指定して、コラボレーション・オブジェクトで並行処理するイベント数を設定します。
このコラボレーション機能の利点を完全に活用するには、同様の振る舞いをするインターフェースに関わる他のコンポーネントも構成する 必要があります。詳細については、イベントにより起動されるフローの並行処理の実装を参照してください。
コラボレーションが、バインドされている宛先コネクターに ビジネス・オブジェクト要求を送信してから、それぞれのアプリケーションで要求が正常に処理されたかどうかの応答を受け取るまで の間にエラーが発生する場合もあります。コネクターが要求を処理できなかった場合は、エラーを解決してから 要求を再び処理する必要があります。しかし、コネクターが要求を正常に処理し、InterChange Server へ処理成功の通知を送信するプロセス中に エラーが発生した場合、InterChange Server は通知を受け取りません。要求の状態に関する最終レコードには、まだ要求を処理する必要があると 示されます。この不正確な状態レコードによって、要求は二度処理され、データが重複することになります。
非トランザクション・コラボレーションの構成時にこの問題への方策を 講じるには、「転送中状態でサービスの呼び出しを持続」チェック・ボックスをオンにします。これにより、InterChange Server は、エラーが発生した場合に、宛先アプリケーションへ転送中のビジネス・オブジェクト要求を保持します。システムがリカバリーしたときに要求は送信されないので、宛先アプリケーションで要求が二度処理されるリスクが少なくなります。次に、Flow Manager を使用して要求および宛先アプリケーションを調べ、エラーが発生する前に要求が正常に処理されたかどうかを判別することができます。正常に処理された要求は破棄し、正常に処理されなかった要求は再実行依頼する 必要があります。
この種の転送関連の障害を処理するために、プログラマチックな方策を講じることもできます。詳細については、「コラボレーション開発ガイド」で、サービス呼び出しトランスポート例外の処理に関する説明を参照してください。
前のリリースでは、致命的なエラーが発生すると、システムを再始動したときに、状態の発生時に処理中だったすべてのフローがリカバリーされました。すべてのフローが永続的な保管から読み取られ、処理が再実行依頼されました。そのようなフローが多数ある場合は、メモリーへイベントを取り出すことによってシステム・メモリーがほぼ完全に 消費され、メモリー不足に関連する別のシステム・エラーが発生することもありました。また、InterChange Server がリカバリー処理を完了するまで、各ツールを使用してシステムを効率的に管理することができませんでした。
リリース 4.0.0 では、「リカバリー・モード」ドロップダウン・メニューを 値「据え置き」に設定することにより、コラボレーション・オブジェクトの リカバリーを据え置くことができるようになりました。このようにして、リカバリーを据え置くようコラボレーション・オブジェクト を構成すると、致命的なシステム・エラーの発生時に進行中だったフローは 失敗したフローとして扱われ、システムの再始動後すぐにはリカバリーされなくなります。管理者は、システムの再始動後に Flow Manager を使用してフローを再実行依頼 することができます。また、任意の管理アクションを、リカバリー措置の前に実行できます。
リカバリーの据え置きの必要性は、リリース 4.2.0 で導入された、最適化されたリカバリー方法によって減少しました。サーバーは、進行中のトランザクションのビジネス・オブジェクト・データ全体を メモリーへ読み取るのではなく、永続的な保管内でビジネス・オブジェクトを 見つけるために必要な情報だけを読み取ります。リカバリーの据え置きも使用できますが、この新しい最適化されたリカバリー方法 があれば、その必要はないでしょう。
構成中のコラボレーション・オブジェクトの基になる コラボレーション・テンプレートがトランザクション・データベース・ロジックを 実装する場合は、暗黙と明示のいずれかのトランザクション・ブラケット に対してコラボレーション・オブジェクトを構成する必要があります。開発者が記述したコードによってトランザクション・セマンティクスが 明示的に処理されるようにコラボレーションが開発された場合は、「暗黙的なデータベース・トランザクション」チェック・ボックスをオフにしておく必要があります。ただし、コラボレーションがデータベース・トランザクションの明示的な管理で 開発されていない場合は、「暗黙的なデータベース・トランザクション」チェック・ボックスを オンにする必要があります。
暗黙および明示的なトランザクション・ブラケットの詳細については、「コラボレーション開発ガイド」 を参照してください。
InterChange Server が受信したビジネス・オブジェクトは、処理のためメモリー内のキューに入れられます。リリース 4.2.0 以前は、インターフェースで トランザクションのボリュームが大きく、処理率が低い場合に、多数のビジネス・オブジェクトがキューに入れられ、それによって InterChange Server で致命的なメモリー不足が発生することがありました。
コラボレーション・オブジェクトの最大イベント容量を構成することによって、メモリー不足のリスクを減らすことができます。これを行うには、「最大イベント容量」フィールドで、コラボレーション・オブジェクトについてキューに入れるイベントの最大数 を指定します。システムは、このプロパティーで構成された数より多いイベントを メモリー内のキューに入れることはしません。コラボレーション・オブジェクトのブロッキング・タイプ プロパティーをどう構成するかによって、システムは、コラボレーションの新規ビジネス・オブジェクトの受信に対して 異なる対応をします。
このプロパティーの有効な値の範囲は、1 から 2147483647 です。
「ブロッキング・タイプ」プロパティーの詳細については、ブロッキング・タイプを参照してください。
コネクター定義のフロー制御プロパティーの詳細および Connector Configurator を使用してコネクター定義を変更する方法については、コネクターの構成を参照してください。
フロー制御に関するシステム・プロパティーの詳細については、「システム管理ガイド」を参照してください。
ブロッキング・タイププロパティーは、最大イベント容量プロパティーとともに使用して、コラボレーションへのビジネス・オブジェクトのフローを調整します。
コラボレーション・オブジェクトの構成時に 「ブロッキング・タイプ」チェック・ボックスをオンにした場合、コラボレーションのメモリー内のキューに入れられたイベント数が 「最大イベント容量」プロパティーで指定された数と 等しくなると、コラボレーションへのビジネス・オブジェクトの送信を担当するコネクター・コントローラーが、送信を停止します。コラボレーションのキュー内のイベント数が、「最大イベント容量」プロパティーで指定された数と 等しくなくなると、コネクター・コントローラーは、コラボレーションへの イベントの送信を再開します。
コラボレーション・オブジェクトの構成時に 「ブロッキング・タイプ」チェック・ボックスをオフにした場合、コラボレーションのメモリー内のキューに入れられたイベント数が 「最大イベント容量」プロパティーで指定された数と 等しくなると、コネクター・コントローラーによってコラボレーションへ 送信された新規イベントは、データベース内に永続的に保管されます。その後、現在コラボレーションのキュー内にあるイベントが処理され、イベントがデータベースからメモリーへ読み取られます。
「最大イベント容量」プロパティーの詳細については、最大イベント容量を参照してください。
フロー制御に関するシステム・プロパティーの詳細については、「システム管理ガイド」を参照してください。
イベント分離により、2 つのコラボレーションが同じデータを並行して処理しないことが保証されます。場合によっては、複数のコラボレーションが同じタイプのビジネス・オブジェクトを処理することがあります。あるイベントが到着すると、特定のコラボレーションが起動されます。このコラボレーションが実行を開始すると、その実行中は、このコラボレーションが、InterChange Server 内でそのビジネス・オブジェクトのインスタンスに対する唯一のアクセス権を持ちます。同じデータに関連する別のイベントが到着した場合、InterChange Server は、実行中のコラボレーションが最初のイベントの処理を完了するまで、新たに到着したイベントをキューに入れます。
デフォルトでは、「イベント分離」チェック・ボックスにはチェック・マークが付いています。設定は実行時に変更できますが、更新されたプロパティーは、処理されていない新規イベント (例えば、まだ WebSphere MQ または WIPQ にあるイベント) に対してのみ有効です。すでに処理中のイベントに対しては、新しい値は適用されません。
イベント分離には複数のコラボレーション・オブジェクトが関与しているので、1 つのイベントに対してイベント分離をオフにした場合、その他のイベントに関してイベント分離が正しく機能しなくなります。イベント分離を有効にするには、同じソース、宛先コネクター、およびビジネス・オブジェクト参照を持つすべてのコラボレーション・オブジェクトに対して、イベント分離を使用可能にする必要があります。
コラボレーション開発者は、実行時に実行されるビジネス・プロセス・ロジックに作用する 独自のプロパティーをコラボレーションが個別に持てるように、コラボレーション・テンプレートを設計できます。これにより、非常に柔軟なアーキテクチャーが実現され、実装固有の要件に合わせたコラボレーション・テンプレートのカスタマイズも 可能になります。
コラボレーション・オブジェクトのテンプレート固有のプロパティー を変更するには、以下の手順を実行します。
コラボレーション・テンプレートに固有の各プロパティーおよび それらに有効な値については、コラボレーション・テンプレートの資料を参照してください。
テンプレートへのプロパティーの追加またはコラボレーション・テンプレート内の既存のプロパティーの使用法の変更については、「コラボレーション開発ガイド」を参照してください。