我正在管理运行 tomcat6 和应用程序的服务器,该应用程序由我们的程序员编写。它使用 ActiveMQ。应用程序将 ActiveMQ 队列数据保存在 $JAVA_TEMP/activemq-data 中。 Debian Squeeze 上的 Tomcat6 在每次重启时都会清除 $JAVA_TEMP(默认情况下为/tmp/tomcat6-temp)。程序员说,这些数据必须在服务重启之间保持不变。 Java servlet 保存持久数据的合适位置是什么?恕我直言,它不是 $JAVA_TEMP 目录。或者程序员可能是对的,我应该更改默认的 Debian tomcat 行为?
最佳答案
ActiveMQ 提供持久化适配器来存储服务器重启时所需的消息。有不同的策略来持久化消息。
基于文件的持久性存储:在此策略中,消息存储在文件存储中。您可以在 ActiveMQ 配置中指定目录。见下例,更多配置请引用:http://activemq.apache.org/amq-message-store.html
<broker brokerName="broker" persistent="true" useShutdownHook="false">
<persistenceAdapter>
<amqPersistenceAdapter directory="activemq-data" maxFileLength="32mb"/>
</persistenceAdapter>
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
</broker>
基于数据库的持久性存储:在此策略中,消息存储在数据库中,如果您的消息很重要,请使用它。有关配置 JDBC 的信息 - 数据库持久性,请参阅 http://activemq.apache.org/jdbc-support.html
关于tomcat - 在哪里保存 ActiveMQ 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11376825/