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

Create a 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)

  7. Shut down the Management CLI and shut down the server.

Verify the Driver 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>

Verify the JNDI Datasource

Once you have added the JNDI datasource declaration into your standalone.xml you should now be ready to use it. To verify that start the server back up and look for the following in the log:

...