## コネクションファクトリオブジェクトのプロパティ→
信頼性とフロー制御

このタブは、クライアントランタイムによる Message Queue 制御メッセージの使用 (ブローカの通知) とフロー制御の手段について再指定するために使用します。

メッセージサーバーでの生成されたメッセージの通知 ブローカがプロデューシングクライアントからのメッセージを通知するように指定します。

- true の場合、ブローカは、プロデューシングクライアントからのすべての JMS メッセージ (持続および非持続メッセージ) の受信を通知します。プロデューシングクライアントスレッドはブロックされ、この通知が得られるまで待機します。
- false の場合、ブローカはプロデューシングクライアントからの JMS メッセージ (持続または非持続メッセージ) の受信を一切通知しません。プロデューシングクライアントスレッドはブロックされず、ブローカの通知を待機することもありません。
- 値を指定しなかった場合、ブローカは持続メッセージの受信のみを通知します。プロデューシングクライアントスレッドはブロックされ、これらの通知が得られるまで待機します。

メッセージサーバーでのクライアント通知の通知 ブローカがコンシューミングクライアントの通知を通知するように指定します。

- true の場合、ブローカはコンシューミングクライアントの通知の受信をすべて通知します。コンシューミングクライアントスレッドはブロックされ、このブローカの通知が得られるまで待機します。
- false の場合、ブローカはコンシューミングクライアントの通知の受信を一切通知しません。コンシューミングクライアントスレッドはブロックされず、ブローカの通知を待機することもありません。
- 値を指定しなかった場合、ブローカは AUTO_ACKNOWLEDGE モードと CLIENT_ACKNOWLEDGE モードのコンシューミングクライアントの通知の受信は通知しますが (コンシューミングクライアントスレッドはブロックされ、これらのブローカの通知が得られるまで待機する)、DUPS_OK_ACKNOWLEDGE モードのコンシューミングクライアントの通知の受信は通知しません (コンシューミングクライアントスレッドはブロックされない)。

メッセージサービスの通知タイムアウト (ミリ秒) クライアントランタイムがブローカの通知を待機する最大時間を、ミリ秒単位で指定します。この時間が過ぎると例外がスローされます。デフォルトの値は 0 で、タイムアウトはありません。つまり、クライアントは永続的に待機します。

コネクションフローカウント 測定バッチ内の JMS メッセージの最大数を指定します。クライアントランタイムに配信された JMS メッセージ数がこの値に達すると、配信が一時的に中断され、それまで配信待ち状態だった制御メッセージがある場合はそのメッセージが配信されます。クライアントランタイムからの通知を受け取ると JMS メッセージ配信が再開され、再度指定の数値に達するまで配信処理が行われます。カウント数を 0 に設定すると、測定バッチ内の JMS メッセージの数に制限はなくなります。0 以外の値を設定すると、クライアントランタイムは、JMS メッセージが大量に配信されて Message Queue 制御メッセージがブロックされず、測定バッチ内のクライアントにフローできるように、メッセージフローを測定します。

コネクションフロー制限を有効にする (クライアントランタイムに配信されるコンシュームされないメッセージの数で) 接続フローの制限を有効にするかどうかを指定します。このボックスをチェックした場合、コネクションフロー制限フィールドに正の整数値を指定しなければなりません。

コネクションフロー制限 (コネクション当たりのコンシュームされないメッセージ数) コネクション経由で配信され、クライアントランタイムにバッファしてコンシュームされるまで待機できるメッセージの数に制限を指定します (「コネクションフロー制限を有効にする」をチェックした場合に限って使用する)。コネクションフローカウントによって制御されるフロー測定に従って、クライアントランタイムに配信される JMS メッセージ数が制限値を超えると、メッセージ配信処理は停止します。コンシュームされないメッセージ数が、このプロパティで設定された値より少なくなったときに、配信処理が再開されます。コンシューミングクライアント側の保留メッセージ数が多くなりすぎると、メッセージ処理に時間がかかりメモリ不足が発生しますが、この制限値により、問題を防ぐことができます。

コンシューマフロー制限 (コンシューマ当たりのコンシュームされないメッセージ数) コネクション経由で配信され、クライアントランタイムにバッファできるコンシューマ当たりのメッセージ数に制限を指定します。この制限には 2 つの用途があります。複数のコンシューマキュー配信の状況 (単一のコンシューマに非常に大量のメッセージを送信できない状況) で、コンシューマ間のロードバランスを改善します。また、コネクション上のほかのコンシューマに比べ、あるコンシューマへの配信だけが突出しないようにできます。クライアントランタイムに配信される JMS メッセージの数が任意のコンシューマに対してこの制限を超えると、そのコンシューマへのメッセージの配信は停止します。コンシュームされないメッセージ数が、コンシューマフローのしきい値で設定された値より少なくなったときに、配信処理が再開されます。

コネクションでのすべてのコンシューマにバッファされたメッセージの合計数がコネクションフロー制限を超えた場合、コネクション経由でのメッセージの配信は合計が制限を下回るまで停止することに注意してください。「コンシューマフロー制限」を指定する場合、特別な例外を除いて、「コネクションフロー制限」を設定しなければならないことはほとんどありません。また、「コネクションフロー制限」を有効にする代わりに「コンシューマフロー制限」を設定すると、メッセージフローの測定に対するほとんどのアプリケーションの要件が満たされます。

コンシューマフローのしきい値 (パーセント) クライアントランタイムでバッファされるコンシューマ当たりのメッセージ数をコンシューマフロー制限のパーセンテージとして指定します。この値を下回ると、コンシューマのメッセージの配信が再開します。