Такая совместимая DB2

User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Сегодня имел проблемы с jdbc thin клиентом Oracle от 8.1.6, пытался соединятся с базой 10G - фиг вам - Unknown user/password. C клиентом от 10G никаких проблем. Просто к сведению.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

WildVlad wrote:...............
Идилия продолжалась до того момента пока не посмотрели что на z/OS IBM поставляет СОВЕРШЕННО другую версию java-кода для дров (как не вспомнить про "написано один раз - не работает ни где" :mrgreen:). Спрашивается чего им не хватило виндовской версии дров? Более того, запустить виндовские дрова на z/OS не получилось - чего то типа не хватило (есть смутное подозрение на EBCDIC, но это может быть и не так).

.......


Вот этот вот Ваш абзац не дает мне покоя сегодня весь день. Вы уверены тезка, что драйвер выполняется через виртуальную машину Javа? А как же с производительностью? Если же, как я понимаю, драйвера пишутся для каждого процессора свои (и должны писаться свои), и выполняются они не в виртуальной машине, то естественно виндовский драйвер работать на МФ не будет. И для AS/400 И для RS/6000 и для НP Вам будет нужен свой драйвер.
Однако, как я помню, из нашего давнего proof of concept, можно доставать МФ как через драйвер лежащий на самой МФ так и через драйвер лежащий на шлюзе, который может быть чем угодно.
Пожалуйста укажите что не так в моих рассуждениях, я к сожалению не имею базы для проверки их.
User avatar
WildVlad
Уже с Приветом
Posts: 3982
Joined: 13 Jul 2000 09:01
Location: SVX -> BOS -> BUR -> SJC

Post by WildVlad »

zVlad wrote:
WildVlad wrote:...............
Идилия продолжалась до того момента пока не посмотрели что на z/OS IBM поставляет СОВЕРШЕННО другую версию java-кода для дров (как не вспомнить про "написано один раз - не работает ни где" :mrgreen:). Спрашивается чего им не хватило виндовской версии дров? Более того, запустить виндовские дрова на z/OS не получилось - чего то типа не хватило (есть смутное подозрение на EBCDIC, но это может быть и не так).

.......


Вот этот вот Ваш абзац не дает мне покоя сегодня весь день. Вы уверены тезка, что драйвер выполняется через виртуальную машину Javа? А как же с производительностью? Если же, как я понимаю, драйвера пишутся для каждого процессора свои (и должны писаться свои), и выполняются они не в виртуальной машине, то естественно виндовский драйвер работать на МФ не будет. И для AS/400 И для RS/6000 и для НP Вам будет нужен свой драйвер.
Однако, как я помню, из нашего давнего proof of concept, можно доставать МФ как через драйвер лежащий на самой МФ так и через драйвер лежащий на шлюзе, который может быть чем угодно.
Пожалуйста укажите что не так в моих рассуждениях, я к сожалению не имею базы для проверки их.


zVlad, мы с вами не совсем тёзки :mrgreen: - это просто у меня ник такой. Ну да ладно, по существу вопроса:

Для Java существуют несколько типов JDBC-драйверов. Вот как говорится первоисточник классификация дров: http://java.sun.com/products/jdbc/driverdesc.html

Если прочитать, что есть Type 4, то получается, что это дрова полностью писанные на Java и использующие родной протокол базы (для Db2 v8 этим протоколом является DRDA - он конечно не совсем родной, но всё же).

Далее, JDBC Url в случае DB2v8 JDBC-драйвера выглядит вот так: jdbc:db2://host:port/DBName ну и по-идее ничего на клиенте настраивать не надо. Частный случай - host == localhost и все счастливы :D

