Результаты поиска
Соедините PHP с IBM и (AS/400)
У меня есть предстоящий проект, в котором мне нужно будет подключить наш веб-сайт ( PHP5/Apache 1.3/OpenBSD 4.1 ) к нашей серверной системе, работающей на iSeries с OS400 V5R3, чтобы я мог получить доступ к некоторым таблицам, хранящимся там. Я кое-что проверил вокруг, но наткнулся на несколько блокпостов.
Из того, что я видел, расширения DB2 и программное обеспечение DB2 от IBM работают только под Linux. Я попытался скомпилировать расширения со всем программным обеспечением от IBM и даже попробовал их предварительно скомпилированное расширение ibm_db2, но безуспешно. IBM поддерживает только Linux, поэтому я включил эмуляцию Linux в kernel, но это, похоже, ничему не помогло.
Если кто-то столкнулся с тем, что все работает изначально под OpenBSD, это было бы здорово, но я думаю, что мне нужно будет сделать, это настроить второй сервер под управлением CentOS с установленным DB2 (скорее всего, через ZendCore для IBM, так как он, похоже, делает все это для меня) и драйвер, чтобы я мог настроить небольшой сервер транзакций, который я могу разместить и получить представление JSON данных DB2, которые мне нужны.
Может быть, второй вариант кажется излишним или у кого-то еще есть идеи получше?
Индекс Базы Данных Без Учета Регистра?
У меня есть запрос, в котором я ищу по строке:
SELECT county FROM city WHERE UPPER(name) = 'SAN FRANCISCO';
Теперь это работает нормально, но масштабируется не очень хорошо, и мне нужно его оптимизировать. Я нашел вариант создания сгенерированного представления или что-то в этом роде, но я надеялся на более простое решение с использованием индекса.
Мы используем DB2 , и я действительно хочу использовать выражение в индексе, но эта опция, кажется, доступна только на z/OS,, однако мы запускаем Linux. Я все равно попробовал индекс выражения:
CREATE INDEX city_upper_name_idx
ON city UPPER(name) ALLOW REVERSE SCANS;
Но, конечно, он давится на UPPER(имя).
Есть ли другой способ создать индекс или что-то подобное таким образом, чтобы мне не нужно было перестраивать существующие запросы для использования нового сгенерированного представления, изменять существующие столбцы или любые другие подобные навязчивые изменения?
EDIT: я готов выслушать решения для других баз данных... он может перейти на DB2...
Ошибка подключения адаптера BizTalk DB2
Мои коллеги пытаются подключить 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 августа 08:
Ну, если нормально .Используется код NET с обычной строкой соединения DB2, соединение может быть выполнено и Запросы отправлены. Этот адаптер DB2 сообщает, что он даже не может сделать правильное рукопожатие соединения, не говоря уже о отправке запросов. Я не уверен в том, какие фактические механизмы задействованы для создания соединения DB2.
25 августа 08:
Согласно этой публикации на форумах MSDN, это, похоже, проблема входа в систему.
Я видел это, и здесь это не так. Если мы поместим имя пользователя в качестве коллекции пакетов, он все равно столкнется с той же проблемой.
26 августа 08:
Из-за нехватки информации о подключении к базам данных mainframe 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 поставщик находится за пределами меня. Прямо сейчас я могу наблюдать заметную разницу между каждым методом, когда речь заходит о последовательности передаваемых пакетов.
.Поставщик сетка 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 сентября 08:
На данном этапе проблема все еще не решена, так как получение сотрудничества от команды DB2 DBA и помощи от Microsoft было встречено со многими препятствиями.
То, что я хочу сообщить, это то, что я заметил, Возможно, одно решающее различие между всеми случаями успешного соединения и неудачной попытки:
Адаптер BizTalk DB2 в основном использует драйвер Microsoft ODBC для DB2 . Другие успешные тесты программного обеспечения используют драйвер IBM DB2 ODBC или драйвер IBM DB2 ODBC-IBMCL1 . Конфигурация параметров драйвера IBM отличается от драйвера Microsoft. Но мы не видим каких-либо явно критических различий, которые могут привести к неудачной проверке подлинности для драйвера Microsoft.
Асинхронные Вызовы Хранимых Процедур
Можно ли вызвать хранимую процедуру из другой хранимой процедуры асинхронно?
Edit: в частности, я работаю с базой данных DB2.
Ошибка инициализации SQL1159 с поставщиком данных DB2 .NET, код причины 7, токены 9.5.0.DEF.2, SOFTWARE\IBM\DB2\InstalledCopies
Я пытаюсь заставить поставщика данных DB2 из 32-разрядного приложения .Net подключиться к DB2, работающему как 32-разрядное приложение на Vista 64 (это еще достаточно запутанно)? К сожалению, я получаю следующую ошибку:
Ошибка инициализации SQL1159 с поставщиком данных DB2 .NET, код причины 7, токены 9.5.0.DEF.2, SOFTWARE\IBM\DB2\InstalledCopies
Есть несколько сообщений на форуме IBM , упоминающих его, но мало полезных указаний. Кто-нибудь испытывал это раньше? Или у вас есть лучшие идеи для его исправления?