wso2 esb 监控 worker_pool_queue_length != -1 时排队的消息数
wso2 esb monitor number of messages queued when worker_pool_queue_length != -1
在 wso2 ESB 5.0.0 中,我们按照 here.
的解释,使用 passthru-http.properties
我想知道是否有办法在 运行 ESB 中获取 worker_pool_queue_length 属性 的值。好吧,不是文件中设置的值,而是任何时刻存储在队列中的元素的实际值。因为我们没有使用默认的 -1 值。我们正在探索使用绑定队列。
从 here 开始,我一直在尝试使用 jmx
中的以下 bean
- org.apache.synapse/Transport/passthru-http-receiver
- org.apache.synapse/Transport/passthru-http-sender
而这个属性,
QueueSize, number of messages currently queued. Messages get queued if
all the worker threads in this transport thread pool are busy.
但它的值始终为 0。而且我确信它应该更高。当我们使用 Jmeter 向 ESB 发送消息时。并且正在创建新的工作线程,因此队列中有元素。无论我们多么努力地访问 esb,我们都可以看到所有线程都在工作,连接被拒绝......但始终是 0。
此外,将 log4 变为 DEBUG 并不幸运。
任何想法,我怎样才能得到排队消息的数量?
WSO2 EI 使用 java ThreadPoolExecutor 实现 [1] 生成新线程来处理请求,如果没有足够数量的线程可用,它还会处理消息排队。因此,您似乎无法通过调试日志获取排队消息的数量。
如果您有兴趣分析排队消息的数量,我建议您进行堆转储并进行分析。它将指示排队消息的数量。
[1]-http://tutorials.jenkov.com/java-util-concurrent/threadpoolexecutor.html
在 wso2 ESB 5.0.0 中,我们按照 here.
的解释,使用 passthru-http.properties我想知道是否有办法在 运行 ESB 中获取 worker_pool_queue_length 属性 的值。好吧,不是文件中设置的值,而是任何时刻存储在队列中的元素的实际值。因为我们没有使用默认的 -1 值。我们正在探索使用绑定队列。
从 here 开始,我一直在尝试使用 jmx
中的以下 bean- org.apache.synapse/Transport/passthru-http-receiver
- org.apache.synapse/Transport/passthru-http-sender
而这个属性,
QueueSize, number of messages currently queued. Messages get queued if all the worker threads in this transport thread pool are busy.
但它的值始终为 0。而且我确信它应该更高。当我们使用 Jmeter 向 ESB 发送消息时。并且正在创建新的工作线程,因此队列中有元素。无论我们多么努力地访问 esb,我们都可以看到所有线程都在工作,连接被拒绝......但始终是 0。
此外,将 log4 变为 DEBUG 并不幸运。
任何想法,我怎样才能得到排队消息的数量?
WSO2 EI 使用 java ThreadPoolExecutor 实现 [1] 生成新线程来处理请求,如果没有足够数量的线程可用,它还会处理消息排队。因此,您似乎无法通过调试日志获取排队消息的数量。
如果您有兴趣分析排队消息的数量,我建议您进行堆转储并进行分析。它将指示排队消息的数量。
[1]-http://tutorials.jenkov.com/java-util-concurrent/threadpoolexecutor.html