BizTalk DB2适配器连接错误

BizTalk DB2适配器连接错误

问题描述:

我的同事正试图通过DB2/MVS适配器将BizTalk 2006 R2连接到z/OS主机上的数据库。当测试连接设置,他们收到以下错误BizTalk DB2适配器连接错误

Could not connect to data source 'New Data Source': 
The network connection was terminated because the host failed to send any data. 
SQLSTATE: 08S01, SQLCODE: -605 

当一个普通的连接字符串,并与.NET代码开放中把设置,这是罚款。我是BizTalk和DB2的新手。任何人都可以建议什么时候看到这个错误表面?

08年8月24日:

好吧,如果使用常规的DB2连接字符串正常.NET代码,连接可制成并提交查询。 DB2适配器报告的内容甚至无法进行正确的连接握手,更不用说提交查询了。我不确定实现DB2连接的实际机制是什么。

08年8月25日:

this MSDN forums posting,这似乎是一个登录的问题。

我已经看到了,这不是这种情况。如果我们将用户名称作为Package Collection,它仍然会遇到同样的问题。

08年8月26日:

因为对于连接到大型机DB2数据库,从Microsoft产品信息的稀缺性,我进行了考察原始网络数据包,以得到一个线索是怎么回事之间的任务。 NET DB2提供程序的连接(工作)和BizTalk 2006 DB2适配器(其中包含炸弹)。我观察到DB2流量是使用DRDA协议完成的。而最终得出的结论BizTalk适配器方法失败,因为一个什么样的记录在服务器的答复SECCHKRM包

DRDA (Security Check) 
    DDM (SECCHKRM) 
     Length: 55 
     Magic: 0xd0 
     Format: 0x02 
      0... = Reserved: Not set 
      .0.. = Chained: Not set 
      ..0. = Continue: Not set 
      ...0 = Same correlation: Not set 
      DSS type: RPYDSS (2) 
     CorrelId: 0 
     Length2: 49 
     Code point: SECCHKRM (0x1219) 
    Parameter (Severity Code) 
     Length: 6 
     Code point: SVRCOD (0x1149) 
     Data (ASCII): 
     Data (EBCDIC): 
    Parameter (Security Check Code) 
     Length: 5 
     Code point: SECCHKCD (0x11a4) 
     Data (ASCII): 
     Data (EBCDIC): 
    Parameter (Server Diagnostic Information) 
     Length: 34 
     Code point: SRVDGN (0x1153) 
     Data (ASCII): \304\331\304\[email protected]\301\[email protected]\301\344\343\310\305\325\343\311\303\301\343\311\326\[email protected]\206\201\211\223\205\204 
     Data (EBCDIC): DRDA AR: AUTHENTICATION failed 

为什么同样的凭据这里失败,而在.NET提供后续的我是无法理解。现在,我可以观察到的是,每种方法在传输数据包的顺序上存在显着差异。

.NET的DB2提供商

