4

プログラマーが作成したアプリケーションで tomcat6 を実行するサーバーを管理しています。ActiveMQ を使用しています。アプリケーションは ActiveMQ キュー データを $JAVA_TEMP/activemq-data に保存します。Debian Squeeze の Tomcat6 は、再起動するたびに $JAVA_TEMP (デフォルトでは /tmp/tomcat6-temp) をクリアします。プログラマーは、このデータはサービスの再起動間で永続的でなければならないと言います。javaサーブレットが永続データを保持するのに適切な場所はどこですか? IMHO $JAVA_TEMP ディレクトリではありません。または、プログラマーが正しいので、デフォルトの Debian tomcat の動作を変更する必要がありますか?

4

2 に答える 2

2

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を参照してください。

于 2012-07-07T16:59:40.383 に答える
0

Java サーブレットのストレージといえば、スケーラビリティーが頭に浮かびます。通常、Java サーブレットは、垂直方向のスケーリングのために、一度に複数のサーバー (Tomcat インスタンスなど) にデプロイできるように構築および設計されています。したがって、経験則として、可能な限りデータベース ストレージを使用することをお勧めします。特定のケースでは、単一のサーバーを実行しているように見えますが、必要なファイル システム上の任意の場所を使用できます。おそらく、NAS/SAN にデータを保存したいと思うでしょう。

ActiveMQ は、永続化アダプターを介してほとんどのストレージ オプションに対応できます。

このリンクでは、ActiveMQ が永続性を処理する方法とその構成方法について説明しています。これは豊富なドメインであり、多くの要件と、どのように設定したいかによって異なります。

于 2012-07-08T07:06:49.463 に答える