Мы используем JBoss 4 и Oracle с источником данных JNDI, настроенным через XML-файл источника данных JBoss.
Недавно выяснилось, что для всех подключений, полученных из источника данных по умолчанию, для свойства автоматической фиксации установлено значение true. Однако мы полагаемся на хранимые процедуры Oracle и хотим контролировать фиксации в хранимых процедурах.
Мы используем простые вызовы JDBC, а также оболочку Spring StoredProcedure для вызова хранимых процедур из JBoss. Попытка установить авто-фиксацию из источника данных JBoss XML не сработала.
Я вижу только, что для каждого соединения, которое мы получаем из источника данных, мы можем установить для свойства автоматической фиксации значение false, но кто-то знает, как мы можем настроить это в одном месте?
Редактировать: я добавляю используемую конфигурацию источника данных:
<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>
Мы тоже использовали, но без изменений ...