database - DB2 通信错误

标签 database database-design db2 database-connection db2-connect

我们最近开发了一个应用程序,它将在 DB2 中运行查询并向相应的收件人发送邮件。它在我们的本地系统和 QA 区域运行良好。但在生产中,很少有查询失败(即使这种情况很少见,比如一周一次)。它抛出以下异常。

异常内部细节:

ERROR [40003] [IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "111.111.111.111". Communication function detecting the error: "recv". Protocol specific error code(s): "10004", "", "". SQLSTATE=08001

由于错误只发生在生产中,并不经常发生,我们不确定是代码问题还是设置问题。你有什么想法吗?

最佳答案

我们最近与我们的 IBM 代表讨论了这个问题。在查看了他们的内部知识库之后,他建议我们根据对遇到相同问题的其他客户的建议,将“Interrupt=0”添加到我们的连接字符串中。

在 v10.5 FP2 之前,Interrupt 的默认值是 1,并且对于大多数连接来说仍然是这样。他们将 FP2 中连接到 z/OS(大型机)的默认值更改为 2。

我们正在使用 C#,可以找到 IBM Data Server Driver for .Net 的连接字符串属性 here .我确信他们的其他语言的驱动程序也有类似的属性。

This page IBM 文档中的内容更详细地介绍了该设置。

自从我们最近添加该属性以来,我们还没有发现这个问题,但它总是断断续续的,所以我还不能自信地说这个问题已经解决了。时间会证明...

关于database - DB2 通信错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36355694/

相关文章:

php - 在 MySQL 中选择 float

database - phpMyadmin 给出 token 不匹配错误

mysql - 创建 MySQL 和 SQLServer 兼容对象

php - 每个卖家的邮政编码过滤器 - mysql

mysql - 将数据库内容从一种非常糟糕的结构迁移到一种非常合乎逻辑的结构的最佳实践?

linux - DB2 强制应用程序无法终止加载作业

java - 当从 Runtime.getRuntime().exec() 调用新终端时,线程永远不会结束

php - 如何实现动态数据库列?

.net - 频繁更改数据库的最佳 .NET 解决方案

database - 数据库连接自动重连