2

我能否仅通过配置更改来修复 DB2 连接超时?

请注意,我正在运行以下版本的 db2 客户端连接软件:

Y:\>db2level
DB21085I  Instance "DB2" uses "32" bits and DB2 code release "SQL08015" with
level identifier "02060106".
Informational tokens are "DB2 v8.1.5.449", "s040212", "WR21334", and FixPak
"5".

我注意到,当我启动配置助手时,似乎有一个用于设置 QueryTimeout 值的连接级别选项:

在此处输入图像描述 但是,我想更改值。由于没有“更新”按钮,只有一个添加,我想我可能必须删除设置并重新添加才能修改它。但是,当我重新添加它时,QueryTimeOout 设置不在我的列表中。

在此处输入图像描述

可能是我在某处更新了配置文件,这就是首次引入设置的方式。我不记得了。

  1. 我想知道在哪里可以找到包含这些设置的文件的位置。

  2. 此设置在其他人的 PC 上使用,该 PC 具有较新版本的 db2 客户端。在他的 PC 上将其设置为 0 会覆盖程序中的任何默认 CommandTimeout 设置吗?请注意,查询不会在我的 PC 上超时,仅在其他用户的 PC 上。

  3. 我试图在这个 WinForm 应用程序的 app.config 文件中更改我的 ConnectionString 以包含选项“QueryTimeout = 0”

connectionString="Database=MyServer;Server=MyHost.MyCompany.com:MyPortNumber;UID=MyuserId;PWD=MyPassword;QueryTimeout=0"

但我收到以下错误:

附加信息:无效参数

是有关此 ConnectionString 设置的文档。我究竟做错了什么?

获取或设置 QueryTimeout 关键字的值。QueryTimeout 指示在尝试取消执行并将控制权返回给应用程序之前等待 SQL 语句或 XQuery 表达式完成执行的默认秒数。此属性覆盖默认的 30 秒 DB2Command.CommandTimeout 值。

4

2 回答 2

1

从 db2 命令行 (db2cmd) 尝试以下操作。

    db2"update cli configuration for section common using querytimeoutinterval 60"

将时间设置为 60 秒。

于 2012-11-03T00:27:48.760 回答
0

您应该在 app.config 文件中设置“QueryTimeout=30”以在执行 30 秒后取消查询。QueryTimeout 不是 CLI 关键字,因此您不能使用配置帮助或 db2 命令行工具将其设置为 CLI 参数。您可以在 app.config 文件或 db2dsdriver.cfg 文件中设置它,也可以通过设置语句属性 SQL_ATTR_QUERY_TIMEOUT 来设置它。

QueryTimeoutInterval 的默认值为 1 秒。它将每 1 秒检查一次是否发生超时。它是一个 CLI 关键字,您可以将其添加到 db2cli.ini 文件中,但对 .NET 程序无效。.NET 应用程序不读取 db2cli.ini 文件。

于 2014-11-29T19:31:00.260 回答