Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

If you want Magnolia to use an external database, such as, Oracle, MySQL, Postgres, etc. with a JNDI datasource then you are going to want to create a (JBoss) module for your JBDC driver. I suggest doing this prior to Magnolia installation.

Table of Contents

Set up the Driver Module

  1. Create a file path structure under the JBOSS_HOME/modules/ directory. For example, for an Oracle JDBC driver, create a directory structure as follows: JBOSS_HOME/modules/oracle/jdbc/main/.
  2. Copy the JDBC driver JAR into the main/ subdirectory.
  3. In the main/ subdirectory, create a module.xml file:

    Code Block
    languagexml
    <module xmlns="urn:jboss:module:1.1" name="com.oracle">
        <resources>
            <resource-root path="ojdbc7.jar"/>
        </resources>
        <dependencies>
            <module name="javax.api"/>
            <module name="javax.transaction.api"/>
        </dependencies>
    </module>

    The directory should look like this:

  4. Start the Server: JBOSS_HOME/bin/standalone.sh
  5. Start the Management CLI in another command window: JBOSS_HOME/bin/jboss-cli.sh --connect controller=localhost:9999
  6. Run the following CLI command to add the JDBC driver module as a driver:

    Code Block
    languagebash
    /subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME)

    An example for this scenario would be:

    Code Block
    languagebash
    /subsystem=datasources/jdbc-driver=oracle:add(driver-name=oracle,driver-module-name=com.oracle,driver-xa-datasource-class-name=oracle.jdbc.xa.client.OracleXADataSource)

    Note: After running this command you should see something similar to the following in the server log: INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 12.1)

Verify Installation

  1. Check you standalone.xml file. You should now see something like this:

    Code Block
    languagexml
    <subsystem xmlns="urn:jboss:domain:datasources:1.2">
        <datasources>
    
            <drivers>
                <driver name="oracle" module="com.oracle">
                    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
                </driver>
            </drivers>
       </datasources>
    </subsystem>

Configure the JNDI Datasource

Within the same subsystem your driver is configured, you can now declare the JNDI datasource.

Code Block
languagexml
<subsystem xmlns="urn:jboss:domain:datasources:1.2">
    <datasources>
        <datasource jndi-name="java:jboss/datasources/jackrabbit" pool-name="jackrabbit" enabled="true">
            <connection-url>jdbc:oracle:thin:@127.0.0.1:xe</connection-url>
            <driver-class>oracle.jdbc.OracleDriver</driver-class>
            <driver>oracle</driver>
            <security>
                <user-name>schema</user-name>
                <password>password</password>
            </security>
        </datasource>
        <drivers>
        	<driver name="oracle" module="com.oracle">
            	<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
            </driver>
        </drivers>
	</datasources>
</subsystem>