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

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

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

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

Читать »

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

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

Еще совсем недавно декларативное управление транзакциями бы- ло доступно только в контейнерах EJB. Но сейчас Spring предлага- ет аналогичную поддержку для POJO. Это – важная особенность Spring, потому что теперь для декларативного обеспечения атомар- ности операций не требуется создавать контейнеры EJB.

Читать »

Знакомство с поддержкой транзакций в Spring

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

Фреймворк Spring, как и EJB, предоставляет поддержку про- граммного и декларативного управления транзакциями. Но возмож- ности Spring в этом отношении намного шире, чем возможности EJB. Поддержка программного управления транзакциями в Spring су- щественно отличается от аналогичной ей поддержки в EJB. В от- личие от EJB, где используется реализация Java Transaction API (JTA), фреймворк Spring использует механизм обратных вызовов, изолирующий фактическую реализацию транзакций от программ- ного кода, использующего ее. В действительности поддержка управ- ления транзакциями в Spring даже не требует наличия реализации JTA. Если приложение использует только одно хранилище данных, Spring может использовать поддержку транзакций, предлагаемую самим механизмом хранения. В число поддерживаемых механиз- мов входят JDBC, Hibernate и Java Persistence API (JPA). Но если требования к транзакциям в приложении распространяются на не- сколько хранилищ, Spring может предложить поддержку распреде- ленных транзакций на основе сторонней реализации JTA. Подробнее поддержка программного управления транзакциями будет рассмат-

Читать »

Выбор диспетчера транзакций Spring

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

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

Читать »

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

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

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

Читать »

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

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

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

Читать »

Транзакции Java Transaction API

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

Если ни один из вышеупомянутых диспетчеров транзакций не от- вечает предъявляемым требованиям или если необходимо охватить транзакциями несколько источников данных (например, две или бо- лее различные базы данных), можно воспользоваться диспетчером JtaTransactionManager:

Читать »

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

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

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

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

Читать »

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

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

 

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

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

Читать »

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

Добавлено Дата: 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.

Читать »

ТРАНЗАКЦИИ

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

Примечание. Тему этого раздела нельзя отнести исключительно к теме реляционных систем. Тем не менее, она здесь уместна, поскольку понимание основной идеи необходимо для усвоения некоторых понятий и логичного  перехода к части II. Однако здесь данная тема намеренно рассматривается лишь поверхностно.

Читать »

ВОССТАНОВЛЕНИЕ ТРАНЗАКЦИИ

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

Транзакция начинается с выполнения оператора BEGIN TRANSACTION и заканчивается выполнением оператора COMMIT или ROLLBACK. Оператор COMMIT  устанавливает так называемую точку фиксации (которую называют  также  точкой синхронизации — syncpoint, особенно в ранее созданных системах). Точка фиксации соответствует (успешному) окончанию логической единицы работы и, следовательно, точке, в которой база данных находится (или будет находиться после фиксации) в непротиворечивом состоянии. В противовес  этому, после выполнения оператора ROLLBACK база данных вновь возвращается  в  состояние, в котором она была в момент начала обработки оператора BEGIN TRANSACTION, т.е. в предыдущую точку фиксации.

Читать »

УПРАВЛЕНИЕ ТРАНЗАКЦИЯМИ

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

Как уже говорилось во введении к настоящей части, эта и следующая  главы посвящены восстановлению и параллельности. Данные понятия очень тесно связаны и составляют части более общей темы управления  транзакциями.  Но с методической точки зрения желательно рассматривать эти темы по возможности отдельно, поэтому данная глава в основном посвящена  теме восстановления, а параллельность будет рассмотрена   в   главе   16   (однако   вопросы   параллельности   время   от   времени рассматриваются и в данной главе, особенно в разделе 15.4).

Читать »