dastapov: (Default)
[personal profile] dastapov
Он - это пресс-релиз. На самом деле, там еще есть пару мелких углов, но вписывать прибавку к EXP и ЧСВ можно уже сейчас. Я там собирал требования, писал кучи документов, мигрировал данные и интегрировал все добро в одну кучу. Вот какой я молодец

Впрочем, не обошлось без казусов. Некие бравые ребята написали на PL/SQL пакетик процедур, и, натурально, вставили его в Oracle. Другие бравые ребята взяли программу на C#.Net и давай оттуда эти процедуры использовать.

В тестовом окружении (Oracle 8.1.7) - все шикарно. В промышленном (Oracle 9i) - не выходит каменный цветок. Лишь только пытаешься вызвать какую-то процедуру - Оракл тут же говорит ORA-03113, end-of-file on communication channel. И закрывает соединение со своей стороны.

При этом с того же самого компьютера можно подключиться к базе при помощи sqlplus, вызвать искомую процедуру и получить результат. Без всяких ошибок. Хоть раз, хоть десять.

Разработчики на PL/SQL, естественно, тут же воспряли духом - ага, баг не у нас, оказывается! Только толку от этого знания немного - надо же, чтобы в конце-концов все заработало и в приложении на C#.Net.

Разработчики на C# говорят: это все потому, что мы ходим через ODBC. Однако фиг - утилита ODBC Test, написанная (судя по виду GUI) еще во времена Windows 3.1, замечательным образом вызывает процедуры через ODBC.

Тогда разработчики на C# говорят: это все потому, что мы все переписали и теперь работаем через OleDb. Надо поставить ораклового клиента и использовать ODP.NET оттуда. Поставили. Однако фиг - как падало, так и падает. Причем, только с Oracle 9i - с 8.1.7 по-прежнему все хорошо.

Тогда разработчики на C# говорят: это у вас фиговый Оракл. Но их посылают в сад, так как "у меня нет для вас другого Оракла, товарищ Жуков".

Параллельно все участники процесса насилуют Google в поисках других товарищей по несчастью. Классик говорил: "если любишь заглядывать в бездну, помни, что бездна может заглянуть в тебя". Так и происходит: гугл приносит мешок рассказов о том, как по всему земному шару люди бьются лбом об стену с ORA-03113.

Типичные истории звучат примерно так: "Мы тут написали софтину на C#.NET, которая ходит в оракл. С версией 9i и ODP 9.0.1.3.1 все было хоршо, но потом мы обновили ODP до 9.0.1.3.3 и началось - ORA-03113 через пол-часа работы. Мы два месяца плясали с отладчиками, и поняли: у нас на клиентской стороне connection pool, а Оракл со своей стороны временами закрывает соединения по тайм-ауту. В пуле они не инвалидируются, и когда такое соединение выбирается для выполнения запроса, возникает ORA-03113. Мы не можем убрать пул (все тормозит) и не можем убрать отключение по тайм-ауту (требование безопасности). Более того - мы откатили ODP, но проблема осталась! Помогите!". Читаешь, и понимаешь, что у нас еще не все так плохо :)

Хоть у нас все и падает сразу и пул явно ни при чем - попробовали поиграться с его отключением или параметрами. А вот фиг.

В конце-концов разработчики на C# говорят: "Мы сдаемся! К вам едет "мистер Вульф, который решает пробемы" (Криминальное чтиво).". Приезжает человек, который занимается исключительно troubleshooting-ом разной неведаной фигни.

Человек целый день колдует с компилятором C# и кучей разных библиотек и в конце-концов говорит: "я не знаю, что бы это значило, но факт таков - если я до вызова процедуры сделаю хотя бы один select, то все работает хорошо". Проверяем - натурально, так оно и есть. Может, дело в каких-то миллисекундных паузах? Нет, расставленные по коду паузы не помогают.

Пляски с бубном продолжаются еще день, но без особого результата. В конце-концов принимается волевое решение о том, что код на C# должен после открытия соединения сделать "select table_name from all_tables where owner=current_user" и вычитать первый элемент рекордсета.

И все начинает работать без сучка и задоринки. Мораль придумайте сами.
Page 1 of 3 << [1] [2] [3] >>

(no subject)

Date: 2009-08-17 07:06 pm (UTC)
From: [identity profile] bopm.livejournal.com
where rownum<=1 неплохо бы к такому селекту добавить, чтобы уж совсем без оверхита обойстись.

(no subject)

Date: 2009-08-17 07:06 pm (UTC)
From: [identity profile] yurri.livejournal.com
Использование ODBC в 2009 году в серьёзном инфраструктурном проекте это ещё круче, чем описанный баг.

(no subject)

Date: 2009-08-17 07:06 pm (UTC)
From: [identity profile] bopm.livejournal.com
Это да. Нативные драйвера придумали трусы.

(no subject)

Date: 2009-08-17 07:07 pm (UTC)
alexeyten: (Default)
From: [personal profile] alexeyten
Ааафигительно!!!

