一、数据库服务未启动
问题描述:数据库服务(如MySQL、Oracle)未运行,导致WebLogic无法建立连接。
诊断方法:在CentOS服务器上执行systemctl status mysql(MySQL)或systemctl status postgresql(PostgreSQL)命令,查看服务状态。
解决方法:若服务未启动,执行systemctl start mysql(或对应数据库命令)启动服务;若需开机自启,执行systemctl enable mysql。
二、防火墙/网络配置阻止连接
问题描述:CentOS防火墙或网络策略拦截了WebLogic与数据库之间的通信。
诊断方法:
ping <数据库服务器IP>;sudo firewall-cmd --list-ports(查看是否开放数据库端口,如MySQL的3306、Oracle的1521)。sudo firewall-cmd --zone=public --add-port=<数据库端口>/tcp --permanent(永久生效),然后sudo firewall-cmd --reload重新加载规则。三、数据库用户权限不足
问题描述:WebLogic配置的数据库用户没有访问目标数据库的权限。
诊断方法:登录数据库,执行SHOW GRANTS FOR 'weblogic'@'%'(MySQL)或SELECT * FROM dba_sys_privs WHERE grantee = 'WEBLOGIC';(Oracle),查看用户权限。
解决方法:授予用户必要权限,例如MySQL执行GRANT ALL PRIVILEGES ON database_name.* TO 'weblogic'@'%'; FLUSH PRIVILEGES;;Oracle执行GRANT CONNECT, RESOURCE TO weblogic;。
四、WebLogic连接池配置错误
问题描述:连接池的URL、用户名、密码或驱动类名配置错误,导致无法连接。
诊断方法:
DOMAIN_HOME/servers/server_name/logs/server.log),查找“Cannot load driver class”或“Invalid database URL”等错误。jdbc:mysql://<数据库服务器IP>:3306/database_name;Oracle:jdbc:oracle:thin:@<数据库服务器IP>:1521:ORCL);mysql-connector-java.jar、ojdbc8.jar)已放置在WebLogic的lib目录(/opt/weblogic/oracle/middleware/wlserver/server/lib)中。五、数据库连接泄漏
问题描述:应用程序未正确关闭数据库连接,导致连接池中的连接被耗尽。
诊断方法:
finally块中关闭连接(connection.close());六、连接超时设置不合理
问题描述:数据库操作时间超过WebLogic配置的超时时间,导致连接被强制释放。
诊断方法:查看WebLogic日志中是否有“Forcibly releasing inactive resource”(连接超时)或“weblogic.transaction.internal.TimedOutException”(事务超时)错误。
解决方法:
七、驱动兼容性问题
问题描述:使用的JDBC驱动版本与WebLogic版本不兼容,导致连接失败。
诊断方法:查看WebLogic官方文档(如Oracle Support文档),确认驱动版本是否支持当前WebLogic版本(如Oracle 19c驱动需匹配WebLogic 14.1.1及以上版本)。
解决方法:下载并替换兼容的驱动程序(如从Oracle官网下载对应版本的ojdbc8.jar),替换WebLogic lib目录中的旧驱动。