我们正在将Websphere MQ 7.5与Javax-JMS类一起使用,并且存在一些性能问题,这些问题是不可重现的。
我已将性能问题与这两个方法调用createSession
和send
隔离开来。
这两个电话有时需要花费大量时间(每条信息大约300毫秒)。通常会有Object.wait
次呼叫导致速度减慢。所以也许jms在等待资源。
有时我可以发送500条消息而不会出现任何问题,但突然之间它真的很慢。问题不在我们的代码中,因为之前的每一步都不会花费太多时间。只有这两个JMS方法调用。
所以我的问题是,突然性能下降的原因是什么?
是否可以使用queuemanager-logs进行调试?
任何想法都有帮助。
修改:
我们正在使用客户端绑定,并且SHARECNV设置设置为10.
答案 0 :(得分:2)
我已将性能问题与这两个方法调用隔离开来 createSession并发送。
我希望你没有为每个放入队列的消息做一个createSession方法调用,因为如果你这样做,那就是一个可怕的设计。
执行1次createConnection方法调用和1次createSession方法调用,然后发送所有消息。如果您有多个线程,则使用连接池。