Так значит проблема с локами в Оракл тоже есть? Ах какая досада, а я то так понимал Вас и других здешних знатоков что в Оракл таких проблем нет.iDesperado wrote:подождать 60 секунд пока строка разлочится, на 61 секунде выдаст ORA-xxxx resource busyzVlad wrote: А что собственно предполагается в Оракл ждать в этой конструкции? Уж не освобождения ли залоченного ресурса? А что произойдет в случае nowait?
при nowait выдаст сразу ORA-xxxx resource busy
ЗЫ. sckip locked в оракле тоже есть, но не докумкентирован, а значит не рекомендован к использованию. инсайдеры говорят Advanced Quenes используют такую конструкцию.
JP Morgan Chase Oracle database outage
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
дальше я озвучу после того как вы выключите режим тролинга на примере логической блокировки.zVlad wrote: Против арифметики не было никаких возражений. Что дальше то? Сколько локов на самом деле требуется и от чего это зависит - вот о чем можно было бы поговорить, а мы застряли на том что память для МФ стоит сумашедшие деньги.
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
Не понял. О чем Вы?iDesperado wrote:дальше я озвучу после того как вы выключите режим тролинга на примере логической блокировки.zVlad wrote: Против арифметики не было никаких возражений. Что дальше то? Сколько локов на самом деле требуется и от чего это зависит - вот о чем можно было бы поговорить, а мы застряли на том что память для МФ стоит сумашедшие деньги.
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: JP Morgan Chase Oracle database outage
так мы договорились что дб2 не предоставляет магических средств, которые бы исключали необходимость логических локов для веб аппликаций?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
Ба, еще один в эзотерику подался. Так и не с кем будет поговорить о делах наших скорбных.Dmitry67 wrote:так мы договорились что дб2 не предоставляет магических средств, которые бы исключали необходимость логических локов для веб аппликаций?
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Их здесь сотни, нет тысячиzVlad wrote:Ба, еще один в эзотерику подался. Так и не с кем будет поговорить о делах наших скорбных.Dmitry67 wrote:так мы договорились что дб2 не предоставляет магических средств, которые бы исключали необходимость логических локов для веб аппликаций?

In vino Veritas!
-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
Пока вижу только троих.crypto5 wrote:Их здесь сотни, нет тысячиzVlad wrote:Ба, еще один в эзотерику подался. Так и не с кем будет поговорить о делах наших скорбных.Dmitry67 wrote:так мы договорились что дб2 не предоставляет магических средств, которые бы исключали необходимость логических локов для веб аппликаций?
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Жена звонит мужу на мобильный:zVlad wrote:Пока вижу только троих.crypto5 wrote:Их здесь сотни, нет тысячиzVlad wrote:Ба, еще один в эзотерику подался. Так и не с кем будет поговорить о делах наших скорбных.Dmitry67 wrote:так мы договорились что дб2 не предоставляет магических средств, которые бы исключали необходимость логических локов для веб аппликаций?
- Алло, ты где?
- Я в машине, на садовом.
- Ты там осторожнее, по телевизору показывают - там какой-то сумасшедший по встречной полосе едет!!!
- Ты не поверишь, их здесь сотни, нет тысячи!!!
In vino Veritas!
-
- Уже с Приветом
- Posts: 8881
- Joined: 17 Jun 2003 04:41
Re: JP Morgan Chase Oracle database outage
А в чем состоит проблема-то? Ну да, можно таймаут указать в команде, хоть в Oracle, хоть в MS SQL, хоть в MySQL. Толку-то.zVlad wrote:Так значит проблема с локами в Оракл тоже есть? Ах какая досада, а я то так понимал Вас и других здешних знатоков что в Оракл таких проблем нет.
Вы позабыли, возможно, но цирк начался с того как одним знатоком DB2 было написано следующее:
Было приведено несколько примеров, на которых многократно, с "пожалуйста", предлагалось продемонстрировать "верный подход к этому вопросу". Как оказалось, верный подход заключается в том чтобы ничего не делать, проблему не решать, а вопрощающим рассказывать о их тупости и невежестве. Подход знакомый, соблюден со всеми приличиями (включая упоминания всяких сертификатов и грозных аббревиатур), но верным его назвать труднологоческие локи - это проявление слабости (незнаю какой) native локов тех БД с которыми видимо Вы работаете. В случае ДБ2 на МФ в этом нет необходимости и этим реально не пользуются. Хотя я не стану исключать что спец, вроде Вас, попав в ДБ2 станет пытаться применять свой неверный подход к этому вопросу.

-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
Хорошо. Давайте попробуем спуститься на уровень Ваших примеров. Не судите строго если мой пример Вам тоже покажется наивным.Zombie416 wrote:....
Вы позабыли, возможно, но цирк начался с того как одним знатоком DB2 было написано следующее:Было приведено несколько примеров, на которых многократно, с "пожалуйста", предлагалось продемонстрировать "верный подход к этому вопросу". Как оказалось, верный подход заключается в том чтобы ничего не делать, проблему не решать, а вопрощающим рассказывать о их тупости и невежестве. Подход знакомый, соблюден со всеми приличиями (включая упоминания всяких сертификатов и грозных аббревиатур), но верным его назвать труднологоческие локи - это проявление слабости (незнаю какой) native локов тех БД с которыми видимо Вы работаете. В случае ДБ2 на МФ в этом нет необходимости и этим реально не пользуются. Хотя я не стану исключать что спец, вроде Вас, попав в ДБ2 станет пытаться применять свой неверный подход к этому вопросу.
1. Делаем раз (выбираем "свободные" тикеты на запрошенный рейс):
Code: Select all
SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA
Code: Select all
SELECT * FROM Tickets WHERE TicketID=@TicketID .... FOR UPDATE
3. Coобщаем клиенту что у него 15 минут чтобы купить понравившийся ему билет и запускаем счетчик (по времени). Клиент принимает решение. Мы завершаем UPDATE и заканчиваем транзакцию. Локи в количестве 1 (одна) штука удаляется.
Если посмотреть не так предвязато как это любят мои "единомышленники" здесь на форуме, то получается ровным счетом тоже самое что и в Вашем примере, только проще и с большим автоматизмом, т.к. никаких исключительных ситуаций обрабатывать (пусть даже "элементарно") не нужно, все сделает RDBMS.
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
2zVlad
1.если у вас уровень Read Commited в шаге 2 вы получите эксепшен, т.к. пока клиент раздумывал запись которую выбрал клиент могли заблокировать конкурирующие транзакции
если у вас уровень выше, вы в шаге 1 заблокировали на 15 минут все свободные билеты.
2. как вы вебного пользователя собрались связывать с транзакцией субд ?
1.если у вас уровень Read Commited в шаге 2 вы получите эксепшен, т.к. пока клиент раздумывал запись которую выбрал клиент могли заблокировать конкурирующие транзакции
если у вас уровень выше, вы в шаге 1 заблокировали на 15 минут все свободные билеты.
2. как вы вебного пользователя собрались связывать с транзакцией субд ?
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: JP Morgan Chase Oracle database outage
Есть мнение что когда зайдет следующий клиент и сделает запрос:zVlad wrote:Хорошо. Давайте попробуем спуститься на уровень Ваших примеров. Не судите строго если мой пример Вам тоже покажется наивным.Zombie416 wrote:....
Вы позабыли, возможно, но цирк начался с того как одним знатоком DB2 было написано следующее:Было приведено несколько примеров, на которых многократно, с "пожалуйста", предлагалось продемонстрировать "верный подход к этому вопросу". Как оказалось, верный подход заключается в том чтобы ничего не делать, проблему не решать, а вопрощающим рассказывать о их тупости и невежестве. Подход знакомый, соблюден со всеми приличиями (включая упоминания всяких сертификатов и грозных аббревиатур), но верным его назвать труднологоческие локи - это проявление слабости (незнаю какой) native локов тех БД с которыми видимо Вы работаете. В случае ДБ2 на МФ в этом нет необходимости и этим реально не пользуются. Хотя я не стану исключать что спец, вроде Вас, попав в ДБ2 станет пытаться применять свой неверный подход к этому вопросу.
1. Делаем раз (выбираем "свободные" тикеты на запрошенный рейс):
2. Даем клиенту выбрать интересующий его тикет, и выдаем в ответ на его выбор:Code: Select all
SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA
RDBMS накладывает 1 (один) лок на одну строку.Code: Select all
SELECT * FROM Tickets WHERE TicketID=@TicketID .... FOR UPDATE
3. Coобщаем клиенту что у него 15 минут чтобы купить понравившийся ему билет и запускаем счетчик (по времени). Клиент принимает решение. Мы завершаем UPDATE и заканчиваем транзакцию. Локи в количестве 1 (одна) штука удаляется.
Если посмотреть не так предвязато как это любят мои "единомышленники" здесь на форуме, то получается ровным счетом тоже самое что и в Вашем примере, только проще и с большим автоматизмом, т.к. никаких исключительных ситуаций обрабатывать (пусть даже "элементарно") не нужно, все сделает RDBMS.
Code: Select all
SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA
ну и присоединяюсь к вопросам iDesperado
In vino Veritas!
-
- Уже с Приветом
- Posts: 1962
- Joined: 24 Feb 2001 10:01
- Location: Челябинск -> Everett, WA
Re: JP Morgan Chase Oracle database outage
Тут немного не согласен. Никто обычно не сочиняет мифов о неуловимом Джо, а для большинства присутствующих DB2 и MF - это как раз тот самый Джо и есть. Кто постарше, тот свой выбор сделал уже давно, и ему данная платформа глубоко параллельна. Ну работает оно где-то там, ну и бог с ним. Для нового поколения - тем более, им важнее попасть в свежую струю, чтобы было кул, и DB2 в это ну никак не вписывается. В-общем, наличие каких-то мифов о DB2 - это и есть самый главный мифzVlad wrote:Моя цель лишь поправлять наиболее горячие головы здесь на форуме, развеивая мифы о МФ и ДБ2 в частности. Увы в этой область очень высок уровень мифотворчество.

