Доступ к базе данных только для чтения - самый простой вариант использования, о котором я могу подумать. Другим приложением будет управление самим состоянием транзакции. И еще, если вы хотите использовать соединение, которое не будет участвовать в глобальной транзакции JTA. Последнее происходит в Кварце (см. JobStoreCMT ).
Но, в то время как поиск в Google (это хороший вопрос!), Я нашел больше вдохновения в разделе Использование нетранзакционных соединений документации сервера приложений Sun:
Основным преимуществом использования нетранзакционных соединений является то, что избегаются накладные расходы, возникающие при подключении и исключении соединений в контексте транзакций. Однако используйте такие соединения осторожно. Например, если нетранзакционное соединение используется для запроса базы данных во время выполнения транзакции, которая изменяет базу данных, запрос извлекает неизмененные данные в базе данных. Это связано с тем, что текущая транзакция не зафиксирована. В другом примере, если нетранзакционное соединение изменяет базу данных, а выполняемая транзакция одновременно откатывается, изменения, сделанные нетранзакционным соединением, не откатываются.
Вот типичный вариант использования нетранзакционного соединения: компонент, который обновляет базу данных в контексте транзакции, охватывающую несколько итераций цикла, может обновить кэшированные данные, используя нетранзакционное соединение для чтения данных до транзакция фиксирует.
Интересно ...