ご使用のブローカー・ドメインを通してフローするメッセージを保護することは重要です。 これは、アプリケーション生成メッセージおよびコンポーネント間通信で内部的に使用されるメッセージの両方に当てはまります。 コンポーネント間で内部的に使用されるメッセージでは、必ず WebSphere MQ プロトコルが使用されます。アプリケーション・メッセージでは、サポートされるすべてのトランスポート・プロトコルを使用できます。
アプリケーション・メッセージおよび内部メッセージが WebSphere MQ を通過する際に、以下の二つの技法でメッセージの損失を防ぎます。
メッセージが持続的なものである場合、WebSphere MQ は、これをディスクにコピーすることによって、 障害が発生してもメッセージが失われないようにします。
アプリケーションは、同期化された作業単位 (UOW) でメッセージが処理されるように要求できます。
これらのオプションを使用する方法については、WebSphere MQシステム管理ガイド を参照してください。
WebSphere Event Broker コンポーネントは、WebSphere MQ メッセージを使用して、 ブローカー・プロセスとサブシステム、および構成マネージャーとユーザー・ネーム・サーバーの間でイベントやデータの通信を行います。コンポーネントは WebSphere MQ 機能を活用して、 メッセージが失われることがないようにします。内部メッセージの損失を防ぐために、 何か付加的なステップを実行して WebSphere MQ や WebSphere Event Broker を構成する必要はありません。
アプリケーション・メッセージの送達が非常に重要である場合は、 使用されるアプリケーション・プログラムとメッセージ・フローを、 決してメッセージが失われないように設計する必要があります。 使用される技法は、アプリケーションによって使用されるプロトコルによって異なります。
WebSphere MQ メッセージング製品は、メッセージ持続性を提供します。 システム内のメッセージの長時間持続を定義し、メッセージの保全性を保証します。非持続メッセージは、システムまたはキュー・マネージャーの障害イベントの際に失われます。 持続メッセージは、障害が発生した場合に、必ず回復します。
入力ノードが入力キューからメッセージを読み取る場合、 デフォルトのアクションは、WebSphere MQ メッセージ・ヘッダー (MQMD) で定義された持続性を使用します。 この持続性は、メッセージを作成するアプリケーションか、 または入力キューのデフォルトの持続性のいずれかによって設定されます。メッセージはこの持続性を、後続のメッセージ処理ノードで変更されるのでない限り、メッセージ・フロー全体で保存します。
出力ノードでメッセージ・フローが終了する際に、 それぞれのメッセージの持続性値を指定変更することができます。 このノードには、それが出力キューに置かれる際に、必須値またはデフォルト値のいずれかとして、 それぞれのメッセージのメッセージ持続性を指定することのできるプロパティーがあります。 デフォルトを指定した場合は、メッセージの書き込み先であるキューに定義された持続性値を、 メッセージは採用します。
メッセージが Publication ノードを通過する場合、サブスクライバーに送られたメッセージの持続性は、 サブスクライバーの登録オプションによって決定されます。 サブスクライバーが持続メッセージの配信を要求しており、 明示または暗黙 (継承された) ACL によってそれを行う許可がサブスクライバーに付与されている場合には、 既存の持続性プロパティーに関係なく、メッセージは持続的に配信されます。 また、要求された非持続メッセージの配信がユーザーにある場合には、 既存の持続性プロパティーに関係なく、メッセージは非持続的に配信されます。
メッセージ・フローのデフォルトのアクションは、 ブローカーによって制御されるトランザクションの同期点の下で着信メッセージを処理します。 このため、何らかの理由で処理に失敗したメッセージは、 ブローカーによってバックアウトされることになります。 このメッセージは同期点の下で受信されたため、 失敗したメッセージは入力キュー上に復元され、もう一度処理できるようになります。 処理が失敗した場合には、このメッセージ・フローに適切なエラー処理プロシージャー (メッセージ・フローを構成した仕方、またはブローカーのいずれかによって定義される) が実行されます。
入力ノード処理の詳細については、入力ノードにあるエラーの管理を参照してください。
持続性のある SCADA メッセージがパブリッシュされる場合は、 クライアントが受け入れることのできる、最も高いレベルに格下げされます。 これは、状況によっては、メッセージが非持続になる場合もあることを意味します。