我们使用IBM MQ6.1。并使用IBM API将消息发送到队列。 由于我们需要发送大量的消息,想知道我们是否可以使用多线程并将消息发送到同一个队列。 有什么建议吗?我们使用IBM MQ6.1。我们可以使用多线程将消息发送到队列吗?
1
A
回答
1
绝对如此。您可以拥有与内存一样多的CPU,并允许CPU使用。如果你想看到性能改进,每个线程都需要它自己的连接句柄。如果使用单个连接句柄,则来自多个线程的所有GET和PUT活动都将通过连接句柄进行同步。如果使用多个连接句柄,则GET和PUT活动可以并行进行。有关更多详细信息,请参阅WMQ使用Java手册中的Multithreaded programs。
只要确保像MAXUPROCS这样的操作系统内核设置被设置为允许WMQ运行足够的线程来接收连接并且像MAXHANDS和MAXCHANNELS这样的WMQ设置被调高以适应负载。请记住,工作单元是线程范围的,因此每个线程独立于其他的同步点 - 例如,当您在线程内发出COMMIT时,它只会承担特定线程放置的消息,假设它具有专用连接。队列有一个DEFSOPT(默认共享选项)的属性,但这涉及有多少个输入句柄可以处于活动状态。即使您打开队列以进行独占输入,也可以有多个线程写入它。
另外,截至2011年9月,WMQ的v6.x将会报废。现在开始计划让v7继续保留在受支持的版本上。如果您正在使用WMQ客户端连接,请升级客户端以及QMgr。 v7客户端可与v6 QMgr正常工作,并可独立升级。当然,它与v6.x QMgr一起使用时仅支持v6功能。您可以下载v7客户端为SupportPac MQC7。
相关问题
- 1. 我们可以在QuickBlox中向离线用户发送系统消息吗?
- 2. 我可以发送多少条消息到队列?
- 3. 我们可以使用websockets发送远程密钥事件吗?
- 4. 我们可以在多线程环境中使用Hashmap吗?
- 5. 我们可以使用System.Data.OracleClient将List <>发送到Oracle存储过程吗?
- 6. 我们可以在优先队列中使用字符值吗?
- 7. 我可以使用Boost消息队列进行线程通信吗
- 8. 我可以直接向队列发送消息请求吗?
- 9. 是否可以使用STOMP将消息发送到多个队列?
- 10. Java:将消息发送到多线程的JMS队列
- 11. NATS发布者可以将单个消息发送到多个队列吗?
- 12. 我们可以在Amazon SQS fifo队列中使用特定的MessageGroupId获取队列消息吗?
- 13. 我可以监视线程的消息队列的大小吗?
- 14. 我们可以使用asp.net和c#从localhost发送邮件吗?
- 15. 我们可以让rabbitmq队列不处理消息
- 16. 我们可以通过Android GCM向所有注册用户发送消息吗?
- 17. 我们可以在PL/SQL中使用线程吗?
- 18. 即使应用程序在iphone sdk中关闭,我们可以发送消息给用户吗?
- 19. 我可以使用SynchronizationContext将工作发布或发送到当前正在运行消息泵的线程吗?
- 20. 我们可以使用AJAX和XHTML吗?
- 21. 黑莓 - 我们可以使用我们的应用程序更改主题吗?
- 22. 我们可以使用JavaScript
- 23. 我们可以用python创建rabbitmq队列吗
- 24. 我们可以通过模拟电话线发送数据吗?
- 25. 使用AMQP/RabbitMQ将消息发送到独占队列
- 26. PHP推送到消息队列;使用多线程的Python客户端进程?
- 27. 我们可以在wcf数据服务中使用msmq消息
- 28. 我们可以在java中使用多线程概念和WatchService API吗?
- 29. 我们可以有RabbitMQ的队列中的多个用户?
- 30. MSMQ发送消息到远程队列
我想我没有把问题正确..我正在写一个Java程序来连接队列和发送消息。并试图了解是否可以使用多线程方式将消息发送到远程IBMMQ服务器上的同一队列。 – user412918 2010-08-06 14:02:33
是的。我就是这样解释这个问题的。我已经更新了答案,以解释许多线程都需要自己的连接,并提供了一个指向讨论此主题的手动部分的链接。 – 2010-08-07 15:26:17