Ошибка подключения адаптера BizTalk DB2
-
09-06-2019 - |
Вопрос
Мои коллеги пытаются подключить BizTalk 2006 R2 через адаптер DB2/MVS к базе данных, размещенной на мейнфрейме z/OS.При проверке настроек подключения возникает следующая ошибка
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.Может ли кто-нибудь подсказать, на что следует обратить внимание при появлении этой ошибки?
24 августа 2008 г.:
Что ж, если используется обычный код .NET с обычной строкой подключения DB2, можно установить соединение и отправить запросы.Этот адаптер DB2 сообщает, что он не может даже выполнить правильное подтверждение соединения, не говоря уже о отправке запросов.Я не уверен, какие на самом деле механизмы задействованы для установления соединения с DB2.
25 августа 2008 г.:
В соответствии с это сообщение на форуме MSDN, похоже, это проблема со входом в систему.
Я это видел, но здесь это не тот случай.Если мы поместим имя пользователя в коллекцию пакетов, проблема все равно возникнет.
26 августа 2008 г.:
Из-за нехватки информации о подключении к базам данных 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\301@\301\331z@\301\344\343\310\305\325\343\311\303\301\343\311\326\325@\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
Интересно наблюдать, как провайдер .NET выдает различные пакеты протокола DRDA в одном сегменте TCP.С другой стороны, адаптер BizTalk помещает только один пакет протокола в каждый сегмент TCP.Я не знаю, почему это так.Однако на данный момент я думаю, что это отвлекающий маневр, и настоящая разница, вызывающая сбой аутентификации, заключается в обмене данными DRDA.Я не знаю протокола DRDA, поэтому мне придется изучить его, прежде чем я смогу понять его.
18 сентября 2008 г.:
На данном этапе проблема все еще не решена, поскольку сотрудничество с командой администраторов баз данных DB2 и помощь Microsoft были встречены со многими препятствиями.
Что я хочу сообщить, так это то, что я заметил, пожалуй, одно решающее различие между всеми случаями успешного подключения и неудачной попыткой:
Адаптер BizTalk DB2 в основе использует Драйвер Microsoft ODBC для DB2.Другие успешные тесты программного обеспечения используют ДРАЙВЕР ODBC IBM DB2 или ДРАЙВЕР ODBC IBM DB2 — IBMCL1.Конфигурация параметров драйвера IBM отличается от конфигурации драйвера Microsoft.Но мы не видим какой-либо явно критической разницы, которая могла бы привести к неудачной аутентификации драйвера Microsoft.
Решение
Да ведь Microsoft определенно потребовалось достаточно времени, чтобы явно подтвердить это:
прокси-соединения через DB2Connect не поддерживаются адаптером BizTalk DB2.
Поскольку политика нашего клиента предусматривает доступ к базам данных DB2 только через DB2Connect, об адаптере не может быть и речи.
БОЛЬШЕ СПРАВОЧНОЙ ИНФОРМАЦИИ
Причина, по которой адаптер DB2 работает только для прямого соединения с хостом мэйнфрейма z/OS, связана с юридическими ограничениями.Технически возможно установить соединение с DB2Connect, но IBM сделала его приоритетным узлом и запретила другим сторонам юридически устанавливать правильную последовательность DRDA для подключения к нему.
Другие советы
Я никогда не использовал этот адаптер, кроме себя, поэтому я предполагаю, что, возможно, это связано с учетной записью, которую BizTalk использует для подключения, или ваши порты настроены неправильно.
В соответствии с это сообщение на форуме MSDN, похоже, это проблема со входом в систему.