com.atomikos.recovery.LogException: Log already in use?
程序员文章站
2022-05-23 13:01:48
...
如果两个或多个springboot项目,都通过atomikos配置了多数据源,且放在同一Tomcat下运行,报错:
com.atomikos.recovery.LogException: Log already in use? tmlog in D:\eclipse\transaction-logs\
出错原因:
atomikos默认日志打印:tomcat\transaction-logs\tmlog.lck 和 tomcat\transaction-logs\tmlog0.log
(如果在eclipse中启动,则打印在D:\eclipse\transaction-logs\)
导致多项目共用同一日志文件,前面的项目将会锁定文件,后面启动的项目将会无法写入。
解决思路:
- 修改默认日志文件名称;
- 修改默认日志文件路径;
- 关闭日志打印。
具体设置org.springframework.boot.jta.atomikos.AtomikosProperties.class中的属性即可
解决方案(三选一即可):
在application.properties或其他指定的属性文件中加入如下代码即可。
- 修改日志文件名称(建议名称最好与项目名保持一致)
spring.jta.atomikos.properties.log-base-name=test
- 修改日志文件路径
spring.jta.atomikos.properties.log-base-dir=./log/test1
- 关闭日志打印(只开启一个,其他关闭)
spring.jta.atomikos.properties.enable-logging=false
推荐阅读
-
开启Nginx时端口被占用提示:Address already in use
-
关于tomcat启动时报错Address already in use: JVM_Bind
-
启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法
-
RuntimeError: Address already in use
-
win7端口号被占用Address already in use bind 解决方案
-
Address already in use: bind端口被占用的多种原因以及解决方案
-
端口号被占用解决方案 address already in use:jvm_bind
-
Address already in use: JVM_Bind:80 两种解决方案
-
[转] Address already in use: JVM_Bind错误的解决
-
「Python」Linux环境下启动Flask应用时失败,Error:Address already in use