No.  Time  Source    Destination   Protocol Info 
     1 0.000000 [client IP]   [DB2 server IP]   TCP  kpop > 50000 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=1 
     2 0.000399 [DB2 server IP]   [client IP]   TCP  50000 > kpop [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 WS=0 
     3 0.000414 [client IP]   [DB2 server IP]   TCP  kpop > 50000 [ACK] Seq=1 Ack=1 Win=65536 [TCP CHECKSUM INCORRECT] Len=0 
     4 0.000532 [client IP]   [DB2 server IP]   DRDA  EXCSAT | ACCSEC 
     5 0.038162 [DB2 server IP]   [client IP]   DRDA  EXCSATRD | ACCSECRD 
     6 0.041829 [client IP]   [DB2 server IP]   DRDA  ACCSEC | SECCHK | ACCRDB 
     7 0.083626 [DB2 server IP]   [client IP]   TCP  50000 > kpop [ACK] Seq=108 Ack=542 Win=65535 Len=0 
     8 0.190534 [DB2 server IP]   [client IP]   DRDA  ACCSECRD | SECCHKRM | ACCRDBRM | SQLCARD 
     9 0.199776 [client IP]   [DB2 server IP]   DRDA  PRPSQLSTT | SQLATTR | SQLSTT | OPNQRY 
    10 0.293307 [DB2 server IP]   [client IP]   TCP  [TCP segment of a reassembled PDU] 
    11 0.293359 [DB2 server IP]   [client IP]   TCP  [TCP segment of a reassembled PDU] 
    12 0.293377 [client IP]   [DB2 server IP]   TCP  kpop > 50000 [ACK] Seq=870 Ack=1444 Win=64092 [TCP CHECKSUM INCORRECT] Len=0 
    13 0.293404 [DB2 server IP]   [client IP]   TCP  [TCP segment of a reassembled PDU] 
    14 0.293452 [DB2 server IP]   [client IP]   TCP  [TCP segment of a reassembled PDU] 
    15 0.293461 [client IP]   [DB2 server IP]   TCP  kpop > 50000 [ACK] Seq=870 Ack=2516 Win=65536 [TCP CHECKSUM INCORRECT] Len=0 
    16 0.293855 [DB2 server IP]   [client IP]   TCP  [TCP segment of a reassembled PDU] 
    17 0.293908 [DB2 server IP]   [client IP]   DRDA  SQLDARD 
    18 0.293918 [client IP]   [DB2 server IP]   TCP  kpop > 50000 [ACK] Seq=870 Ack=3588 Win=64464 [TCP CHECKSUM INCORRECT] Len=0 
    19 0.293957 [DB2 server IP]   [client IP]   DRDA  QRYDSC 
    20 0.294008 [DB2 server IP]   [client IP]   DRDA  QRYDTA 
    21 0.294017 [client IP]   [DB2 server IP]   TCP  kpop > 50000 [ACK] Seq=870 Ack=4660 Win=65536 [TCP CHECKSUM INCORRECT] Len=0 
    22 0.294023 [DB2 server IP]   [client IP]   DRDA  SQLCARD 
    23 0.295346 [client IP]   [DB2 server IP]   DRDA  RDBCMM 
    24 0.297868 [DB2 server IP]   [client IP]   DRDA  ENDUOWRM | SQLCARD 
    25 0.421392 [client IP]   [DB2 server IP]   DRDA  PRPSQLSTT | SQLATTR | SQLSTT | OPNQRY 
    26 0.456504 [DB2 server IP]   [client IP]   DRDA  SQLDARD | OPNQRYRM | TYPDEFNAM | QRYDSC | QRYDTA | ENDQRYRM | TYPDEFNAM | SQLCARD 
    27 0.456756 [client IP]   [DB2 server IP]   DRDA  RDBCMM 
    28 0.488311 [DB2 server IP]   [client IP]   DRDA  ENDUOWRM | SQLCARD 
    29 0.498806 [client IP]   [DB2 server IP]   DRDA  PRPSQLSTT | SQLATTR | SQLSTT | OPNQRY 
    30 0.630477 [DB2 server IP]   [client IP]   TCP  50000 > kpop [ACK] Seq=5157 Ack=1579 Win=65171 Len=0 
    31 0.788165 [DB2 server IP]   [client IP]   DRDA  SQLDARD | OPNQRYRM | TYPDEFNAM | QRYDSC | QRYDTA 
    32 0.788203 [DB2 server IP]   [client IP]   DRDA  ENDQRYRM 
    33 0.788225 [client IP]   [DB2 server IP]   TCP  kpop > 50000 [ACK] Seq=1579 Ack=5815 Win=64380 [TCP CHECKSUM INCORRECT] Len=0 
    34 0.788648 [client IP]   [DB2 server IP]   DRDA  RDBCMM 
    35 0.795951 [DB2 server IP]   [client IP]   DRDA  ENDUOWRM | SQLCARD 
    36 0.807365 [client IP]   [DB2 server IP]   DRDA  PRPSQLSTT | SQLATTR | SQLSTT | OPNQRY 
    37 0.838046 [DB2 server IP]   [client IP]   DRDA  SQLDARD | OPNQRYRM | TYPDEFNAM | QRYDSC | QRYDTA | ENDQRYRM | TYPDEFNAM | SQLCARD 
    38 0.838328 [client IP]   [DB2 server IP]   DRDA  RDBCMM 
    39 0.841866 [DB2 server IP]   [client IP]   DRDA  ENDUOWRM | SQLCARD 
    40 0.973506 [client IP]   [DB2 server IP]   TCP  kpop > 50000 [ACK] Seq=1906 Ack=6304 Win=65482 [TCP CHECKSUM INCORRECT] Len=0 

的BizTalk DB2适配器

No.  Time  Source    Destination   Protocol Info 
     1 0.000000 [client IP]   [DB2 server IP]   TCP  28165 > 50000 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=8 
     2 0.002587 [DB2 server IP]   [client IP]   TCP  50000 > 28165 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 WS=0 
     3 0.010146 [client IP]   [DB2 server IP]   TCP  28165 > 50000 [ACK] Seq=1 Ack=1 Win=65536 Len=0 
     4 0.019698 [client IP]   [DB2 server IP]   DRDA  EXCSAT 
     5 0.020849 [DB2 server IP]   [client IP]   DRDA  EXCSATRD 
     6 0.034699 [client IP]   [DB2 server IP]   DRDA  ACCSEC 
     7 0.036584 [DB2 server IP]   [client IP]   DRDA  ACCSECRD 
     8 0.042031 [client IP]   [DB2 server IP]   DRDA  SECCHK 
     9 0.046350 [DB2 server IP]   [client IP]   DRDA  SECCHKRM 
    10 0.046642 [DB2 server IP]   [client IP]   TCP  50000 > 28165 [FIN, ACK] Seq=160 Ack=200 Win=65336 Len=0 
    11 0.053787 [client IP]   [DB2 server IP]   TCP  28165 > 50000 [ACK] Seq=200 Ack=161 Win=65536 Len=0 
    12 0.056891 [client IP]   [DB2 server IP]   DRDA  ACCRDB 
    13 0.058084 [DB2 server IP]   [client IP]   TCP  50000 > 28165 [RST, ACK] Seq=161 Ack=295 Win=0 Len=0 

有趣的是,在一个TCP段,见证中的.NET提供了问题的各种DRDA协议报文。另一方面,BizTalk适配器每个TCP段只能放置一个协议包。我不知道为什么这样。但是,目前我认为这是一个红鲱鱼,导致认证失败的真正差异在于DRDA数据交换。我不知道DRDA协议,所以在我能更好地理解它之前,必须先研究它。

08年9月18日:

在这个阶段,问题仍然没有解决,从微软获得从DB2 DBA团队,并帮助合作已经遇到了许多障碍。

我确实想报告,我观察到连接成功与失败的尝试全部病例之间也许一个关键的区别:

在BizTalk DB2适配器underlyingly使用Microsoft ODBC驱动程序用于DB2。其他成功的软件测试使用IBM DB2 ODBC DRIVERIBM DB2 ODBC DRIVER - IBMCL1。 IBM驱动程序的参数配置与Microsoft的驱动程序不同。但是我们没有看到任何可能导致Microsoft驱动程序验证失败的明显差异。

为什么,它肯定了微软足够长的时间来明确地证实了这一点:

通过DB2Connect代理服务器连接不的BizTalk DB2适配器

支持,因为我们的客户的策略是通过DB2Connect只访问DB2数据库,适配器是不可能的。

更多的背景信息

之所以DB2适配器仅适用于直接连接到一个Z/OS大型机主机,是由于法律的限制。从技术上讲,可以使用DB2Connect进行连接,但IBM已将其作为优先节点,并阻止其他方合法地建立正确的DRDA序列以连接到它。

我从来没有使用这个适配器,但我自己,所以我猜测,但也许这是与BizTalk用于连接的帐户或您的端口配置不正确。

根据this MSDN forums posting,这似乎是一个登录问题。