有系统X_A,使用spring,jboss容器,连接数据库DB_A。
系统X_A有定时调度,导入数据至数据库DB_A的表T_A。
有系统X_B,使用spring,jboss容器,连接数据库DB_B。
系统X_B有定时调度,同步DB_A的T_A的数据至DB_B的T_B。X_B使用jdbc连接X_A查询T_A。
当X_A的定时导入处理未执行完,X_B的定时同步处理就启动时,X_A正在执行的事务出现异常,导致数据不完整,但是不报任何错误。
例:
X_A应该导入数据row1~row10。在执行到row5时,X_B启动了连接,然后关闭。最终X_A只导入了row5~row10,row1~row4都丢了。
请问原因是什么?是X_A的事务管理方式有问题?还是DB_A的最大连接数有问题?还是X_B多配一个DB_A的jndi,同步时使用jndi连接会好些?求解答,多谢了!