1. ホーム
  2. Java

春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション

2022-02-17 12:24:10

atomikos経由で複数のデータソースを設定した2つ以上のspringbootプロジェクトを同じサーバーホストに置き、複数のjava-jarで実行すると、次のエラーが報告されます。

LogException: Log already in use? tmlog in D:\eclipse

エラーの理由
atomikos default log printing: tomcattransaction-logs︵tmlog.lck and tomcat︵transaction-logs︵tmlog0.log

(eclipse で起動した場合は D:\transaction-logs に出力されます。)

複数のプロジェクトが同じログファイルを共有する場合、前のプロジェクトがファイルをロックし、後から開始したプロジェクトは書き込みができなくなります。

ソリューションのアイデア

  • デフォルトのログファイル名を変更します。
  • デフォルトのログファイルのパスの変更。
  • ログ印刷をオフにする。

org.springframework.boot.jta.atomikos.AtomikosProperties.class で特定のプロパティを設定するだけです。

<スパン 解決方法(3つのオプションのうち1つで大丈夫です)。
application.propertiesなどの指定されたプロパティファイルに、以下のコードを追加するだけです。

<スパン ログファイルの名前を変更する(プロジェクト名と一致させることをお勧めします)
spring.jta.atomikos.properties.log-base-name=test

ログファイルのパスを変更する
spring.jta.atomikos.properties.log-base-dir=. /log/test1

<スパン ログ印刷をオフにする(1つだけオン、他はオフ)
spring.jta.atomikos.properties.enable-logging=falseを指定します。