Главная » Статьи для тега "транзакции"

Объявление транзакций в XML Spring

Добавлено Дата: 31 July, 2014 категория: Spring

В предыдущих версиях Spring объявление транзакций было связа- но с внедрением специального компонента TransactionProxyFactoryBean. Проблема с компонентом TransactionProxyFactoryBean состоит в том, что его использование ведет к разбуханию конфигурационных файлов Spring. К счастью, в настоящее время эта проблема была устранена, и теперь фреймворк Spring предлагает конфигурацион-

Читать »

Описание транзакций в четырех словах Spring Spring

Добавлено Дата: 24 July, 2014 категория: Spring

В лучших традициях разработки программного обеспечения была придумана аббревиатура, описывающая транзакции: ACID. Эта абб- ревиатура происходит от следующих слов.

# Atomic (атомарность) – транзакции состоят из одной или бо-

лее операций, объединенных в единицу работы. Атомарность гарантирует, что либо будут выполнены все операции, либо ни одна из них. Если все операции выполняются успешно, транз- акция завершается успехом. Если какая-то операция терпит неудачу, вся транзакция терпит неудачу и отменяется.

Читать »

Знакомство с транзакциями Spring

Добавлено Дата: 21 May, 2014 категория: Spring

Продемонстрируем применение транзакций на примере покупки билета в кино. Процесс покупки обычно включает в себя следующие операции:

# проверяется наличие свободных мест в зале;

# для каждого купленного билета количество свободных мест уменьшается на 1;

Читать »

Программное управление транзакциями в Spring

Добавлено Дата: 15 May, 2014 категория: Spring

Существуют два типа людей: любители покомандовать и те, кто командовать не любит. Любители покомандовать стремятся контро- лировать все и вся, и никому не доверяют. Если вы – разработчик и любите покомандовать, вы наверняка относитесь к числу людей, предпочитающих командную строку, и пишете свои методы доступа к свойствам, не доверяя эту работу среде разработки.

Читать »

Определение  транзакций с помощью аннотаций Spring

Добавлено Дата: 10 May, 2014 категория: Spring

Применение элемента <tx:advice> позволяет значительно упрос- тить объявление транзакций в конфигурационных XML-файлах Spring. А что, если я скажу, что можно добиться еще большего упро- щения? Что, если я скажу, что достаточно добавить в определение контекста приложения всего одну строку, чтобы обеспечить объяв- ление транзакций?

Читать »

Определение атрибутов транзакций Spring

Добавлено Дата: 2 May, 2014 категория: Spring

В Spring декларативные транзакции определяются с помощью атрибутов транзакций. Атрибуты транзакции – это описание осо- бенностей применения транзакции к методу. Всего имеется пять раз- личных атрибутов транзакции, как показано на рис. 7.3.

Фреймворк Spring предоставляет несколько механизмов объявле- ния транзакций, однако все они опираются на эти пять параметров,

Читать »

Транзакции базы данных в Android приложении

Добавлено Дата: 6 August, 2013 категория: Разработка для Android

Транзакции базы данных позволяют делать последовательности предложений SQL атомарными: либо все предложения выполняются успешно, либо ни одно из них не оказывает воздействия на базу данных. Это свойство может быть важным, например если в вашем приложении возникнет нештатная ситуация (допустим, крах системы). Транзакция гарантирует, что если устройство отключается прямо в ходе выполнения определенной последовательности операций, то ни одна из уже выполненных операций не отразится на базе данных. В контексте баз данных принято говорить, что транзакции SQLite обеспечивают пресловутые свойства ACID: http://ru.wikipedia.org/wiki/ACID.

Читать »

ТРАНЗАКЦИИ ФРАГМЕНТА – программирование Android

Добавлено Дата: 26 July, 2013 категория: Разработка для Android

 

Кроме применения тегирования, новый код также касается транзакций фрагментов. Еще раз дополним приложение, чтобы продемонстрировать ценность таких транзакций.

Прежде чем приниматься за транзакции, необходимо сделать небольшое отступление. Ранее мы отмечали, что в документации по разработке для Android рекомендуется, чтобы подклассы фрагмента не имели явных конструкторов. Итак, как же внешний объект передает состояние инициализации новому фрагменту? Класс Fragment поддерживает два метода, setArguments и getArguments, обеспечивающих такую возможность. Соответственно они позволяют внешнему вызывающему элементу – им может быть создатель фрагмента – сохранять пакет (Bundle) во фрагменте, а фрагменту – восстанавливать этот пакет когда-нибудь позднее.

Читать »

УРОВНИ ИЗОЛЯЦИИ

Добавлено Дата: 10 September, 2012 категория: SQL, Базы данных

Упорядочиваемость гарантирует изолированность транзакций, в той трактовке этого термина, которая применяется при описании свойств ACID. Одним из непосредственных и весьма благоприятных следствий из этого факта является то, что если все графики

—    упорядочиваемые,  то  прикладной программист,  разрабатывая  код  для  любой конкретной транзакции А, не должен обращать абсолютно никакого внимания на тот факт, что одновременно с ней в системе может выполняться некоторая другая транзакция в.

Читать »

ВЗАИМОБЛОКИРОВКА

Добавлено Дата: 29 August, 2012 категория: SQL, Базы данных

