我想增加IBM MQ MQGET吞吐量,并注意到在某些情况下可以使用QueueManager MQOO_READ_AHEAD选项。通过这种方式,在首次获取执行后,许多记录从服务器传输到客户端库,并准备在下一个GET上读取。我想控制此预读消息数的大小。我注意到有一些配置属性,例如MaximumSize,PurgeTime和UpdatePercentage,但是如何在Java客户端代码中设置/控制这些值?
最佳答案
使用MessageBuffer节下的客户端配置文件mq client.ini来设置控制客户端ReadAhead消息缓冲区的行为的属性:
https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.con.doc/q016890_.htm
这是指向文档的链接,该文档描述了客户端配置文件以及MQ Java客户端代码尝试从中加载文件的系统上的位置:
https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.con.doc/q016840_.htm
我不知道在应用程序中以编程方式指定MaximumSize,PurgeTime和UpdatePercentage属性的方法。
更新:
您可以使用以下名称将三个MessageBuffer属性设置为Java系统属性:
com.ibm.mq.cfg.MessageBuffer.MaximumSize
com.ibm.mq.cfg.MessageBuffer.PurgeTime
com.ibm.mq.cfg.MessageBuffer.UpdatePercentage
因此,可以在调用应用程序时在Java命令上使用-D标志或通过应用程序代码本身内的
System.setProperty(String, String)
调用来设置这些-只要在对JMS的任何MQ类/对Java API调用的类被创建之前就设置了属性制作。关于java - 如何在Java中设置IBM MQ GET Reading MaximumSize,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46998070/