KB-1016 "JBAS010441: Failed to load module for driver [XXX.jdbc]" error returned during JBoss startup

Symptoms

During JBoss startup, the following error is shown in the application server log:

JBAS014612: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("jdbc-driver" => "XXX.jdbc")
]) - failure description: "JBAS010441: Failed to load module for driver [XXX.jdbc]"

Cause

The application server failed to load the module for the JDBC driver.

Action

In standalone.xml, ensure the driver is required by Appian, whether it be for a primary data source or a business data source. If that server does not require the driver, remove the driver from the <drivers>element.

If the driver is required, make sure the driver is defined similar to the examples in Configuring Relational Databases for JBoss.

In <JBOSS_HOME>/modules, make sure the specified path for the driver is correct. Required locations for the different drivers are as follows:

Database Driver JAR location Module name
MySQL <JBOSS_HOME>/modules/com/mysql/jdbc/main com.mysql.jdbc
Oracle <JBOSS_HOME>/modules/oracle/jdbc/main oracle.jdbc
SQL Server <JBOSS_HOME>/modules/com/microsoft/sqlserver/jdbc/main com.microsoft.sqlserver.jdbc
DB2 <JBOSS_HOME>/modules/com/ibm/db2/jcc/main com.ibm.db2.jcc

In the appropriate driver JAR location, ensure there is a module.xml file present. If one is not present, create one using the corresponding module name specified in standalone.xml and the name of the JAR file.

For example, the syntax used in module.xml for Oracle, MySQL, and DB2 is:

<module xmlns="urn:jboss:module:1.0" name="XXX.jdbc">
  <resources>
    <resource-root path="driver_name.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

MS SQL Server requires an additional dependency. For MS SQL Server, the syntax used in module.xml is:

<module xmlns="urn:jboss:module:1.0" name="XXX.jdbc">
  <resources>
    <resource-root path="driver_name.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
<
module name="javax.xml.bind.api"/>
</dependencies>
</module>

Update the module name with what is defined in standalone.xml and update the <resource-root> path to be the name of the JAR file.

Affected Versions

This article applies to all versions of Appian using JBoss EAP as an application server.

Last Reviewed: November 2017

Related
Recommended