现场的weblogic报警,日志报错:
<2016-3-12 上午09时48分23秒 CST> <Warning> <JDBC> <BEA-001129> <Received exception while creating connection for pool "CTDataSource": ORA-01034: ORACLE not available
ORA-27102: out of memoryLinux-x86_64 Error: 12: Cannot allocate memory
Additional information: 26
Additional information: 327684
Additional information: -1610612736
>
<2016-3-12 上午09时48分23秒 CST> <Error> <JDBC> <BEA-001112> <Test "SELECT 1 FROM DUAL" set up for pool "CTDataSource" failed with exception: "java.sql.SQLRecoverableException: IO 错误: Connection reset".>
[ERROR] 2016-03-12 09:48:27 com.comtop.top.core.jodd.executor.DBExecutorProvider (DBExecutorProvider.java:58) - 获取connection失败:weblogic.jdbc.extensions.PoolDisabledSQLException: weblogic.common.resourcepool.ResourceDisabledException: Pool CTDataSource is Suspended, cannot allocate resources to applications..
从日志上看,由于3月12日数据库宕机,导致连接不能使用,weblogic可以设置重连,可惜的是7个节点,有1个节点没有重连成功。结合年前的一次事故,数据库宕机之后,weblogic重连算是成功了,但应用表现的非常慢,最后只有靠重启解决。
weblogic连接池重连设置是高级勾选保留时测试连接,测试频率120s一般不用改动。
结论:weblogic的重连机制不一定靠得住,数据库出问题之后,weblogic节点还是要重启一下。