错误:
javax.jms.ResourceAllocationException: Usage Manager Memory Limit reached
<systemUsage>
<systemUsage sendFailIfNoSpaceAfterTimeout="2000">
<memoryUsage>
<memoryUsage limit="52 mb" />
</memoryUsage>
<storeUsage>
<storeUsage limit="10 gb" />
</storeUsage>
<tempUsage>
<tempUsage limit="5 gb" />
</tempUsage>
</systemUsage>
</systemUsage>
解决方案:
根据每个队列配置的内存之和来定义memoryUsage的值
<persistenceAdapter>
<!-- 队列中消息数据略大,消息产生次数少,不频繁,可丢失;此队列由DTS-SERVER消费,如果DTS-SERVER宕机后,无法消费此队列则-->
<!-- 当队列内存占满后,消息保存到文件系统-->
<policyEntry queue="com.yougou.logistics.dts.client_error_queue" queuePrefetch="100" producerFlowControl="true" memoryLimit="20mb">
<pendingQueuePolicy>
<fileQueueCursor/>
</pendingQueuePolicy>
<deadLetterStrategy>
<sharedDeadLetterStrategy processNonPersistent="false" />
</deadLetterStrategy>
</policyEntry>
<policyEntry queue="com.yougou.logistics.dts.logger_queue" queuePrefetch="100" producerFlowControl="true" memoryLimit="5mb">
<pendingQueuePolicy>
<vmQueueCursor/>
</pendingQueuePolicy>
<deadLetterStrategy>
<sharedDeadLetterStrategy processNonPersistent="false" />
</deadLetterStrategy>
</policyEntry>