PDI-CE 9.4转换Shared objects file不支持变量问题求助
PDI-CE 9.4 共享对象文件变量失效问题解决方法
临时快速解决方案
- 改用环境变量传递路径:通过
Set Environment Variables步骤将共享文件路径写入系统环境变量,之后在Shared objects file配置中使用${ENV::DB_CONN_SHARED_FILE}引用。 - 命令行传参启动:执行转换时通过参数直接指定路径,示例命令:
kitchen.sh -file=your_transform.ktr -param:DB_CONN_SHARED_FILE=sharefiles/database-connections-mysql.xml
适配PDI 9.4机制的修复方案
PDI 9.4调整了共享对象文件的加载时机,该阶段早于转换内变量的初始化流程,导致原前置步骤定义的变量无法被识别。可通过以下方式处理:
- JVM级变量预加载:在转换开头添加
Modified Java Script Value步骤,写入脚本将变量设置为JVM作用域,确保共享对象加载时能读取到:setVariable("DB_CONN_SHARED_FILE", "sharefiles/database-connections-mysql.xml", "JVM"); - 全局配置变量:修改Linux环境下的
spoon.sh启动脚本,在启动参数中添加全局变量定义:OPT="$OPT -DDB_CONN_SHARED_FILE=sharefiles/database-connections-mysql.xml"
验证步骤
- 在转换中添加
Write to log步骤,输出${DB_CONN_SHARED_FILE}的值,确认变量已正确加载。 - 替换硬编码路径为变量引用后,检查数据库连接是否正常初始化,确认转换可正常运行。
内容的提问来源于stack exchange,提问作者Albert Wang
相关产品推荐
相关产品推荐