Зная, что дрова писаны на ПОЛНОСТЬЮ на Java, разумно было бы предположить, что они одинаковые на всех платформах. Однако это не есть так в z/OS-случае - дрова лежат другие (правда совместимые по вызову - то бишь вместо com.db2.jcc.DB2Driver лежит класс-заглушка расширяющая какой-то "настоящий" класс). При этом скопировать "виндовские" jar'ы на USS z/OS и получить через них коннекцию не получилось. После чего мы прочитали очередные "описания будущего в прошедшем времени", поставили какой-то update DB2 на z/OS, откопали их дрова, я скачал их на винду, распаковал в каталог и сравнил с виндовскими (сначала убедился, что даже структура каталогов разная), потом убедился WinDiff'ом, что даже файлы с совпадающими именами разные, ну а потом засунул в Eclipse и по-reverse engineer'ил их чуток - те и другие.

Зная всё это какие напрашиваются выводы? Что type 4 - не совсем Type 4 и что-то использует native? Но с другой стороны, если скопировать v8 windows драйвер на другую винду то всё работает...

Так я и не понял, чего они так намутили... Такое предположение, что у них "Type4" драйвер использует какие-то классы от Type 2 драйвера, а вот они-то и разные на z/OS и Windows (даже имя класса драйвера разное).

Но результат на лицо (или на лице?) бинарную кроссплатформенную совместимость "Type4" драйвер не обеспечивает...
I hated LA
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

К сожалению, Вы WildVlad, на мой главный вопрос не ответили. Про виртуальную машину. Хорошо усилю вопрос. Как Вы думаете должна быть реализована сама виртуальная машина Java? Тоже как переносимая в бинарнике? Ну уж это точно не возможно, согласитесь?
User avatar
BOBAH
Уже с Приветом
Posts: 9885
Joined: 18 Apr 2000 09:01
Location: Moscow -> VA -> Boston, MA

Post by BOBAH »

zVlad wrote:Вы знаете ВОВАН, когда я это осознал много лет назад мне стало жить намного легче. Как показывает мне моя практика, в документации ИБМ есть ответы почти на все вопросы. Если же есть также доступ к IBMLink, Вы вообще можете почувствовать себя непобедимым.


Ответы там конечно есть, но вот найти их весьма непросто.
Хороший пример, кстати - поиск в online help по версии 8 на сайте IBM работает весьма странно - например если задать поиск по коду ошибки (типа SQL0102N), то вывалится миллион ссылок и нужная (с описанием ошибки) будет где-то в середине списка.
User avatar
WildVlad
Уже с Приветом
Posts: 3982
Joined: 13 Jul 2000 09:01
Location: SVX -> BOS -> BUR -> SJC

Post by WildVlad »

zVlad wrote:К сожалению, Вы WildVlad, на мой главный вопрос не ответили. Про виртуальную машину. Хорошо усилю вопрос. Как Вы думаете должна быть реализована сама виртуальная машина Java? Тоже как переносимая в бинарнике? Ну уж это точно не возможно, согласитесь?

Нет. Но главный поинт java в том, что бинарники java-программ переносимы, если они не используют native библиотек. Иначе вообще в чём смысл java? не так ли? А IBM называя свой драйвером "Type4" косвенно говорит о бинарной переносимости (по крайне мере, я так сначала считал). На проверку оказалось это далеко не так...
I hated LA
vc
Уже с Приветом
Posts: 664
Joined: 05 Jun 2002 01:11

Post by vc »

JustMax wrote:Сегодня имел проблемы с jdbc thin клиентом Oracle от 8.1.6, пытался соединятся с базой 10G - фиг вам - Unknown user/password. C клиентом от 10G никаких проблем. Просто к сведению.


You'd better check your user name/password as the code below works just fine both with the thin and thick drivers connecting from 8.1.7 to 10g:

Code: Select all

import java.sql.*;
public class test1 {

   public static void main(String[] args) throws Exception{
      
      Class.forName("oracle.jdbc.driver.OracleDriver");
      //String url = "jdbc:oracle:oci:@staging1_cdb";
      String url = "jdbc:oracle:thin:@staging1:1521:cdb";
      Connection conn = DriverManager.getConnection(url, "vc", "vc");
   
      conn.close();
   }
}

