2009-10-23 3 views
4

В JBoss documentation есть возможность объявить <no-tx-datasource>, который гласит:Каковы примеры не транзакционных источников данных?

нет-TX-источник данных: Этот элемент не используется, чтобы определить конфигурацию службы (org.jboss.resource.connectionmanager) NoTxConnectionManager. NoTxConnectionManager - это диспетчер соединений JCA без поддержки транзакций.

Мне любопытно, что может быть связано с этим источником данных? Ldap? Каковы практические примеры использования или примеры с открытым исходным кодом такого типа конфигурации?

ответ

5

Доступ к базе данных, доступной только для чтения, является самым основным вариантом использования, о котором я могу думать. Другим вариантом будет приложение, которое управляет состоянием транзакции. И еще одно, если вы хотите использовать соединение, которое не будет участвовать в глобальной транзакции JTA. Последнее происходит в Quartz (см. JobStoreCMT).

Но, прибегая к помощи (это хороший вопрос!), Я нашел еще некоторое вдохновение в разделе Using Non-Transactional Connections серверного приложения документации компании Sun:

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

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

Интересно ...

+0

+1 Спасибо Pascal. У меня тоже есть Google, но я не нашел исчерпывающей информации. Параметры соединения JDBC, которые можно использовать с базами данных, но я не видел цели этого до вашего великого объяснения. – cetnar

0

Не все DataSources являются ТХ, источник данных может также представлять файл на диске.

Смежные вопросы