应用程序具有负责传递审核日志的JMS队列。应用程序将日志发送到JMS队列,此队列由MDB使用。
但是,发送的消息是大型XML文件,从20 MB到100 MB不等。问题是JMS队列消耗太长时间消耗消息,导致出现OutOfMemory错误。
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
这个答案可能对jguilhermemv没有帮助,只想分享一个想法,为那些可以阅读这篇文章,解决大消息。 首先是尽量不发送大消息,现在我们有两个选项( 但这些需要实现更改,可以在启动时完成,或者如果在后期允许系统实现更改 < /强>):
尝试将日志保存在数据库中,并在JMS消息中仅发送log-id。 (不建议在DB中保存日志,因为大小和保存时间将在以后阶段再次出现问题。)
以文件形式(将它们保存在公共位置)和数据库中的文件名保存日志,并通过JMS共享这些文件名ID。消费者可以在消费后读取该日志文件。