VC
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

vc wrote:You'd better check your user name/password as the code below works just fine both with the thin and thick drivers connecting from 8.1.7 to 10g:

[code]
VC


С тривиальным соединением наверное нет проблем, но
я работаю с encripted паролями. Encription делается TopLink от 10G используя оракловый encriptor. Так вот попытка соединения через 8.1.6 дает или ArrayIndexOutOfBounds в самом драйвере или Uncnown User/Password.
vc
Уже с Приветом
Posts: 664
Joined: 05 Jun 2002 01:11

Post by vc »

JustMax wrote:
vc wrote:You'd better check your user name/password as the code below works just fine both with the thin and thick drivers connecting from 8.1.7 to 10g:

[code]
VC


С тривиальным соединением наверное нет проблем, но
я работаю с encripted паролями. Encription делается TopLink от 10G используя оракловый encriptor. Так вот попытка соединения через 8.1.6 дает или ArrayIndexOutOfBounds в самом драйвере или Uncnown User/Password.


Well, all Oracle connections are "trivial'. TopLink just uses a connection pool consisting of those connections, that's all.

Speaking of encryption, all Oracle passwords are encrypted by default (in 8i and above), so it's unclear what you mean by encrypted passwords -- they are always encrypted.

Be it as it may, I don't doubt your words. I am just curious about the problem itself as we may face it too with migration to 10g. Could you post the following:

1. Oracle JDBC version you are using (classes12.zip ?);
2. The driver type (thin/thick)
3. The exception stack

You can send a private message so as not to clutter this thread.

Thanks.

VC
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

WildVlad wrote:
zVlad wrote:К сожалению, Вы WildVlad, на мой главный вопрос не ответили. Про виртуальную машину. Хорошо усилю вопрос. Как Вы думаете должна быть реализована сама виртуальная машина Java? Тоже как переносимая в бинарнике? Ну уж это точно не возможно, согласитесь?

Нет. Но главный поинт java в том, что бинарники java-программ переносимы, если они не используют native библиотек. Иначе вообще в чём смысл java? не так ли? А IBM называя свой драйвером "Type4" косвенно говорит о бинарной переносимости (по крайне мере, я так сначала считал). На проверку оказалось это далеко не так...

Мне кажется все это так и есть, но только в отношении прикладных программ. Системные компоненты, из-за производительности, всегда будет делаться на наборе команд конкретного процессор.
Вот когда останется ровно один процессор (ИБМ :D ) тогда все будет переносимо без вопросов и без ограничений. Да и проблемы такой не будет.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

BOBAH wrote:
zVlad wrote:Вы знаете ВОВАН, когда я это осознал много лет назад мне стало жить намного легче. Как показывает мне моя практика, в документации ИБМ есть ответы почти на все вопросы. Если же есть также доступ к IBMLink, Вы вообще можете почувствовать себя непобедимым.


Ответы там конечно есть, но вот найти их весьма непросто.
Хороший пример, кстати - поиск в online help по версии 8 на сайте IBM работает весьма странно - например если задать поиск по коду ошибки (типа SQL0102N), то вывалится миллион ссылок и нужная (с описанием ошибки) будет где-то в середине списка.


У меня, на моем компьютере, всегда "открыты" как минимум два документа: "Messages and codes", и "SQL Reference". Где я и гляжу описание сообщений например. А Help он на то и help, чтобы выдавать как можно больше ссылок - кто знает что тебе надо. Первым источником должны быть доки, которых у ИБМ навалом. По UDB я использую вот этот линк:

http://www-306.ibm.com/cgi-bin/db2www/data/db2/udb/
winos2unix/support/v8pubs.d2w/en_main

