当我的连接被管理禁用时提交的事务
我的项目使用struts,hibernate和spring,oracle db,WebLogic服务器。
我有一个事务插入了很多表(大约 20 个),并且我非常确定它在事务中运行。
现在我发现有时(0.001的概率?)表没有完全插入, 比如成功插入了10张表,而其他的则没有。
以下是 spring 的错误日志。
ExecuteThread:队列为“8”:“weblogic.kernel.Default(自调整)”] SQLErrorCodesFactory:提取数据库产品名称时出错 - 回退到空错误代码 org.springframework.jdbc.support.MetaDataAccessException:提取DatabaseMetaData时出错;嵌套异常是 java.sql.SQLException:连接已被管理禁用。稍后再试。
当连接被管理禁用时,spring(或 hibernate 的事务管理器或 weblogic)会做什么。
My project uses struts,hibernate and spring,oracle db ,WebLogic server.
I have a transaction inserting a lot of tables(about 20),and i'm pretty sure of its running in a transaction.
Now I found that sometimes(a probability of 0.001?) the table isn't inserted completely,
like inserted 10 tables successfully and the others didn't.
Below are the error log from 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.
what's spring ( or hibernate's transaction manager or weblogic) will do when a connection is administratively disabled.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不是 Weblogic 专家,但听起来与池管理有关......
您能否检查一下您的 Weblogic 服务器是否有任何修复(不知道您使用的是什么版本)......
在某些情况下,您的池无法足够快地填充,因此没有可用的连接...我认为一旦数据库足够快地响应,池应该能够返回到标准上下文...(只是猜测)
I am not a Weblogic expert , but sounds related to pool management ...
Could you check for any fixes with your Weblogic server (don't know what version you are using)....
Under some circumstances your pool can't filled quickly enough , so no connections available.... I think that the pool should be able to come back to a standard context as soon as the database answers quickly enough...(just a guess)