gcc 4.72 c89
我正在使用这本书作为参考来做mq_* posix消息队列。
The Linux Programming Interface by Michael Kerrisk page 1071
然而,在这个示例代码片段中,我注意到他们打开一个消息队列,从队列中获取一些属性。然而,他们未能关闭它。
这难道不是一种坏做法吗?因为如果不返回给操作系统,所有消息队列描述符都可能被用完,因此可能会发生资源泄漏。我猜当进程结束时,if会自动将所有资源返回给操作系统。但是,如果一个进程在一台服务器上全天候运行,那么这可能会产生重大影响。
非常感谢您的建议,
int main(int argc,
有没有办法清除传出队列。似乎我不能做到这一点与MMC管理单元,当我试图清除它在代码中,我得到了一个错误Format name is invalid它正在发送消息的计算机不存在,所以他们永远不会被发送,但是队列填满了最大存储空间的MSMQ,所以每次我的应用程序尝试发送另一个消息时,我得到insufficient resources异常。
我尝试了以下格式,它们都失败了,并出现了异常format name is invalid
DIRECT=OS:COMPUTER\private$\queuename
操作系统:计算机\私有$\队列名
计算机\私有$\队列名
尝试向TIBCO Ems队列发送消息时,出现异常(如下所示)。
javax.jms.ResourceAllocationException: Queue limit exceeded
at com.tibco.tibjms.Tibjmsx.buildException(Tibjmsx.java:523)
at com.tibco.tibjms.TibjmsxSessionImp._publish(TibjmsxSessionImp.java:1390)
at com.tibco.tibjms.TibjmsMessageProducer._publish(TibjmsMessagePro
我有一种过度思考的倾向,但在任何地方都找不到任何关于这方面的东西。大多数有发送限制的IRC网络/通道实现它的方式是,在一段时间内只能发送X条消息(在网络外的情况下,5 in 5s),这意味着我要么必须在消息之间有很长的延迟,要么实现一种方法来确保我发送的消息不会超过这个时间段,同时仍然快速地发送消息。我该如何着手做后者呢?
(我使用Java完成此操作,但问题显然不依赖于此,因此答案中引用的任何代码都可以是任何语言。)