А если документации не хватает, используется IBMLink - интернетовская, платная служба поддержки клиентов. По ней можно поискать по ключевым словам - если что-нибудь не понятное из доков, найти проблему и как она решается, FAQ, задать вопрос (и на него обязательно ответят) заказать upgrade или отдельные фиксы.
User avatar
WildVlad
Уже с Приветом
Posts: 3982
Joined: 13 Jul 2000 09:01
Location: SVX -> BOS -> BUR -> SJC

Post by WildVlad »

zVlad wrote: Мне кажется все это так и есть, но только в отношении прикладных программ. Системные компоненты, из-за производительности, всегда будет делаться на наборе команд конкретного процессор.

Не правда ваша. В том то и основной поинт Type 4 драйвера, что он написан "на наборе команд java-байт кода" и производительность не такой уж big deal потому как JITC. Но переносимости тем не менее это не помогло. Убили её. Долго ли умеючи?

На самом деле жить с этим можно. Не ругаю я IBM, я всего лишь говорю, что она не "белая и пушистая", а такая же как все, со своими заморочками... Да и дружим мы с ibm по своим каналам - та же 8ая db2 for z/OS у нас уже почти год как стоит (сначала бетты, щас по-моему и GA поставили, по крайней мере обещались поставить)...
I hated LA
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Post by flip_flop »

zVlad wrote: Вот когда останется ровно один процессор (ИБМ :D ) тогда все будет переносимо без вопросов и без ограничений. Да и проблемы такой не будет.

:mrgreen: Эта фраза очень четко характеризует направленность Вашего энтузиазма: "когда все будет как я хочу, то и проблем не будет". Когда рак на горе свистнет, когда останется только [напевая мотивчик из рекламы] ИБМ,ИБМ,ИБМ ... майнфрeйм, майнфрeйм, майнфрeйм ... ИБМ хорошая фирма, но чрезмерное ее восхваление ее апологетами набивает оскомину.

Токмо ради возвращения на грешную землю:
"Worldwide Processor Market Share 2003
Intel -- 80%
AMD -- 7%
Motorola -- 4%
IBM -- 2%
That leaves approximately 7% for other. "

Однако же мечтать никто не воспрещает - мечты, мечты, где ваша сладость? Только не злоупотребляйте пожалуйста - "що занадто то не здраво"
--
Дискуссия - лучший метод закрепить оппонента в его заблуждениях

P.S. О дружбе с ИБМ - начинал с перфокарт //** JOB DD ** на ЕС 1033, затем использовал STM, лаптоп от ИБМ, 8b/10b енкодинг/декодинг от той же ИБМ. Никто заслуг ИБМ не умаляет, однако же и носиться с этим названием тоже не гоже.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

WildVlad wrote:.....та же 8ая db2 for z/OS у нас уже почти год как стоит (сначала бетты, щас по-моему и GA поставили, по крайней мере обещались поставить)...


Счастливые люди. А у нас все еще 6-ка. И не потому (для тех кто хочет поддеть) что есть какие-то тех. проблемы - чисто бизнес issue. Зачем говорят если все и так хорошо.
Кстати, WildVlad, какие-нибудь есть впечатления о производительности когда перходили на 8-ку? Может как-то через это зацепить наших менеджеров, чтобы захотели 8-ку. Или что-нибудь ещё восхитительное.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

flip_flop wrote:
zVlad wrote: Вот когда останется ровно один процессор (ИБМ :D ) тогда все будет переносимо без вопросов и без ограничений. Да и проблемы такой не будет.

.............
Никто заслуг ИБМ не умаляет, однако же и носиться с этим названием тоже не гоже.


Да это шутка была - не более. Я и смайлик прицепил.
А если без шуток, то если бы я тут воду не мутил на форуме, то об ИБМ бы и "лапоть не звенел". А это не правильно - ИБМ не последняя в ИТ. И я уверен, что то что я делаю - на пользу всем. Нельзя считаться образованным в ИТ человеком, ничего при этом не зная об ИБМ продуктах и технологиях. Еще хуже - зная ложные мифы.

Return to “Вопросы и новости IT”