SAS通过ODBC连接到DB2错误

SAS通过ODBC连接到DB2错误,db2,odbc,sas,Db2,Odbc,Sas,我已经在SAS中工作了一段时间,通过ODBC连接到DB2,这个PROC SQL步骤通常可以工作: proc sql; connect to odbc(dsn=DSQ user="UserID" password="Password"); execute (set current degree = 'ANY' ) by ODBC; create table tempTable as select * from connection to odbc ( select * from

我已经在SAS中工作了一段时间,通过ODBC连接到DB2,这个PROC SQL步骤通常可以工作:

proc sql;
connect to odbc(dsn=DSQ user="UserID" password="Password"); 
execute (set current degree = 'ANY' ) by ODBC;
create table tempTable as select * from connection to odbc (
    select * 
    from schemaName.tableName
);
quit;
但是,有时我会遇到以下错误,当我遇到此错误时,我将在相当长的一段时间内无法运行另一个ODBC查询,因为每次尝试运行查询时,我都会遇到相同的错误:

ERROR: CLI error trying to establish connection: [IBM][CLI Driver] SQL1042C  An unexpected system
   error occurred.  SQLSTATE=58004
一段时间后,错误要么自行解决,要么我做了一些我不知道的事情来解决问题。这是一个非常令人沮丧的问题,因为我永远不知道这个问题会持续多久,我希望有一个更强大的解决方案来解决这个问题。我已经检查了db2diag.log文件,下面是描述此错误的部分:

2015-06-03-08.17.34.345000-300 I60888H446           LEVEL: Error
PID     : 4452                 TID : 7804           PROC : sas.exe
INSTANCE: DB2                  NODE : 000
HOSTNAME: 
EDUID   : 7804
FUNCTION: DB2 Common, Cryptography, cryptDynamicLoadGSKitCrypto, probe:998
MESSAGE : ECF=0x90000007=-1879048185=ECF_UNKNOWN
          Unknown
DATA #1 : unsigned integer, 4 bytes
60
DATA #2 : String, 11 bytes
gsk8sys.dll
我试图在这篇文章中找到一个例子,所以我在SAS中运行了这段代码,看看错误是否会回来,但是它似乎已经解决了错误,因为在运行了这段代码之后,我运行了初始代码,它工作了。下面是似乎解决了这个问题的代码

proc sql;
    connect to odbc(dsn=DSQ user="UserID" password="Password"); 
    execute (set current degree = 'ANY' ) by ODBC;
    create table column_names as select * from connection to odbc (
        select * from sysibm.syscolumns
    );
quit;
我曾尝试在谷歌上搜索这个问题,但在这个特定的错误上没有多少帮助。是否有任何理由认为第二个SAS代码可以解决我遇到的问题?有没有办法解决这个问题,使它在将来不会再出现

请注意,当错误发生时,我仍然能够通过Microsoft Access中的ODBC运行查询,而不会出现任何问题。这似乎只是一个特定实例的问题

系统设置:

Windows 7 64位

SAS 9.3(32)

DB2V10.5.300.125

提前感谢您的帮助

更新:
有几次,我能够进入任务管理器并删除一些仍在运行的进程,然后这个问题就会自行解决,但是今天当这个问题发生时,这些进程就不存在了。对此有任何想法都将不胜感激。

症状可能取决于DB2Connect和程序(sas.exe)的安装顺序。如果首先安装DB2Connect,则不应该发生这种情况。因此,建议删除并重新安装这两个产品一次,然后首先安装DB2Connect


希望这能有所帮助。

您是否还安装了其他可能使用GSKit库的IBM产品?例如,Lotus Notes?
db2diag.log
中的错误表明DB2无法加载用于身份验证的
gsk8sys.dll
。您的ODBC服务器上有任何类型的连接限制控件吗?我想知道你是否运行了很多这样的程序,它迫使你不频繁地连接(这是一个奇怪的错误,没有意义),阻止连接一个小时或其他时间,以防止拒绝服务攻击或暴力攻击。(如果您按顺序运行了很多这样的操作,并且往往在第十次、第二十次或其他任何运行之后发生,则这一点最适用。)是的,我在机器上也使用LotusNotes。我搜索了C驱动器,找不到“gsk8sys.dll”文件。但是,我确实在“ProgramFiles(x86)\IBM\SQLLIB\BIN\icc”文件夹中找到了一个“gsk8iccs.dll”文件。这可能是导致我的问题的原因吗?Joe,这是特定于实例的吗?因为当我在SAS中遇到这个错误时,我能够在Access中通过ODBC运行查询。我不确定-这只是我的猜测,我对这种服务器配置不太了解。