Pull to refresh

Comments 3

Кривая экзотическая гадость!

Объясню. 4 года назад я имел редчайшее «удовольствие» плотно поработать с DB2 из-под WebSphere (и через JPA, и напрямки), и самолично нашёл пару-другую крайне неприятных багов в этом ихнем db2jcc4.jar.

Написан это тдрайвер кем-то, по всей видимости, гениальным, но перманентно пьяным, задней левой ногой, и не иначе как в тёмную октябрьскую ночь. Базовые вещи работают как положено, но фичи чуть-чуть попродвинутей лучше даже не пытаться использовать. Нам вот, например, нужно было блобы в базу писать. В тот же оракл в блоб через JDBC можно без проблем гигабайты лить, а тут производительность деградировала квадратично с каждым пакетом, а в итоге коннект к базе вообще умирал. И сама база слегка портилась.

Самое противное, что драйвер ещё и хорошенько обфусцирован в самых интересных местах. Пришлось хорошенько поломать голову над тем что выдал декомпилятор, прежде чем удалось понять, где там фигня написана. Зарепортили в IBM (это очень трудно и долго, но у нас была такая возможность), те пообещали поправить через пару релизов, в итоге не знаю чем закончилось, потому что ждать полгода нам было некогда, и блобы решили складывать не в базу, а на диск.

Ещё интереснее, что у IBM'а, по ходу, один отдел не может договориться с другим. Потому что при подгрузке этого самого драйвера WebSphere патчит его на лету, и заменяет несколько классов (очевидно, бажных) собственной реализацией. Покусочно, прямо вот байт-код патчит. Я чуть в осадок не выпал, когда это обнаружил. Но факт есть факт.

Не знаю, стало ли лучше за прошедшие 4 года, но мой совет на тот момент был — никогда эту гадость не используйте.
ODBC тоже не лучший представитель, то же DBNull вообще не работает и сваливается в исключение, но жить как-то надо.

Идеальным решением было бы переписать JDBC и ODBC под .NET, без всех их недостатков.
Теоретически можно. Протокол по которому работает DB2, называется DRDA и он стандартизирован IBMом. Вопрос в том, стоит ли овчинка выделки, коли уж сам IBM не может реализовать его без дурацких ошибок в своём же продукте.

Впрочем, у оракла есть бридж, следовательно, и собственная реализация. Но то оракл, большая корпорация.
Only those users with full accounts are able to leave comments. Log in, please.