(no subject)

Date: 2009-08-17 07:10 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
А причина, почему начали с ODBC - еще круче.

У программистов на C# до этого не было опыта работы с Oracle, а с базами они работали только через ODBC.

Кстати, это было в 2008-м году, до 2009 ODBC не дожило ;)
Edited Date: 2009-08-17 07:10 pm (UTC)

(no subject)

Date: 2009-08-17 07:11 pm (UTC)
From: [identity profile] alexott.livejournal.com
а что в хачестве дискового хранилища? я насколько помню, центральный офис МТС в москве использовал EMC

(no subject)

Date: 2009-08-17 07:11 pm (UTC)
From: [identity profile] vsquash.livejournal.com
Почему у меня жотское чувства дежавю, что эту историю с селектом я уже где то слышал. Пару лет назад. Но в упор не могу вспомнить с кем она приключилась...

(no subject)

Date: 2009-08-17 07:11 pm (UTC)
From: [identity profile] yurri.livejournal.com
Ну вот тем более на C#, да. Это же само не получится, надо "специально предпринять усилия".

(no subject)

Date: 2009-08-17 07:12 pm (UTC)
From: [identity profile] ex-avpme.livejournal.com
Эх, грабли-костылики... классика жанра.

(no subject)

Date: 2009-08-17 07:12 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
FileNet P8

Касательно центрального офиса в МТС у меня другие сведения - если у них и есть EMC, то не для этих целей.

(no subject)

Date: 2009-08-17 07:15 pm (UTC)
From: [identity profile] alexott.livejournal.com
ну может уже перекрутили - там в свое время долго выбирали на чем архив делать - хитачи, 1ВМ, EMC и т.д. Я видимо уехал до того, как они выбрали :-)

(no subject)

Date: 2009-08-17 07:16 pm (UTC)
From: [identity profile] 4vanger.livejournal.com
$magic = true;
# your code here

(no subject)

Date: 2009-08-17 07:17 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Ну, у меня инфа тоже не первой свежести. Может действительно уже сделали архив, и именно на EMC.

(no subject)

Date: 2009-08-17 07:20 pm (UTC)
From: [identity profile] 4vanger.livejournal.com
Кстати, а вот всегда интересовало - а сам Оракл не помогает в таких случаях? Ведь по идее за лицензию не один десяток тысяч зелёных отвален - они не дают технический саппорт в таких случаях?

(no subject)

Date: 2009-08-17 07:20 pm (UTC)
From: (Anonymous)
А если вдруг (мнение дилетанта) написать обработку ORA-03113, и при её возникновении переинициализировать пул?

(no subject)

Date: 2009-08-17 07:21 pm (UTC)
From: [identity profile] baspr.livejournal.com
Не заметил, что не залогинен...

(no subject)

Date: 2009-08-17 07:22 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Ну, в этом конкретном случае проблема была не с пулом - все падало сразу же, а не через время.

(no subject)

Date: 2009-08-17 07:23 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Оракл сказал - в 10i все будет. Но апгрейд на десятку по целому ряду причин был невозможен.

(no subject)

Date: 2009-08-17 07:23 pm (UTC)
From: [identity profile] dimez.livejournal.com
Супер, спасибо! :)

(no subject)

Date: 2009-08-17 07:24 pm (UTC)
From: [identity profile] alexott.livejournal.com
кстати, а почему оракл такой старый? мы с 9-й в своей время очень много огребли проблем, особенно при высоких нагрузках - обработка платежей и т.п. В итоге уехали на 10-ку и большая часть проблем снялась сразу

(no subject)

Date: 2009-08-17 07:38 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Оракл такой, потому что он такой в той legacy-системе, с которой интерфейс. И другого не наливают :)

(no subject)

Date: 2009-08-17 07:40 pm (UTC)
From: [identity profile] r-a-d.livejournal.com
налетали в июле, разобрались за час, просто сообщение дебильное
p.s. до сих пор на 9ке, ибо у государства нет денег :)

(no subject)

Date: 2009-08-17 07:41 pm (UTC)
From: [identity profile] alexott.livejournal.com
все понятно. просто проблемы с ораклом - это стандартные грабли больших проектов :-)
P.S. правда было весело - ко мне пришли, и сказали, что ты будешь дата-архитектом - вот тебе оракл, проектируй :-) все мои отмазки, что людей с сертификатами оракла у нас как грязи, а у меня ни одного нет - не помогли

(no subject)

Date: 2009-08-17 07:41 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Просто интересно - а в каком контексте налетали и как разобрались?

(no subject)

Date: 2009-08-17 07:52 pm (UTC)
From: [identity profile] shmyg.livejournal.com
Ых, сколько денег народ распилил за тот проект, который вы переделывали. Некоторые даже свечные заводики в Самаре прикупили :)
Page 1 of 3 << [1] [2] [3] >>

Profile

dastapov: (Default)
Dmitry Astapov

May 2022

M T W T F S S
       1
2345678
9101112131415
161718 19202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags