springboot多数据源管理(atomikos)之多项目在同一Tomcat启动报错的解决方案

当多个SpringBoot项目使用Atomikos配置多数据源并部署在同一Tomcat下时,可能会遇到日志文件冲突的问题。本文详细解释了这一问题的原因,并提供了三种有效的解决方案:修改日志文件名、修改日志文件路径以及关闭日志打印。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果两个或多个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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值