com.atomikos.icatch.SysException: Error in init(): Log already

在项目中使用atomikos时,如果在同一个环境中部署两个以上这种项目,则可能会报出com.atomikos.icatch.SysException: Error in init(): Log already in use异常,这个信息是因为atomikos在默认情况下是将console_file_namelog_base_name设置为默认值:tm.outtmlog0.log,并且会将这两个文件上锁,导致其他线程无法访问,所以当多个项目都未指定这一名称时就会出现上述异常信息

解决办法:

在每一个项目中都指定atomikos的文件名称,修改jta.properties文件中的

com.atomikos.icatch.console_file_name
com.atomikos.icatch.log_base_name

两个属性的值,保证每个项目的名称都不一样

例如:

第一个项目中使用默认值,则自动生成为tm.out、tm.out.lcktmlog0.log、tmlog.log.lck四个文件;

第二个项目中在jta.properties文件中指定属性名称:

com.atomikos.icatch.console_file_name = rm.out

com.atomikos.icatch.log_base_name = rmlog.log

启动服务时就会自动生成rm.out、rm.out.lckrmlog0.log、rmlog.log.lck四个文件;

这时两个项目使用的文件就不会产生冲突。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Failed to obtain JDBC Connection; nested exception is com.atomikos.jdbc.AtomikosSQLException: Connection pool exhausted" 是一个常见的错误信息,它通常表示数据库连接池无法提供足够的连接给应用程序使用。 这个错误可能有以下几个原因: 1. 数据库连接池配置不正确:检查数据库连接池的最大连接数配置是否足够满足应用程序的需求。如果连接数设置过低,可能会导致连接池耗尽。 2. 数据库连接泄漏:应用程序在使用完数据库连接后没有正确地释放连接,导致连接池中的连接无法被重用,最终耗尽连接池资源。 3. 数据库连接超时:如果数据库连接在一段时间内没有被使用,连接池可能会将其关闭,释放资源。当应用程序再次请求连接时,可能会出现连接池耗尽的情况。 4. 数据库服务器负载过高:如果数据库服务器负载过高,无法及时处理应用程序的连接请求,可能会导致连接池无法获取到足够的连接。 为了解决这个问题,你可以尝试以下几个步骤: 1. 检查数据库连接池的配置,确保最大连接数足够满足应用程序的需求。 2. 检查应用程序中是否存在数据库连接泄漏的情况,确保在使用完数据库连接后及时释放连接。 3. 调整数据库连接超时时间,确保连接池中的连接能够被重用。 4. 检查数据库服务器的负载情况,如果负载过高,考虑优化数据库服务器的性能或者增加服务器资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值