Pentaho Server CE 9.3数据库连接阻塞问题排查咨询
环境信息
- 软件环境:Pentaho Server CE 9.3
- 数据库环境:MySQL、Oracle、SQL Server
问题现象
所有数据库连接突然失效,Pentaho中调度的Jobs和Transformations无法正常执行;同时DBEAVER、SQLDEVELOPER等工具连接数据库也失败,疑似存在大量阻塞的数据库连接。
当前临时方案及无效尝试
重启服务器可恢复,但无法根治。曾尝试增加Windows端口上限,无任何效果。
错误日志示例(路径及文件名已脱敏)
2023-04-13 16:10:01.682 INFO <teste - Insert / update> [/home/---/---/---.ktr] Finished processing (I=5, O=0, R=5, W=5, U=0, E=0)
2023-04-13 16:12:00.357 INFO <PentahoQuartzScheduler_Worker-10> [/home/---/---/---/---.ktr] 开始执行转换 [---]
2023-04-13 16:12:00.608 ERROR <init of SELECT DADOS MYSQL.0 (Thread-3727)> [/home/---/---/---/---.ktr] 发生错误,处理将停止:尝试连接数据库时出错连接失败。请验证所有连接参数并确认已安装合适的驱动程序。
通信链路故障上次成功发送到服务器的数据包是在0毫秒前。驱动程序未从服务器收到任何数据包。
2023-04-13 16:12:00.608 ERROR <init of SELECT DADOS MYSQL.0 (Thread-3727)> [/home/---/---/---/---.ktr] 初始化步骤[SELECT DADOS MYSQL]出错
2023-04-13 16:12:00.620 ERROR <init of INS/UPD ---.0 (Thread-3728)> [/home/---/---/---/---.ktr] 初始化期间发生错误,处理将停止:尝试连接数据库时出错连接失败。请验证所有连接参数并确认已安装合适的驱动程序。
ES错误:网络适配器无法建立连接(CONNECTION_ID=YKDC8ZbJTPCaAMS8ymsO0Q==)2023-04-13 16:12:00.620 ERROR <init of INS/UPD ---.0 (Thread-3728)> [/home/---.ktr] 初始化步骤[INS/UPD ---]出错
2023-04-13 16:12:00.621 ERROR <init of UPDATE ---.0 (Thread-3729)> [/home/---/---/---/---.ktr] 初始化期间发生错误,处理将停止:尝试连接数据库时出错连接失败。请验证所有连接参数并确认已安装合适的驱动程序。
通信链路故障上次成功发送到服务器的数据包是在0毫秒前。驱动程序未从服务器收到任何数据包。
排查方向建议
1. 数据库连接池配置核查
- 检查Pentaho中各数据库连接的连接池参数:最大连接数、最小空闲连接数、连接超时时间、空闲连接回收阈值等,确认是否存在连接池耗尽未释放的情况。
- 排查Transformation/Jobs中是否存在未正确关闭数据库连接的步骤,导致连接池被占满。
2. 数据库侧状态排查
针对三种数据库分别执行状态查询:
- MySQL:执行
SHOW PROCESSLIST查看阻塞连接,排查长时间运行的SQL、锁等待;检查max_connections是否达到上限。 - Oracle:执行
SELECT * FROM V$SESSION WHERE STATUS='BLOCKED'定位阻塞会话,查看processes和sessions参数是否达到配置上限。 - SQL Server:执行
SELECT * FROM sys.dm_exec_sessions WHERE status = 'sleeping'查看闲置会话,检查max_connections配置,同时排查死锁情况。 - 查看数据库自身错误日志,是否有连接拒绝、资源耗尽相关报错。
3. 网络与系统资源排查
- 测试Pentaho服务器与数据库服务器之间的网络稳定性:用
ping、traceroute(Linux)或tracert(Windows)检查丢包、延迟情况。 - 核查防火墙/安全组规则:是否有临时封禁连接的策略,或会话超时时间设置过短导致连接被强制断开。
- 查看服务器系统资源:CPU、内存、磁盘IO是否达到瓶颈,资源耗尽可能导致连接无法建立。
4. Pentaho内部配置与资源泄漏排查
- 检查Quartz调度器配置:是否存在调度任务过于密集,短时间内创建大量数据库连接的情况。
- 排查Transformation/Jobs逻辑:是否有循环执行但未释放连接的代码,或自定义脚本未正确关闭连接。
- 查看Pentaho核心日志(
pentaho-server/logs目录下),是否有连接池耗尽、资源泄漏相关报错。
5. 数据库驱动兼容性验证
确认使用的数据库驱动版本与Pentaho Server 9.3及对应数据库版本兼容,比如MySQL 8.0需匹配mysql-connector-java-8.x版本,避免因驱动不匹配引发连接异常。
内容的提问来源于stack exchange,提问作者Alex Gerson

