Konfiguracja Datasource
przykładowe pliki konfiguracyjne można znaleść w JBOSS_HOME/docs/examples/jca
.
Można ich użyc jako Template, czyli skopiować do katalogu deploy serwera (w moim przypadku użyłem serwera default i oracle express edition):
JBOSS_HOME/server/default/deploy
przykładowa konfiguracja zatem wygląda następujaco:
<datasources>
<xa-datasource>
<jndi-name>XAOracleDS</jndi-name>
<isSameRM-override-value>false</isSameRM-override-value>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">jdbc:oracle:thin:@127.0.0.1:1521:xe;</xa-datasource-property>
<xa-datasource-property name="User">uzytkownik</xa-datasource-property>
<xa-datasource-property name="Password">haslo</xa-datasource-property>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<no-tx-separate-pools/>
<metadata>
<type-mapping>Oracle10g</type-mapping>
</metadata>
</xa-datasource>
<mbean code="org.jboss.resource.adapter.jdbc.vendor.OracleXAExceptionFormatter"
name="jboss.jca:service=OracleXAExceptionFormatter">
<depends optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>
</mbean>
</datasources>
Konfiguracja u?ytkownika bazy danych
Jeśli po zadaniu zapytania SQL widzisz błąd/ostrzerzenie:
[com.arjuna.ats.internal.jta.recovery.xarecovery1] Local XARecoveryModule.xaRecovery got XA exception javax.transaction.xa.XAException, XAException.XAER_RMERR
twój użytkownik nie posiada wystarczających praw. Należy wywołać poniższe komendy aby to zmienić sysdba):
GRANT SELECT ON sys.dba_pending_transactions TO uzytkownik;
GRANT SELECT ON sys.pending_trans$ TO uzytkownik;
GRANT SELECT ON sys.dba_2pc_pending TO uzytkownik;
GRANT EXECUTE ON sys.dbms_system TO uzytkownik;