我正在将一个 BPEL 流程从 SOA 10g 移植到 SOA 12c。
我配置了一个 DBAdapter 以使用相同的输入负载调用相同的存储过程。
问题是在 SOA 10g 上一切都很好,并且该过程作为自定义输出返回错误代码 0 和“OK”作为消息。相反,在 SOA 12c 中,该过程在某些时候中断并返回错误代码 -1722 和“无效数字”作为消息(这肯定是对ORA-01722数据库错误的内部处理)。我无法调试存储过程以查看它在哪一行中断。
我的问题是:什么“低级”参数会影响这个?这是我到目前为止的想法和我已经完成的检查的列表:
- 安装 SOA 的数据库使用与 AL32UTF8 不同的编码,这是推荐的。我不知道这是否是个问题,但我猜不是因为两个 SOA 版本都使用同一个数据库。
- 在这两种情况下,所有相关字段的输入有效负载都是相同的。我通过从企业管理器下载 XML 并与 Meld 进行比较来检查;至少从这个我看不出有什么不同。
我猜想在某些时候存在编码问题,它将奇数数据从 WebLogic 发送到数据库。我刚刚启用了所使用的 DbAdapter 特定连接池的日志,我将在获得一些信息后立即使用相关信息更新问题(我必须等待实例启动,我无法自己启动它们)。