2008-08-24 113 views
1

我的同事正試圖通過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驅動程序驗證失敗的明顯差異。

回答

2

爲什麼,它肯定了微軟足夠長的時間來明確地證實了這一點:

通過DB2Connect代理服務器連接不的BizTalk DB2適配器

支持,因爲我們的客戶的策略是通過DB2Connect只訪問DB2數據庫,適配器是不可能的。

更多的背景信息

之所以DB2適配器僅適用於直接連接到一個Z/OS大型機主機,是由於法律的限制。從技術上講,可以使用DB2Connect進行連接,但IBM已將其作爲優先節點,並阻止其他方合法地建立正確的DRDA序列以連接到它。

0

我從來沒有使用這個適配器,但我自己,所以我猜測,但也許這是與BizTalk用於連接的帳戶或您的端口配置不正確。