P.S. На этой неделе интервьюировал одного перца. У перца последний проект был на связке MF - Oracle. Ребята выгружали из MF данные в виде плоских файлов, грузили их в Oracle, там ваяли какой-то back-end и front-end, данные усиленно массировали и отправляли назад. Я ему говорю - все это интересно, но ведь можно было бы все то же самое сделать на самом MF, там у вас и DB2 есть, и REXX, и вообще много всего, на хрена такой overhead? А он грит - так все проще и быстрее...

-
- Уже с Приветом
- Posts: 15420
- Joined: 30 Apr 2003 16:43
- Has thanked: 1 time
Re: JP Morgan Chase Oracle database outage
1. Совершенно верно. Точно так же как и в примере Zombie416.iDesperado wrote:2zVlad
1.если у вас уровень Read Commited в шаге 2 вы получите эксепшен, т.к. пока клиент раздумывал запись которую выбрал клиент могли заблокировать конкурирующие транзакции
если у вас уровень выше, вы в шаге 1 заблокировали на 15 минут все свободные билеты.
2. как вы вебного пользователя собрались связывать с транзакцией субд ?
2. Не знаю. Никогда этим не занимался. Как то делается.
-
- Уже с Приветом
- Posts: 1349
- Joined: 28 Nov 2008 17:50
Re: JP Morgan Chase Oracle database outage
думаю не увидит, WHERE <condition> SKIP LOCKED DATA будет пытаться ставить шаред лок (или лок намерений, но тут не суть важно), который не совместим с апдейт локом. поэтому SKIP LOCKED DATA пропустит все, что залочено запросом FOR UPDATEcrypto5 wrote: Есть мнение что когда зайдет следующий клиент и сделает запрос:то он увидит залоченный билет, потому что операция select чтения является compatible с локом записи, который вы поставили используя select ... for update.Code: Select all
SELECT * FROM Tickets WHERE <condition> SKIP LOCKED DATA
Last edited by iDesperado on 27 Sep 2010 20:19, edited 1 time in total.