h1. TibcoEMSFlowControl
In some situations, message producers may send messages more rapidly than message consumers can receive them. The pending messages for a destination are stored by the server until they can be delivered, and the server can potentially exhaust its storage capacity if the message consumers do not receive messages quickly enough. To avoid this, EMS allows you to control the flow of messages to a destination. Each destination can specify a target maximum size for storing pending messages. When the target is reached, EMS blocks message producers when new messages are sent. This effectively slows down message producers until the message consumers can receive the pending messages.
Enabling Flow Control
The flow_control parameter in tibemsd.conf enables and disables flow control globally for the EMS server. When flow_control is disabled (the default setting), the server does not enforce any flow control on destinations. When flow_control is enabled, the server enforces any flow control settings specified for each destination. See Chapter 7, Using the Configuration Files for more information about working with configuration parameters.
When you wish to control the flow of messages on a destination, set the flowControl property on that destination. The flowControl property specifies the target maximum size of stored pending messages for the destination. The size specified is in bytes, unless you specify the units for the size. You can specify KB, MB, or GB for the units. For example, flowControl = 60MB specifies the target maximum storage for pending messages for a destination is 60 Megabytes.
Enforcing Flow Control
The value specified for the flowControl property on a destination is a target maximum for pending message storage. When flow control is enabled, the server may use slightly more or less storage before enforcing flow control, depending upon message size, number of message producers, and other factors. Setting the flowControl property on a destination but specifying no value causes the server to use a default value of 256KB.
When the storage for pending messages is near the specified limit, the server blocks all new calls to send a message from message producers. The calls do not return until the storage has decreased below the specified limit. Once message consumers have received messages and the pending message storage goes below the specified limit, the server allows the send message calls to return to the caller and the message producers can continue processing.
If there are no message consumers for a destination, the server does not enforce flow control for the destination. That is, if a queue has no started receivers, the server cannot enforce flow control for that queue. Also, if a topic has inactive durable subscriptions or no current subscribers, the server cannot enforce flow control for that topic. For topics, if flow control is set on a specific topic (for example, foo.bar), then flow control is enforced as long as there are subscribers to that topic or any parent topic (for example, if there are subscribers to foo.*).
Flow Control:
有时候EMS messgage producer 发送message会很快而message consumer则相对比较慢,然后就会有message pending在EMS QUEUE, EMS Server就有可能把存储内存耗尽,为了避免这种情况,EMS 提供了destination(queue, topic)的flow control, 每个destination可以指定一个最大的message size for EMS server 存储message,当destination里面pending的message达到了这个最大值以后, EMS server会阻塞message producer 发送新的message,直到message consumer能够接受pending的message
Enable Flow Control:
1. enable flow_control在EMS SERVER level, 修改 tibemsd.conf里面flow_control=enable
2. enbale destination 的flow_control, for queue: addprop queue TEST.QUE flowControl=10KB
Enforce Flow Control:
destination 的flowControl property指定了在这个destination上面pending的message的最大存储大小,default flowControl messsage size=256KB
当destination pending的message size接近指定的flowControl值时, EMS Server会阻塞message producer send message,直到pending mesage小于指定的flowControl值。
如果queue没有listner,或者topic没有subscriber和durable subsciber, 那么在queue和topic上设定的flowControl是不起作用的.
Flow Control, Threads and deadlock:
- 大小: 16.4 KB
分享到:
相关推荐
【WindowsFormsTestTIBCO_C#_TIBCOEMS_client_】这个项目是一个基于C#开发的Windows桌面应用程序,主要用于测试TIBCO EMS(Enterprise Message Service)客户端的连接和功能。TIBCO EMS是一个高性能的消息中间件,它...
### TIBCO Enterprise Message Service (EMS) 用户指南关键知识点解析 #### 一、TIBCO EMS简介 **TIBCO Enterprise Message Service (EMS)** 是一款高性能的企业级消息中间件产品,由TIBCO Software Inc.开发。它...
### TIBCO Enterprise Message Service (EMS) 5.1 用户指南关键知识点 #### 一、简介 TIBCO Enterprise Message Service (简称 TIBCO EMS) 是一个高性能的消息中间件平台,用于实现分布式系统中的可靠消息传递。...
### TIBCO Enterprise Message Service (EMS) C 语言接口说明 #### 一、引言 TIBCO Enterprise Message Service(TIBCO EMS)是TIBCO Software Inc.提供的一款高性能消息中间件产品,用于实现分布式应用程序之间的...
为TIBCO Enterprise Message Service(简称TIBCO EMS)用户提供的详尽指导文档。TIBCO EMS是一款先进的消息中间件,它允许应用程序之间通过可靠、高性能的消息传递进行通信。在软件发布4.3版中,该用户指南提供了...
Tibco EMS与BEA WebLogic Server的集成是通过WebLogic控制台将Tibco EMS配置为外部独立的JMS提供者来实现的。这允许WebLogic应用通过标准JMS API与Tibco EMS交互,从而实现消息的发送与接收。 #### Tibco EMS与...
### TIBCO EMS培训 - 基础管理配置 #### JMS概览 - **消息发送**:消息发送是通过消息中间件实现的一种通信机制,它使得应用间能够通过发送和接收消息的方式进行数据交换。这种机制对于构建分布式系统特别有用。 -...
由于RTView对EMS的监控依赖于EMS的三个jar包,如果未安装EMS,可以通过将\\192.168.52.93\scm-tools\tibco\Enterprise RTView Software5.7.0下的tibco目录复制到本地,例如d:\tibco\clients\java,并设置环境变量...
【Tibco EMS一些实用想法】 Tibco EMS(Enterprise Message Service)是Tibco公司提供的一款企业级消息中间件,它在分布式系统中扮演着关键角色,负责数据的高效、可靠传输。EMS作为一个异步通信平台,允许应用程序...
【Tibco EMS 英文资料 不好不发】 Tibco EMS(Enterprise Message Service)是Tibco软件公司提供的一款高效、可扩展的企业消息中间件。它为分布式应用程序提供了实时、可靠的异步通信能力,使得系统之间的数据交换...
### Tibco Enterprise Message Service (TIBCO EMS) 安全目标详细解读 #### 安全目标简介 在《TIBCO Enterprise Message Service™ 版本 4.3.0 安全目标》文档中,详细介绍了TIBCO Enterprise Message Service...
基于Python使用TIBCO EMS的代码实例涉及到了如何在Python中嵌入Java代码来连接并操作TIBCO Enterprise Message Service(EMS)。TIBCO EMS是一个企业消息服务产品,它支持Java消息服务(JMS)标准协议,适用于高性能...
Tibco Designer支持多种技术栈,如EMS(Enterprise Message Service)、BW(BusinessWorks)以及HAWK(High Availability and Widely Extensible Kernel),这些组件共同构成了Tibco的强大功能。 1. **Tibco EMS**:...
了解如何创建和配置JMS队列、主题以及如何使用Tibco EMS(Enterprise Message Service)是必不可少的。 再者,Tibco BW支持Web服务标准,如SOAP和RESTful API,因此,理解如何在Java中创建和调用Web服务,以及WSDL...
- **产品名称与版本**:TIBCO Enterprise Message Service (简称EMS),软件发布版本为6.0。 - **发布时间**:2010年7月。 TIBCO Enterprise Message Service 是一款高级的消息中间件解决方案,旨在为企业级应用提供...
Tibco EMS是一款高性能、基于JMS(Java Message Service)的消息中间件,广泛应用于企业级分布式系统中,用于实现可靠的消息传递和解耦。通过这个Web GUI,用户无需通过命令行接口即可完成对Tibco EMS服务器的日常...
通过TIBCO提供的PPT文件“TIBCO-ESB-SOA介绍”,读者可以深入了解TIBCO公司的产品和服务,以及它们在实际场景中的应用。这份资料详细阐述了TIBCO ESB如何实现SOA,以及BusinessWorks如何帮助构建和管理业务流程。...
根据提供的文件信息,我们可以归纳出一系列与TIBCO BusinessWorks™相关的知识点,这些知识点主要集中在软件版本、使用许可、功能特性以及技术文档等方面。 ### TIBCO BusinessWorks™概述 - **版本信息**:该文档...
本文档为TIBCO RV中文Java文档,提供了TIBCO RV Java参考软件版本8.4的详细信息。文档涵盖了软件的使用条款和条件、许可协议、版权信息、商标信息、软件功能、操作系统平台支持、技术 поддержка等方面。 ...