我的项目使用struts、hibernate和spring、oracle db、WebLogic服务器。
我有一个事务插入了很多表(大约 20 个),并且我很确定它在事务中运行。
现在我发现有时(0.001的概率?)表格没有完全插入, 比如成功插入了 10 个表,而其他表则没有插入。
以下是来自 spring 的错误日志。
ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'] SQLErrorCodesFactory: Error while extracting database product name - falling back to empty error codes org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is java.sql.SQLException: Connection has been administratively disabled. Try later.
当连接被管理禁用时,spring(或 hibernate 的事务管理器或 weblogic)会做什么。
最佳答案
我不是 Weblogic 专家,但听起来与池管理有关...... 您能否检查一下您的 Weblogic 服务器是否有任何修复(不知道您使用的是什么版本)...... 在某些情况下,您的池无法足够快地填充,因此没有可用的连接...我认为一旦数据库足够快地响应,池应该能够返回到标准上下文...(只是猜测)
关于java - 当我的连接被管理禁用时提交的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9208778/