Вопрос : Multi-threading и рядки фиксировать дальше выбирает

Hi там,

this будет справедливо вообще вопрос и немного указатели, примеры или соединений к консультациям были бы great.

I конструировали базу данных которая раскрына в multi-threaded окружающей среде Java. Основно, будет обслуживания java которые постоянн бегут над базой данных, проверяющ для новых рекордов, уточняя их etc.

I снабдили магазин Procs для всех уточнений, получают etc и имеют все обернутые внутренние трудыы внутри proc магазина. До тех пор настолько хорошо.  Однако моя главная забота как делаю я останавливаю показатель или возможно показатели в немного таблиц получая обновленный между временем iим «выбирают» данные от их к уточнению времени iего фактическ показатель и поручают трудыы. Насколько я осведомленн трудыы не пнуть внутри, до уточнения, delete или вставке вызывают внутренность Trans clause.

So, котор пример учет be

Table имеет 2 показателя как so
AccID, НАЧИНАТЬ типа счета, Balance
1020, Джон Smith, €-128.00
1057, тростник Майк, €5839,00

I имеют немного обслуживаний побежать над этими таблицами смотря, что сделали по-разному задачи на records.
John Smith находятся в красном цвете, но провод пришел до конца для некоторых фондов поэтому фонды уточнения обслуживания идут добавить €1000 в его account.
In мое proc stor я хочу добавляю показатель для фондов добавленных до одна таблица и уточните таблицу учета. Я начинаю трудыы. Настолько после этого я делаю отборный баланс от учета и получаю €-128.  Я после этого создаю показатель провода в таблице WireDetails и иду уточнить баланс в accounts.

How делаю я останавливаю другое serivice приходя внутри и делать изменяет к таблице учета, по мере того как я только выбрал от it.

Sorry для придурковатого примера но я надеюсь вы видит они что I, m пытаясь остановить…
thanks M
class=

Ответ : Multi-threading и рядки фиксировать дальше выбирает

Препятствуйте нам сказать вас имейте таблицу t (I int нулевое, чарс (1))
введите в t выберите 1, «a»

проденьте нитку вопросы A1 это:

начните трудыы
УСТАНОВИТЕ REPEATABLE УРОВНЯ ИЗОЛЯЦИИ ТРУДЫОВ ПРОЧИТАНО
выберите * от t где i=2


и после этого как раз сидит там. Вперед приходят резьба b и вопросы

выберите * от t где i=2
уточните a='c t установленное где i=2


1-ое из этих заявлений B преуспеет, но 2-ое одно не ждать до резьбы a выдавало поручает. Будет проблема однако: легко увидеть что b может легк отвергнуть изменение сделанное a, если он действует основывающ на, то он видит когда он восстановлял рядок. Для той причины, более лучшее выдать

a='c уточнения t установленное где i=2 и a='a

Это эффективно проверяет что b уточняет он думает он уточняет. И это точно как клиент-основанная стрелка работает, которая будет самым обычным типом стрелки используемой в сегодняшних средствах разработки программного обеспечения, специально размещённый в Интернетее: отсутствие трудыов, отсутствие замка, но во время проверки уточнения всех полей которые были прочитаны, и если любое изменяло, то, тогда сообщения ошибки к влиянию что другой потребитель дорабатывал resultset.

Если вы хотите исключить это, то вы должны выдать even more рестриктивный уровень SERIALIZABLE изоляции трудыов в резьбе b, и как только вы читаете рядки в a, уточняете их там путем использовать некоторую думмичную колонку как раз в этой цели. После этого b не будет увидеть рядки могут быть доработаны a - правильно, потому что в противном случае b не знал бы что эти рядки теперь работаются дальше A. Но это конечно приносит в вопрос a разбивая, выходя для обеда, etc, etc.

Для той причины, клиент-размещаемая стрелка будет вероятно практически дорогой сделать вс это, которое почему будет самым широко распространённый типом деятельностей базы данных сегодня.
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us