## 连接工厂对象属性 >
JMS 消息可靠性和流控制

使用此选项卡，可以重新指定客户机运行时如何使用 Message Queue 控制消息（代理确认）和流控制措施。

产生消息时等待确认 指定代理对来自消息产生方客户机的消息的确认：

- 如果设置为 true，则代理确认接收到来自消息产生方客户机的所有 JMS 消息（持久性和非持久性），消息产生方客户机线程将阻止等待这些确认。
- 如果设置为 false，则代理不确认接收到来自消息产生方客户机的任何 JMS 消息（持久性或非持久性），消息产生方客户机线程将不阻止等待代理确认。
- 如果未指定，则代理只确认接收到持久性消息，消息产生方客户机线程将阻止等待这些确认。

确认消息时等待确认 指定代理对使用方客户机确认的确认：

- 如果设置为 true，则代理确认所有使用方客户机确认，使用方客户机线程将阻止等待这样的代理确认。
- 如果设置为 false，则代理不确认任何使用方客户机确认，使用方客户机线程将不阻止等待这样的代理确认。
- 如果未指定，则代理确认 AUTO_ACKNOWLEDGE 和 CLIENT_ACKNOWLEDGE 模式的使用方客户机确认（而且使用方客户机线程将阻止等待这样的代理确认），但是不确认 DUPS_OK_ACKNOWLEDGE 模式的使用方客户机确认（而且使用方客户机线程将不阻止等待确认）。

确认超时（毫秒） 指定客户机运行时在抛出异常前将等待代理确认的最大时间值（以毫秒为单位）。默认值为 0，表示无超时，即客户机运行时将一直等待。

JMS 消息流控制区块计数（消息数） 指定测量批中的最大 JMS 消息数。当此数目的 JMS 消息传送到客户机运行时时，传送将被暂时挂起，允许传送任何已阻塞的控制消息。当收到客户机运行时通知时，JMS 消息将继续进行传送，直到再次达到计数为止。如果将计数设置为 0，则对测量批中 JMS 消息的数目没有限制。非零设置允许客户机运行时测量消息流，以便 Message Queue 控制消息不被繁忙的 JMS 消息传送阻塞，而且可以在两个测量批之间流到客户机。

限制客户机的 JMS 消息流 指定是否限制客户机的 JMS 消息流（限制传送到客户机运行时的未使用消息数）。如果选中此框，则必须为“JMS 消息流限制”字段指定一个正数。

JMS 消息流限制（每次连接未使用的消息数） 指定可以通过连接传送并在客户机运行时中缓冲、等待被使用的消息数限制（仅在选中“限制客户机的 JMS 消息流”时使用）。当传送到客户机运行时的 JMS 消息数（按照“JMS 消息流控制区块计数（消息数）”控制的流量测量）超过此限制时，消息传送将停止。仅当未使用的消息数目低于使用此属性设置的值时才恢复消息传送。此限制防止用很长时间处理消息的使用方客户机必须处理可能导致它内存不足的大量挂起消息。

用户流限制（每个用户的未使用消息数） 指定每个用户可以通过连接传送并在客户机运行时中缓冲的消息数限制。此限制有两个用途：它可以改进在多用户队列传送情况下用户之间的负载平衡（向任何一个用户发送的消息数都是均衡的），并有助于阻止连接上的任何一个用户重载连接上的其他用户。当传送到客户机运行时的 JMS 消息数超过任何用户的此限制时，将停止传送该用户的消息。仅当该用户的未使用消息数降到用“用户流线程”设置的值以下时，才恢复它。

请注意，如果为连接上所有用户缓冲的消息总数超过了“JMS 消息流限制”，则将停止通过此连接传送消息，直到该总数降到该限制以下。如果指定“用户流限制”，则除最特殊的情况之外几乎不需要设置“JMS 消息流限制”，而且通过设置“用户流限制”而不是启用“JMS 消息流限制”，可以满足大多数应用程序对消息流测量的要求。

用户流阈值（百分比） 以“用户流限制”的百分比指定在客户机运行时中缓冲的每个用户的消息数，低于此数时将恢复用户的消息传送。