总结一下遇到的问题,为遇到同样问题的同学提供些帮助。
SpringBoot部署到Weblogic后,发现DB的事务处理有问题。Debug程序发现程序的事务已经提交了,但要执行的SQL文没有被执行到。
原来的SpringBoot的DB连接配置是Spring datasource到Oracle DB,事务也是Spring的。
部署到Weblogic后发现DB的数据怎么都更新不了。
一通乱查,发现Weblogic的JTA管理是如下图
看这个图就能发现,程序只是把事务提交到了Weblogic的TM了。查了一下好像也不能关闭这个Weblogic的事务管理。
那也就只能把DB的配置在Weblogic来做,配置JNDI,修改SpringBoot的DB连接方式如下。
配置文件
spring:
datasource:
jndi-name: jdbc/abcd
weblogic:
url: 't3://localhost:7001'
jndiName: jdbc/abcd
webLogicName: weblogic
password: weblogic123
新建DataSource类
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.C