If you want Magnolia to use an external database, such as, Oracle, MySQL, Postgres, etc. with a JNDI connection then you are going to want to create a module for your JBDC driver. I suggest doing this prior to Magnolia installation.
Set up Module
- 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/ - Copy the JDBC driver JAR into the
main/
subdirectory. In the
main/
subdirectory, create amodule.
xml
file:<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:
- Start the Server:
JBOSS_HOME
/bin/standalone.sh - Start the Management CLI in another command window:
JBOSS_HOME/bin/jboss-cli.sh --connect controller=localhost:9999
Run the following CLI command to add the JDBC driver module as a driver:
/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:
/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
Check you standalone.xml file. You should now see something like this:
<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>
- xx