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