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>
⚠️ **GitHub.com Fallback** ⚠️