Такая совместимая DB2
-
- Уже с Приветом
- Posts: 9885
- Joined: 18 Apr 2000 09:01
- Location: Moscow -> VA -> Boston, MA
Такая совместимая DB2
Очередные вилы в бок от IBM.
Я уже как-то писал что наш продукт теститруется на совместимость с кучей баз данных из которых наибольшее количество геморроя дают разные версии DB2. Пока мы поддерживали только 7.1 и 7.2 основной проблемой было то, что 32 битная и 64 битная версии друг друга категорически не признают (у Оракла таких проблем нет). Для тестов приходилось перестраивать переменные окружения. Это фигня. Но вот вышла версия 8. IBM говорит что они даже сподобились организовать совместимость между 32 и 64. УРА! Все хорошо, но только одна проблема - они забыли про совместимость с предыдущими версиями. При попытке создать соединение с базой версии 7.2 выдается сообщение типа: "Чё то эта база никаких модных фич не поддерживает. Соединиться не могу". А в описании ошибки в качестве решения предлагается только обновить сервер до более новой версии.
Слегка потрахавшись ODBC соединение всетаки настроить удается, но работать все равно нельзя потому как при попытке соединиться через этот ODBC выдается ошибка: "[IBM][CLI Driver][DB2/NT] SQL0805N Package "NULLID.SYSSTAT" was not found." Это я уже победить не могу. При выполнения рекомендованного здесь байндинга выдается 20 ошибок и package не создается.
Чего делать? Как бороться?
Я уже как-то писал что наш продукт теститруется на совместимость с кучей баз данных из которых наибольшее количество геморроя дают разные версии DB2. Пока мы поддерживали только 7.1 и 7.2 основной проблемой было то, что 32 битная и 64 битная версии друг друга категорически не признают (у Оракла таких проблем нет). Для тестов приходилось перестраивать переменные окружения. Это фигня. Но вот вышла версия 8. IBM говорит что они даже сподобились организовать совместимость между 32 и 64. УРА! Все хорошо, но только одна проблема - они забыли про совместимость с предыдущими версиями. При попытке создать соединение с базой версии 7.2 выдается сообщение типа: "Чё то эта база никаких модных фич не поддерживает. Соединиться не могу". А в описании ошибки в качестве решения предлагается только обновить сервер до более новой версии.
Слегка потрахавшись ODBC соединение всетаки настроить удается, но работать все равно нельзя потому как при попытке соединиться через этот ODBC выдается ошибка: "[IBM][CLI Driver][DB2/NT] SQL0805N Package "NULLID.SYSSTAT" was not found." Это я уже победить не могу. При выполнения рекомендованного здесь байндинга выдается 20 ошибок и package не создается.
Чего делать? Как бороться?
-
- Уже с Приветом
- Posts: 15410
- Joined: 30 Apr 2003 16:43
BOBAH wrote:
"...но работать все равно нельзя потому как при попытке соединиться через этот ODBC выдается ошибка: "[IBM][CLI Driver][DB2/NT] SQL0805N Package "NULLID.SYSSTAT" was not found." Это я уже победить не могу. При выполнения рекомендованного здесь байндинга выдается 20 ошибок и package не создается.
Чего делать? Как бороться?"
I am not DB2 UDB guy, but I'll try to help you.
First of all, can you provide protocol from bind to see what those 20 errors are.
"...но работать все равно нельзя потому как при попытке соединиться через этот ODBC выдается ошибка: "[IBM][CLI Driver][DB2/NT] SQL0805N Package "NULLID.SYSSTAT" was not found." Это я уже победить не могу. При выполнения рекомендованного здесь байндинга выдается 20 ошибок и package не создается.
Чего делать? Как бороться?"
I am not DB2 UDB guy, but I'll try to help you.
First of all, can you provide protocol from bind to see what those 20 errors are.
-
- Уже с Приветом
- Posts: 9885
- Joined: 18 Apr 2000 09:01
- Location: Moscow -> VA -> Boston, MA
zVlad wrote: First of all, can you provide protocol from bind to see what those 20 errors are.
db2 => bind "C:\Program Files\IBM\SQLLIB\bnd\db2clist.bnd" blocking all grant public
LINE MESSAGES FOR db2clist.bnd
------ --------------------------------------------------------------------
SQL0061W The binder is in progress.
172 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
176 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
181 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
185 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
188 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
191 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
229 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
232 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
235 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
238 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
241 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
244 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
247 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
250 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
253 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
256 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
259 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
SQL0082C An error has occurred which has terminated processing.
SQL0092N No package was created because of previous errors.
SQL0091N Binding was ended with "19" errors and "0" warnings.
-
- Уже с Приветом
- Posts: 15410
- Joined: 30 Apr 2003 16:43
BOBAH wrote:db2 => bind "C:\Program Files\IBM\SQLLIB\bnd\db2clist.bnd" blocking all grant public
LINE MESSAGES FOR db2clist.bnd
------ --------------------------------------------------------------------
SQL0061W The binder is in progress.
172 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
......
259 SQL30073N "0x2419" Parameter value "0x0000" is not supported.
SQL0082C An error has occurred which has terminated processing.
SQL0092N No package was created because of previous errors.
SQL0091N Binding was ended with "19" errors and "0" warnings.
SQLCODE -30073 says:
"SQL30073N parameter-identifier Parameter value
value is not supported.
Explanation: The remote database received data
it does not recognize. The current environment
command or SQL statement cannot be processed
successfully, nor can any subsequent commands
or SQL statements...."
Looks like you have different versions for client and server. This is what you told in your first posting.
I'm not 100% sure but seems to me that claiming cross-version compatibility between client and server parts is not correct. One day Oracle can lose this kind of compatibility if they decide to use new options of server in client.
I would recommend you to read "Release Notes" from this site:
http://www-306.ibm.com/cgi-bin/db2www/d ... 2w/en_main
I found there, for example:
" ...DB2 Universal Database version 7 server access
To access a DB2 Universal Database ™ Version 7 server on a Linux, UNIX, or
Windows ® operating system from a version 8 client, you must have version 7
FixPak 8 or later installed on your server and have run the db2updv7
command. For instructions on installing the version 7 FixPaks, refer to the
version 7 FixPak Readme and Release Notes."
What I would also recommend your company is to have proper DB2 people who will fight problems instead of blaming DB2 and particularly IBM.
P.S. You might be able to set up multiple clients on your workstation, don't you?
-
- Уже с Приветом
- Posts: 15410
- Joined: 30 Apr 2003 16:43
ВОВАН, какие еще вилы у Вас в боку остались. Давайте попробуем их вытащить осторожно.
В самом деле, Ваша компания не может что ли позволить себе иметь специалиста по DB2? На худой конец кто-нибудь с опытом в Оракл мог бы потратить некоторое время и научиться лучше понимать как работает ИБМ в вопросах саппорта и что такое есть DB2. Жалко просто обоих: и Вас и DB2.
В самом деле, Ваша компания не может что ли позволить себе иметь специалиста по DB2? На худой конец кто-нибудь с опытом в Оракл мог бы потратить некоторое время и научиться лучше понимать как работает ИБМ в вопросах саппорта и что такое есть DB2. Жалко просто обоих: и Вас и DB2.
-
- Уже с Приветом
- Posts: 9885
- Joined: 18 Apr 2000 09:01
- Location: Moscow -> VA -> Boston, MA
zVlad wrote:ВОВАН, какие еще вилы у Вас в боку остались. Давайте попробуем их вытащить осторожно.
А я что сказал что эти вилы уже вытащены?
Давайте я расскажу Вам сказку про совместимость от IBM.
Поставил значит один программер на свою беду и по указанию начальства DB2 v8 чтобы на его машине можно было ночные тесты гнать. Стал он подключать другие тестовые базы, которые как на грех оказались версии 7. Ломанулся он напролом, а не тут то было. Строгий DB2 Control Center сразу сказал, что со старьем он работать не желает и посоветовал обновить все сервера до версии 8. "Несовместимость?" подумал он. "Не-е", сказали гуру, "IBM никогда так не делает". Ну, где наша не пропадала, подумал программер и подключил базы из командной строки. Запустил он тесты, а тесты в ответ запустили в него кучей ошибок. Загрустил программер, но помнил, что IBM всегда совместима и потому полез в доки и интернет за советом. Не нашел ничего путного, но гуру подсказали куда смотреть надобно. Оказывается если пропатчить старый сервер самым последним фикспаком, то все будет замечательно и долгожданная совместимость появится! Обрадовался программер скачал фикспак на 256 мегов и все пропатчил. Теперь правда эту пропатченую базу нельзя использовать через клиентов версии 7 которые не удостоились применения фикспака, но что значат всякие мелочи когда главная цель - совместимость между 7 и 8 практиццски достигнута.
Действительно, после установки самого последнего фикспака на семерку соединиться даже удалось, но тут выяснилось что совместимость IBM проверяла на тестовой таблице из трех полей типа INTEGER, а наши тесты все равно не идут потому что в нашей тестовой базе как на грех используются редкие и непопулярные поля типа CLOB, совместимости с которыми между версиями 7 и 8 IBM достичь не удалось. Попутно выяснилось что поля типа VARCHAR совместимы только до размера 255 символов. Все, что больше рассматривается как LONG VARCHAR и в "совместимости" не участвует.
Вот что называтся “compatibility, IBM way”. В гробу я видал такую совместимость
zVlad wrote:В самом деле, Ваша компания не может что ли позволить себе иметь специалиста по DB2? На худой конец кто-нибудь с опытом в Оракл мог бы потратить некоторое время и научиться лучше понимать как работает ИБМ в вопросах саппорта и что такое есть DB2. Жалко просто обоих: и Вас и DB2.
Видите ли, zVlad, нам ехать надо, а не шашечки. Наша программа использует максимально стандартизованый SQL и не использует никаких database specific расширений. Сделано это для того чтобы было легче портировать на whatever clients have on their site. Иметь узкоспециальзированного специалиста по DB2 который всю свою жизнь наступал на дибитушные грабли и поэтому может сразу сказать что это так не полетит нам не с руки потому как ситуация с граблями возникает раз в полгода-год. И все эти проблемы худо бедно удается решать своими силами.
-
- Уже с Приветом
- Posts: 15410
- Joined: 30 Apr 2003 16:43
Позволю себе немного видоизменить Ваш оригинальный постинг:
Предварительные рассуждения:
- что такое клиент?
Клиент - это часть единого продукта (в данном случае базы данных DB2) предназначенная для установки на компьютер(ы) иной чем компьютер сервера (в данном случае БД) и с которого(ых) поступают запросы к БД.
Клиент поставляется в каждой поставке БД, а также с SDK и некоторыми другими продуктами.
Клиент имеет версию - такую же как версия продукта с которым он поставлен.
- совместимы ли клиент и сервер одного уровня?
Безусловно.
- обязаны ли быть клиенты разных версий совметимы с разными версиями серверной части?
Зачем? Если всегда можно иметь правильную версию клиента и для этого не нужны никакие дополнительные усилия.
- тем не менее. Может ли понадобиться совместимость разных версий клиента и БД?
Да может, например, для более спокойного перевода производственной системы, когда неудобно (или не возможно) перевести на новую версию все сервера и всех клиентов за один раз.
- избежны ли проблемы совметимости у разработчика приложения (в данном случае для БД), который желает проверить работу приложения с разными версиями?
Да избежны. Для этого лишь нужно внимательно читать соответствующие документы, опубликованные на сайте ИБМ, и следовать им буквально.
Этими предварительными рассуждениями, на мой взгляд, покрываются пункты 1-5 Вашего постинга (в моей модификации).
6. Это вам ИБМ сказало? Если бы это было так на самом деле то мы бы уже давно не видели ли бы такой фирмы на рынке.
7, 8. К сожалению не могу проверить, нет у меня Ваших продуктов, на МФ поддерживаю я DB2, понимаешь. Может кто-нибудь здесь бывает с DB2 UDB и может как-то прокомментировать?
9. Чтобы ехать нужен водитель, который знает как управлять соответствующим средством.
10. Нормальный подход в Вашем случае.
11. Нет, не для того чтобы наступать на грабли (знающие DB2 люди этого не делают), а чтобы вовремя убирать из-под ног грабли, которые как я понял ваши специалисты любят разбрасывать в том поле где вы добываете сено.
BOBAH wrote:1. Поставил значит один программер на свою беду и по указанию начальства DB2 v8 чтобы на его машине можно было ночные тесты гнать. Стал он подключать другие тестовые базы, которые как на грех оказались версии 7. Ломанулся он напролом, а не тут то было. Строгий DB2 Control Center сразу сказал, что со старьем он работать не желает и посоветовал обновить все сервера до версии 8.
2. "Несовместимость?" подумал он. "Не-е", сказали гуру, "IBM никогда так не делает". Ну, где наша не пропадала, подумал программер и подключил базы из командной строки. Запустил он тесты, а тесты в ответ запустили в него кучей ошибок. Загрустил программер, но помнил, что IBM всегда совместима и потому полез в доки и интернет за советом.
3. Не нашел ничего путного, но гуру подсказали куда смотреть надобно. Оказывается если пропатчить старый сервер самым последним фикспаком, то все будет замечательно и долгожданная совместимость появится!
4. Обрадовался программер скачал фикспак на 256 мегов и все пропатчил. Теперь правда эту пропатченую базу нельзя использовать через клиентов версии 7 которые не удостоились применения фикспака, но что значат всякие мелочи когда главная цель - совместимость между 7 и 8 практиццски достигнута.
5. Действительно, после установки самого последнего фикспака на семерку соединиться даже удалось, ...
6. ....но тут выяснилось что совместимость IBM проверяла на тестовой таблице из трех полей типа INTEGER, а наши тесты все равно не идут потому что в нашей тестовой базе как на грех используются.....
7. ...редкие и непопулярные поля типа CLOB, совместимости с которыми между версиями 7 и 8 IBM достичь не удалось.
8. Попутно выяснилось что поля типа VARCHAR совместимы только до размера 255 символов. Все, что больше рассматривается как LONG VARCHAR и в "совместимости" не участвует.
9. Видите ли, zVlad, нам ехать надо, а не шашечки.
10. Наша программа использует максимально стандартизованый SQL и не использует никаких database specific расширений. Сделано это для того чтобы было легче портировать на whatever clients have on their site.
11. Иметь узкоспециальзированного специалиста по DB2 который всю свою жизнь наступал на дибитушные грабли и поэтому может сразу сказать что это так не полетит нам не с руки потому как ситуация с граблями возникает раз в полгода-год. И все эти проблемы худо бедно удается решать своими силами.
Предварительные рассуждения:
- что такое клиент?
Клиент - это часть единого продукта (в данном случае базы данных DB2) предназначенная для установки на компьютер(ы) иной чем компьютер сервера (в данном случае БД) и с которого(ых) поступают запросы к БД.
Клиент поставляется в каждой поставке БД, а также с SDK и некоторыми другими продуктами.
Клиент имеет версию - такую же как версия продукта с которым он поставлен.
- совместимы ли клиент и сервер одного уровня?
Безусловно.
- обязаны ли быть клиенты разных версий совметимы с разными версиями серверной части?
Зачем? Если всегда можно иметь правильную версию клиента и для этого не нужны никакие дополнительные усилия.
- тем не менее. Может ли понадобиться совместимость разных версий клиента и БД?
Да может, например, для более спокойного перевода производственной системы, когда неудобно (или не возможно) перевести на новую версию все сервера и всех клиентов за один раз.
- избежны ли проблемы совметимости у разработчика приложения (в данном случае для БД), который желает проверить работу приложения с разными версиями?
Да избежны. Для этого лишь нужно внимательно читать соответствующие документы, опубликованные на сайте ИБМ, и следовать им буквально.
Этими предварительными рассуждениями, на мой взгляд, покрываются пункты 1-5 Вашего постинга (в моей модификации).
6. Это вам ИБМ сказало? Если бы это было так на самом деле то мы бы уже давно не видели ли бы такой фирмы на рынке.
7, 8. К сожалению не могу проверить, нет у меня Ваших продуктов, на МФ поддерживаю я DB2, понимаешь. Может кто-нибудь здесь бывает с DB2 UDB и может как-то прокомментировать?
9. Чтобы ехать нужен водитель, который знает как управлять соответствующим средством.
10. Нормальный подход в Вашем случае.
11. Нет, не для того чтобы наступать на грабли (знающие DB2 люди этого не делают), а чтобы вовремя убирать из-под ног грабли, которые как я понял ваши специалисты любят разбрасывать в том поле где вы добываете сено.
-
- Уже с Приветом
- Posts: 3982
- Joined: 13 Jul 2000 09:01
- Location: SVX -> BOS -> BUR -> SJC
zVlad wrote: 7, 8. К сожалению не могу проверить, нет у меня Ваших продуктов, на МФ поддерживаю я DB2, понимаешь. Может кто-нибудь здесь бывает с DB2 UDB и может как-то прокомментировать?
К сожалению, Вован прав - очень много несовместимости. Особенно с LOB'ами... Довольно большие различия между DB2 на разных платформах - Win/Linux, iSeries and z/OS... Это три больших лагеря. При этом на iSeries свои номера версий - что-то вроде 5.2 текущая. Более того, даже java'шные дрова разные на z/OS и всём остальном, не смотря на то, что IBM называет их JDBC Type 4 драйвер (писан целиком на java и должно по идее платформа должна быть не важна) но на практике видим, что всё совершенно иное... То есть select * from таблица_из_двух_колонок_типа_INT работает совместимо, но чуть копнёшь поглубже - всё приехали...
I hated LA
-
- Уже с Приветом
- Posts: 15410
- Joined: 30 Apr 2003 16:43
WildVlad wrote:zVlad wrote: 7, 8. К сожалению не могу проверить, нет у меня Ваших продуктов, на МФ поддерживаю я DB2, понимаешь. Может кто-нибудь здесь бывает с DB2 UDB и может как-то прокомментировать?
К сожалению, Вован прав - очень много несовместимости. Особенно с LOB'ами... Довольно большие различия между DB2 на разных платформах - Win/Linux, iSeries and z/OS... Это три больших лагеря. При этом на iSeries свои номера версий - что-то вроде 5.2 текущая. Более того, даже java'шные дрова разные на z/OS и всём остальном, не смотря на то, что IBM называет их JDBC Type 4 драйвер (писан целиком на java и должно по идее платформа должна быть не важна) но на практике видим, что всё совершенно иное... То есть select * from таблица_из_двух_колонок_типа_INT работает совместимо, но чуть копнёшь поглубже - всё приехали...
Мне кажется ВОВАН несколько про иную несовместимость говорит.
Вы хотите сказать, WildVlad, что Java дрова, предназначенные для скажем AS/400, плохо работают (или вовсе не работают) если их использовать для zOS?
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
zVlad wrote: - обязаны ли быть клиенты разных версий совметимы с разными версиями серверной части?
Зачем? Если всегда можно иметь правильную версию клиента и для этого не нужны никакие дополнительные усилия.
Нет
Бывает что один клиент работает с серверами разных версий одновременно.
Пример - DBA, который поддерживает все сервера и выполняет квери на них
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 525
- Joined: 01 May 2002 20:29
- Location: CT->MA->TX->UT
zVlad wrote:
- обязаны ли быть клиенты разных версий совметимы с разными версиями серверной части?
I just asked our DBA. He said he is using Oracle 9i client to connect to Oracle 7.3.4, Oracle 8.0.4, Oracle 8i (8.1.7.2) and Oracle 9i.
You can connect to Oracle 9i using Oracle 8 client. It is working and supported. You can connect to Oracle9iR1 using Oracle 7 client. It is working . However it is not supporting
PS DB2 must die
-
- Уже с Приветом
- Posts: 13724
- Joined: 16 Jan 2001 10:01
Lazy44 wrote:I just asked our DBA. He said he is using Oracle 9i client to connect to Oracle 7.3.4, Oracle 8.0.4, Oracle 8i (8.1.7.2) and Oracle 9i.
Ya sejchas kak raz zanimayus' migraciej i testiruyu JDBC i OCI klientov.
Servera - polovina 8i, chast' uzhe 9i.
Klienty - 8i, 9i, 10g.
Vse vrode rabotaet. Prichem chem starshe versiya klienta - tem bystree...
-
- Уже с Приветом
- Posts: 15410
- Joined: 30 Apr 2003 16:43
Dmitry67 wrote:zVlad wrote: - обязаны ли быть клиенты разных версий совметимы с разными версиями серверной части?
Зачем? Если всегда можно иметь правильную версию клиента и для этого не нужны никакие дополнительные усилия.
Нет
Бывает что один клиент работает с серверами разных версий одновременно.
Пример - DBA, который поддерживает все сервера и выполняет квери на них
What's wrong in having few clients on the same workstation?
-
- Уже с Приветом
- Posts: 15410
- Joined: 30 Apr 2003 16:43
Lazy44 wrote:zVlad wrote:
- обязаны ли быть клиенты разных версий совметимы с разными версиями серверной части?
I just asked our DBA. He said he is using Oracle 9i client to connect to Oracle 7.3.4, Oracle 8.0.4, Oracle 8i (8.1.7.2) and Oracle 9i.
You can connect to Oracle 9i using Oracle 8 client. It is working and supported. You can connect to Oracle9iR1 using Oracle 7 client. It is working . However it is not supporting
PS DB2 must die
For me it means that just interface between Oracle server and Oracle client has never been changed, Oracle client could be just simple pipe to send text from client application to server and vice versa. Which is might be good might be not good, depends on.
-
- Уже с Приветом
- Posts: 9885
- Joined: 18 Apr 2000 09:01
- Location: Moscow -> VA -> Boston, MA
У нас в тестировании помимо DB2 участвует и Оракл 8i и 9i. Причем как 32-х так и 64-х битные версии установленные на трех операционных системах - NT, Solaris, AIX. Тестирование ведется на 4 операционках (те же + Линукс) и любая комбинация будь то 8 на 9 или 9 на 8, 32 на 64 или 64 на 32 - работает без проблем.
А что касается Вашего, zVlad, ответа мне, то единственное с чем я могу согласиться это с тем, что документацию надо было читать внимательнее.
А что касается Вашего, zVlad, ответа мне, то единственное с чем я могу согласиться это с тем, что документацию надо было читать внимательнее.