Oracle DB Configuration - redhat-consulting/jbpm-ee GitHub Wiki
###Environment:###
- RHEL 6.5
- Oracle XE Release 11.2.0.2.0
###Caveats###
- If the user you are trying to connect with to your Oracle DB instance contains hyphen, please embed the user name in double quotes. i.e. "jbpm-timers"
###Instructions###
To set up xa transactions for the users we have in Oracle XE:
-
Follow this for the rest of the tasks: Example Oracle XA Datasource
-
On the database server log in as the oracle user, make sure that ORACLE_HOME, and ORACLE_SID are set and correct.
$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.2.0.2.0 Production on Thu Dec 5 12:03:05 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> connect sys@xe as sysdba
Enter password:
Connected.
SQL> GRANT SELECT ON sys.dba_pending_transactions TO jbpm;
Grant succeeded.
SQL> GRANT SELECT ON sys.dba_pending_transactions TO "jbpm-timers";
Grant succeeded.
SQL> GRANT SELECT ON sys.pending_trans$ TO jbpm;
Grant succeeded.
SQL> GRANT SELECT ON sys.pending_trans$ TO "jbpm-timers";
Grant succeeded.
SQL> GRANT SELECT ON sys.dba_2pc_pending TO jbpm;
Grant succeeded.
SQL> GRANT SELECT ON sys.dba_2pc_pending TO "jbpm-timers";
Grant succeeded.
SQL> GRANT EXECUTE ON sys.dbms_xa TO jbpm;
Grant succeeded.
SQL> GRANT EXECUTE ON sys.dbms_xa TO "jbpm-timers";
Grant succeeded.
SQL> commit;
Commit complete.
###Datasource Configuration###
<datasource jta="false" jndi-name="java:/jdbc/jbpm-timers-non-xa" pool-name="JbpmTimersNonXADS">
<connection-url>jdbc:oracle:thin:@ORACLE_HOST:ORACLE_PORT:ORACLE_SID</connection-url>
<driver>oracle</driver>
<security>
<user-name>"jbpm-timers"</user-name>
<password>jbpm</password>
</security>
</datasource>
<xa-datasource jndi-name="java:/jdbc/jbpm-timers-xa" pool-name="JbpmTimersXADS">
<driver>oracle</driver>
<xa-datasource-property name="URL">jdbc:oracle:thin:@ORACLE_HOST:ORACLE_PORT:ORACLE_SID</xa-datasource-property>
<security>
<user-name>"jbpm-timers"</user-name>
<password>jbpm</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"></stale-connection-checker>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"></exception-sorter>
</validation>
</xa-datasource>
<xa-datasource jndi-name="java:/jdbc/jbpm-main"
pool-name="JbpmMainDS">
<driver>oracle</driver>
<xa-datasource-property name="URL">jdbc:oracle:thin:@ORACLE_HOST:ORACLE_PORT:ORACLE_SID</xa-datasource-property>
<security>
<user-name>jbpm</user-name>
<password>jbpm</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"></stale-connection-checker>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"></exception-sorter>
</validation>
</xa-datasource>
Make sure that you create the proper driver module and call it oracle.
For instance:
<driver name="oracle" module="com.oracle.ojdbc6">
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
And that there is a directory structure similar to:
com
|____oracle
| |____ojdbc6
| | |____main
| | | |____module.xml
| | | |____ojdbc6.jar
and module.xml contains:
<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>