本文适用于以下产品:
- Microsoft BizTalk Adapter Pack 2010
- Microsoft BizTalk Adapter Pack 2013
症状
假设您在 Microsoft BizTalk Adapter for Oracle 数据库上有一个基于 WCF 的 Oracle 发送端口。 此外,假设 Oracle 服务器上正在使用某些 Oracle 程序包变量和触发器操作。 在这种情况下,触发器操作可能会失败,您会收到类似于以下内容的错误消息:
注意
在发送端口“<SendPortName>”上发送到适配器“<AdapterName>”的消息,其中 URI<“URI> 已挂起。
错误详细信息: Microsoft.ServiceModel.Channels.Common.TargetSystemException: ORA-01400: cannot insert NULL into (“”.“”.“”)
ORA-06512:在 Oracle.DataAccess.Client.OracleException ---> 第 2 行: ORA-01400: 无法将 NULL 插入 (“”.“”.“”)
ORA-06512:在第 2 行
在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper (Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
在 Oracle.DataAccess.Client.OracleException.HandleError (Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck)
在 Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery ()
在 Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (OracleCommand 命令、OracleCommonExecutionHelper executionHelper)
- 内部异常堆栈跟踪结束 -
原因
出现此问题的原因是,当适配器获取连接时,会话状态会重新初始化。
解决方法
要解决此问题,请安装此修补程序并在发送端口属性中禁用连接池。
累积更新包信息
对于 BizTalk Adapter Pack 2013
解决此问题的修补程序包含在 BizTalk Adapter Pack 2013 的累积更新包 1 中。
有关如何获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2892600 适用于 BizTalk Adapter Pack 2013 的累积更新程序包 1
对于 BizTalk Adapter Pack 2010
解决此问题的修补程序包含在 BizTalk Adapter Pack 2010 的累积更新包 3 中。
有关如何获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2617150 适用于 BizTalk Adapter Pack 2010 的累积更新包 3
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
有关 BizTalk Server 修补程序的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2003907 有关BizTalk Server修补程序的信息有关连接池配置的更多信息,请转到以下 MSDN 网站:
详细信息
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。