Tibco - 最大流量限制属性

GKN*_*GKN 2 tibco ems tibco-ems

我有一个启用了最大流量限制的流程.该值设置为10.它是一个Asyn进程,用于每天获取数千条消息.我们注意到,在高峰时段,随着EMS服务器队列中消息的增加,tibco进程的性能下降.在Tibo的缓慢与EMS消息的流入增加之间是否存在任何依赖性.如何计算过程的确切流量限制?我们有任何标准程序吗?

noc*_*hum 6

FlowLimit配置设置是BusinessWorks设置,所以我假设你有BusinessWorks引擎是从EMS队列消费消息.

存在流控制的概念是为了确保到BusinessWorks引擎的传入数量不会导致JVM超过其可用内存资源.BusinessWorks通过暂时禁用进程启动器来实现流控制,直到内存中的作业数低于阈值.在基于EMS的流程启动器的情况下MessageConsumer,这会导致关闭,这导致EMS停止向流程传递消息.在高容量消息传递方案中,这将导致EMS服务器上的消息积压.此外,它将导致客户端的预取高速缓存中的任何消息被重新优先化,以便在EMS服务器端重新传递.发生这种情况时,您会注意到您的出站邮件计数大于EMS统计信息中的入站邮件计数.

最好避免进入流控制场景.您当前的FlowLimit参数是否适合您分配JVM的堆大小以及您正在使用的消息有效负载大小?你能增加你的JVM堆大小FlowLimit吗?您是否能够运行多个BusinessWorks应用程序实例从同一队列调度以提高可伸缩性?这些方法可以帮助您扩展和避免消息积压.

  • 可以使用tra文件中的`Engine.ThreadCount`或Administrator中的"Server Settings"选项卡进行更改.我会告诫你,***更多线程并不总是更好***.在某些时候,您会引入资源争用,过多的上下文切换和颠簸,因为CPU必须为各种线程提供时间片.引擎线程的默认值是8,这通常是一个很好的数字.鉴于BW的多任务功能,您不需要或希望流量限制等于线程数.实际上,一个与另一个无关. (2认同)