MS Purview扫描Oracle 门户测试报java.lang.IllegalStateException故障
故障修复方案
5.17.8186.1版本自承载Integration Runtime(SHIR)本地连接测试走.NET原生连接器链路,Purview门户发起的连接测试、扫描任务走Java插件链路,两个链路依赖完全独立,因此会出现本地测试通过、门户侧报java.lang.IllegalStateException的现象,该问题是SHIR该版本内置Oracle连接器与Oracle 11.2.0.4版本的兼容性问题,按以下步骤修复即可:
- 替换适配版本的JDBC驱动
该版本SHIR内置的ojdbc8.jar仅适配Oracle 12c及以上版本,与11.2.0.4存在类加载冲突,是抛出java.lang.IllegalStateException的核心原因。先在SHIR所在的Windows Server 2022主机上安装64位11.2.0.4.0版本Oracle Instant Client,配置系统环境变量ORACLE_HOME指向客户端安装目录,将%ORACLE_HOME%添加到系统Path变量最靠前的优先级位置;之后进入SHIR默认Oracle插件目录C:\Program Files\Microsoft Integration Runtime\5.0\Shared\Plugins\Oracle,将目录下原有ojdbc8.jar重命名为备份文件,把11.2.0.4版本客户端自带的ojdbc6.jar复制到该目录下。 - 修复SHIR服务权限与Java进程配置
SHIR默认内置服务账号对Java插件目录的读写权限不足、JVM默认内存配额过低,会导致Java子进程启动后异常退出,返回ERROR_TEST错误码。打开Windows服务管理器,找到Microsoft Integration Runtime Service服务,将服务登录账号从默认的内置服务账号替换为加入本机管理员组的本地账号/域账号,确认该账号对SHIR安装目录、Oracle客户端目录持有完全控制权限;在SHIR安装根目录下新建JvmOptions.txt文件,写入-Xms512m -Xmx2048m配置JVM内存上下限,避免内存不足导致进程崩溃,完成后重启SHIR服务生效。 - 调整Purview侧数据源连接参数
进入Purview治理门户的Oracle数据源编辑页,不要使用简写的EZConnect格式连接串,替换为完整TNS格式连接串:
首次发起连接测试时暂时取消勾选「启用增量扫描」「自动采集血缘」选项,基础连通性验证通过后再按需开启对应功能。(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<Oracle数据库主机IP>)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=<数据库服务名>)(SERVER=DEDICATED))) - 结果验证
先在SHIR本地配置管理器中重新执行连接测试,确认本地链路正常后,回到Purview门户重新发起连接测试即可正常通过,后续配置对应扫描规则即可正常运行Oracle数据源扫描任务。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