Выше было описано, как может использоваться блокировка (а точнее, строгий протокол двухфазной блокировки) для решения трех основных проблем  управления параллельным выполнением. Но, к сожалению, было также показано, что блокировка может сама стать причиной возникновения проблем, из которых основной является проблема взаимоблокировки. В предыдущем разделе были приведены два примера взаимоблокировки. На рис. 16.10 показан немного более общий вариант этой проблемы; на данном рисунке через rl и г2 обозначены любые блокируемые ресурсы, а не только кортежи базы данных (см. раздел 16.9), а с помощью операторов "LOCK . . . EXCLUSIVE" обозначаются  любые операторы, для выполнения которых требуется выдача запросов на блокировки X, явных или неявных.

Читать »

Транзакция как  логическая единица работы

Добавлено Дата: 28 August, 2012 категория: SQL, Базы данных

Транзакция — это логическая единица работы; она начинается с выполнения операции BEGIN TRANSACTION и заканчивается операцией COMMIT или ROLLBACK. На рис. 15.1 показан псевдокод транзакции, которая предназначена для перечисления суммы 100 долл. со счета 123 на счет 456. Вполне очевидно, что операция перевода денег с одного счета на другой, которая по самой своей сути является неразрывной, фактически требует выполнения в базе данных двух отдельных операций обновления. Более того, сама база данных на этапе между этими двумя обновлениями находится в недопустимом состоянии, в том смысле, что она не отражает действительное состояние дел в реальном мире; вполне очевидно, что в банковской практике перевод денег с одного счета на другой не должен влиять на суммарное количество денежных средств на рассматриваемых счетах, а в данном примере после выполнения первого обновления сумма в 100 долл. на время "исчезает" из

Читать »

СРЕДСТВА блокировки ЯЗЫКА SQL

Добавлено Дата: 27 August, 2012 категория: SQL, Базы данных

В стандарте SQL не предусмотрены какие-либо явно заданные средства блокировки; фактически в нем вообще не упоминается блокировка как таковая12.  Но этот стандарт требует, чтобы в его реализации были предусмотрены обычные  гарантии, касающиеся взаимного вмешательства (или, скорее, его отсутствия) между одновременно выполняемыми транзакциями. Что еще более важно, в этом стандарте требуется, чтобы обновления, внесенные любой конкретной транзакцией Т1, не становились бы доступными для любой другой транзакции Т2  до тех пор (или только после того), пока не произойдет фиксация транзакции Т1.

Читать »

БЛОКИРОВКА

Добавлено Дата: 24 August, 2012 категория: SQL, Базы данных

Как было указано в разделе 16.1, все проблемы, описанные в разделе 16.2, могут быть устранены с помощью механизма управления параллельным выполнением, называемого блокировкой. В его основе лежит простая идея — если для некоторой транзакции А требуется гарантия, чтобы определенный объект, в котором она заинтересована (как правило, кортеж базы данных), не изменился каким-то образом без ее ведома (как описано выше), она приобретает блокировку на этот объект (как принято называть соответствующую операцию). Неформально выражаясь, следствием приобретения блокировки является то, что к рассматриваемому объекту, условно говоря, "блокируются доступ других транзакций", и поэтому, в частности, предотвращается возможность внесения ими изменений. Благодаря этому транзакция А может продолжать свои операции обработки в полной уверенности в том, что рассматриваемый объект останется в определенном состоянии до тех пор, пока он требуется для этой транзакции.

Читать »

СРЕДСТВА SQL ДЛЯ РАСПРЕДЕЛЕННЫХ СИСТЕМ

Добавлено Дата: 23 August, 2012 категория: SQL, Базы данных

В настоящее время в языке SQL отсутствует поддержка9 настоящих распределенных систем баз данных. Безусловно, в области обработки данных  никакой поддержки и не требуется — основная задача распределенной базы данных, с точки зрения пользователя, состоит в том, чтобы сохранить возможности обработки данных неизменными. Тем не менее, требуются операции определения данных, такие как FRAGMENT, REPLICATE И т.д. [15.6]. Однако до сих пор такие операции в языке SQL отсутствуют.

Читать »

ПРОБЛЕМЫ РАСПРЕДЕЛЕННЫХ СИСТЕМ

Добавлено Дата: 19 August, 2012 категория: SQL, Базы данных

В этом разделе подробно рассматриваются проблемы, которые упоминались в разделе 21.3. Ключевая проблема распределенных систем состоит в том, что коммуникационные сети, по крайней мере, сети, которые охватывают большую  территорию, или глобальные сети, пока остаются медленными. Обычная  глобальная сеть чаще всего имеет среднюю скорость передачи данных от 5 до 10 тысяч байтов в секунду. Обычный же жесткий диск имеет скорость обмена данными около 5—10 миллионов байтов в секунду. (С другой стороны, некоторые локальные сети поддерживают скорость обмена данными того же порядка, что и  диски.) Поэтому основная задача распределенных систем (по меньшей мере, в случае глобальной сети, а также до некоторой степени и в случае локальной сети) — минимизировать использование сетей, т.е. минимизировать количество и объем передаваемых сообщений. Решение этой задачи, в свою очередь, затрудняется изза проблем в нескольких дополнительных областях. Ниже приведен список таких областей, хотя нельзя гарантировать, что он является полным.

Читать »