Мы используем JBoss 4 и Oracle с источником данных JNDI, настроенным через XML-файл данных JBoss.Пул подключений пула базы данных JBoss
Недавно было установлено, что все соединения, полученные из источника данных по умолчанию, имеют свойство автоматической фиксации, установленное в значение true. Однако мы полагаемся на хранимые процедуры Oracle и хотим контролировать коммиты в хранимых процедурах.
Мы используем простые вызовы JDBC, а также упаковку Spring StoredProcedure для вызова хранимых процедур от JBoss. Попытка установить автоматическую фиксацию из Jaboss datasource XML на самом деле не работала.
Я могу видеть только, что для каждого соединения, которое мы получаем из datasource, мы можем установить свойство auto-commit на false, но кто-то знает, как мы могли бы настроить это в одном месте?
Edit: Я добавляю конфигурацию источника данных мы используем:
<local-tx-datasource>
<jndi-name>some name</jndi-name>
<connection-url>jdbc:oracle:thin:@(description=(address_list=(address=(protocol=tcp)(port=1521)(host=xxx))(address=(protocol=tcp)(port=1521)(host=xxx)))(load_balance = yes)(connect_data=(SERVICE_NAME=xxx)(SERVER=DEDICATED)))</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>xxxr</user-name>
<password>xxx</password>
<!-- Checks the Oracle error codes and messages for fatal errors -->
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-class-name>
<min-pool-size>5</min-pool-size>
<max-pool-size>25</max-pool-size>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
<metadata>
<type-mapping>Oracle10g</type-mapping>
</metadata>
</local-tx-datasource>
Мы также используется, но никаких изменений ...
Спасибо за ответ, я должен сказать, что я ушел за эти ресурсы и до сих пор единственным способом я вижу, чтобы установить свойство autocommit соединения программно для каждого соединения, которое я извлекаю из источника данных JBoss (версия 4). В идеале я ожидал бы, что это свойство автоматической фиксации будет управляться с помощью источника данных Jaboss или конфигурации пула соединений - но может быть, мне не повезло на этом ... – Erdem
Вы сказали: «Попытка установить автоматическую фиксацию из JBoss datasource XML на самом деле не работает ». Не могли бы вы рассказать нам немного больше о том, что не сработало? Кроме того, можно ли разместить свою конфигурацию источника данных? JBoss 4.x и Oracle 9/10 всегда работали правильно для меня, поэтому я подозреваю, что это что-то в конфигурации. – richj
Последнее, если вы выдаете команды DDL в своем соединении, у вас могут быть проблемы, так как они не очень хорошо работают со стандартными командами SQL, выпущенными внутри транзакций. – richj