异常信息:Error creating bean with name ‘transactionManager’ defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceTransactionManagerAutoConfiguration$JdbcTransactionManagerConfiguration.class]:Unsatisfied dependency expressed through method ‘transactionManager’ parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘org.springframework.core.env.Environment’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
原因:
linux环境 jar包 明明只是一个jar包 启动一次 ,正常应该就是一个进程,但是 发现 实际了Linux上 多出来了三个虚拟的进程 ,并且进程号都一样 ,导致 jdbc 链接实例 有些为null 导致操作数据库失败。
解决:
手动 杀死进程 在重新启动jar包 保证就一个jar包 一个进程,问题解决。目前还没分析具体产生原因
衍生影响:
Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端(In-Memory Data Grid)。
所以当我们 报错的那个虚拟进程执行时 他获得当前的线程 要去关闭锁的时候 ,
因为现在已经不是一个正常的进程 所以他的内存 也是异常的,
导致无法获得正确的需要释放的线程锁 导致报错显示redisson shutdown
当我们 保证是一个 正常的进程 时 redisson 又恢复正常运行了。也就是我们重新启动了一个正常的进程 在这个进程里 处理的问题都是正常的了。
观察 报错的都是同一个进程的。 当时太着急没有 记录下 三个 异常进程号,导致后续日志查看 不方便确认哪个是正常进程。后续注意