5 Replies Latest reply on Dec 30, 2013 4:30 AM by wdfink

    Unable to setup MySQL data source in JBoss 7.1.1

    tonykaska

      I have been trying to setup MySQL database datasource in JBoss 7.1.1 for several days now. I am not able to do it successfully. I appreciate any guidance. I expect it should be simple to connect MySQL from an application server like JBoss. But unfortunately I am not able to. Please see the error I am getting.

       

      JBAS014775:    New missing/unsatisfied dependencies:

            service jboss.jdbc-driver.com_mysql (missing) dependents: [service jboss.data-source.java:/MySqlDS]

       

      This is what I have in Modules.xml

       

      <module xmlns="urn:jboss:module:1.0" name="com.mysql.jdbc">

         <resources>

           <resource-root path="mysql-connector-java-5.1.19-bin.jar"/>

       

         </resources>

       

       

         <dependencies>

            <module name="javax.api"/>

            <module name="javax.transaction"/>

          </dependencies>

      </module>

       

      I have tried using <module xmlns="urn:jboss:module:1.1" name="com.mysql.jdbc"> also I have tried this without as a dependency.

      My standalone.xml configuration file has the following for database source configuration.

       

              <subsystem xmlns="urn:jboss:domain:datasources:1.0">

                  <datasources>

                      <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">

                          <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>

                          <driver>h2</driver>

                          <security>

                              <user-name>sa</user-name>

                              <password>sa</password>

                          </security>

                      </datasource>

                      <datasource jta="true" jndi-name="java:/MySqlDS" pool-name="MySqlDS_Pool" enabled="true" use-java-context="true" use-ccm="true">

                          <connection-url>jdbc:mysql://localhost:3306/MySqlDS</connection-url>

                          <driver>com.mysql</driver>

                          <security>

                              <user-name>gatein</user-name>

                              <password>request22</password>

                          </security>

                          <timeout>

                              <idle-timeout-minutes>0</idle-timeout-minutes>

                              <query-timeout>600</query-timeout>

                          </timeout>

                          <statement>

                              <prepared-statement-cache-size>100</prepared-statement-cache-size>

                              <share-prepared-statements>true</share-prepared-statements>

                          </statement>

                      </datasource>

                      <drivers>

                          <driver name="h2" module="com.h2database.h2">

                              <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>

                          </driver>

                          <driver name="MySQL" module="com.mysql"/>

                      </drivers>

                  </datasources>

              </subsystem>

        • 1. Re: Unable to setup MySQL data source in JBoss 7.1.1
          jamezp

          The first thing I see, maybe just a type, you have the module name as com.mysql.jdbc, but when you define the driver you off the .jdbc. Also on the driver, you don't specify a datasource.

           

          The module.xml should probably be in $JBOSS_HOME/modules/com/mysql/main and look like the following. (Note the javax.transaction isn't needed in 7.1.1.Final)

           

          <module xmlns="urn:jboss:module:1.0" name="com.mysql">
             <resources>
               <resource-root path="mysql-connector-java-5.1.19-bin.jar"/>
          
             </resources> 
          
             <dependencies>
                <module name="javax.api"/>
              </dependencies>
          </module>
          
          

           

          Then your standalone.xml subsystem should probably look like the following.

           

                  <subsystem xmlns="urn:jboss:domain:datasources:1.0">
                      <datasources>
                          <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                              <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
                              <driver>h2</driver>
                              <security>
                                  <user-name>sa</user-name>
                                  <password>sa</password>
                              </security>
                          </datasource>
                          <datasource jta="true" jndi-name="java:/MySqlDS" pool-name="MySqlDS_Pool" enabled="true" use-java-context="true" use-ccm="true">
                              <connection-url>jdbc:mysql://localhost:3306/MySqlDS</connection-url>
                              <driver>com.mysql</driver>
                              <security>
                                  <user-name>gatein</user-name>
                                  <password>request22</password>
                              </security>
                              <timeout>
                                  <idle-timeout-minutes>0</idle-timeout-minutes>
                                  <query-timeout>600</query-timeout>
                              </timeout>
                              <statement>
                                  <prepared-statement-cache-size>100</prepared-statement-cache-size>
                                  <share-prepared-statements>true</share-prepared-statements>
                              </statement>
                          </datasource>
                          <drivers>
                              <driver name="h2" module="com.h2database.h2">
                                  <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                              </driver>
                              <driver name="com.mysql" module="com.mysql">
                                  <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                              </driver>
                          </drivers>
                      </datasources>
                  </subsystem>
          
          

           

          Note the main difference is I defined an XA data source driver. Also you had MySQL for the driver name, but when specifying the driver in the data source you were using com.mysql.

          • 2. Re: Unable to setup MySQL data source in JBoss 7.1.1
            tonykaska

            Thank you. Finally my MySQL data source is working. This is an excellent help. It was a frustrating problem for several days. Thank you again.

            • 3. Re: Unable to setup MySQL data source in JBoss 7.1.1
              tonykaska

              I have similar problem with my PostgreSQL also. I tried your steps. But I am not having any luck. I will appreciate your guidance for PostgreSQL also. I have created a separate thread for that. Thank you again.

               

              https://community.jboss.org/thread/198198

              • 4. Re: Unable to setup MySQL data source in JBoss 7.1.1
                sss.sunil

                Hi,

                Even i am facing the same issue with setting up mysql datasource on jbos 7.1

                 

                Please find the below error i'm getting during startup.

                JBAS014775:    New missing/unsatisfied dependencies:

                      service jboss.jdbc-driver.mysql (missing) dependents: [service jboss.data-source.java:jboss/MySqlDS]

                 

                The following is the standalone.xml and moudule.xml file on my server.

                 

                1. Module.xml

                <module xmlns="urn:jboss:module:1.1" name="com.mysql">

                   <resources>

                     <resource-root path="mysql-connector-java-5.1.24-bin"/>

                 

                   </resources>

                 

                 

                   <dependencies>

                      <module name="javax.api"/>

                 

                 

                    </dependencies>

                </module>

                 

                2. standalone.xml

                 

                <?xml version='1.0' encoding='UTF-8'?>

                 

                 

                <server xmlns="urn:jboss:domain:1.2">

                 

                 

                    <extensions>

                        <extension module="org.jboss.as.clustering.infinispan"/>

                        <extension module="org.jboss.as.configadmin"/>

                        <extension module="org.jboss.as.connector"/>

                        <extension module="org.jboss.as.deployment-scanner"/>

                        <extension module="org.jboss.as.ee"/>

                        <extension module="org.jboss.as.ejb3"/>

                        <extension module="org.jboss.as.jaxrs"/>

                        <extension module="org.jboss.as.jdr"/>

                        <extension module="org.jboss.as.jmx"/>

                        <extension module="org.jboss.as.jpa"/>

                        <extension module="org.jboss.as.logging"/>

                        <extension module="org.jboss.as.mail"/>

                        <extension module="org.jboss.as.naming"/>

                        <extension module="org.jboss.as.osgi"/>

                        <extension module="org.jboss.as.pojo"/>

                        <extension module="org.jboss.as.remoting"/>

                        <extension module="org.jboss.as.sar"/>

                        <extension module="org.jboss.as.security"/>

                        <extension module="org.jboss.as.threads"/>

                        <extension module="org.jboss.as.transactions"/>

                        <extension module="org.jboss.as.web"/>

                        <extension module="org.jboss.as.webservices"/>

                        <extension module="org.jboss.as.weld"/>

                    </extensions>

                 

                 

                    <management>

                        <security-realms>

                            <security-realm name="ManagementRealm">

                                <authentication>

                                    <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>

                                </authentication>

                            </security-realm>

                            <security-realm name="ApplicationRealm">

                                <authentication>

                                    <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>

                                </authentication>

                            </security-realm>

                        </security-realms>

                        <management-interfaces>

                            <native-interface security-realm="ManagementRealm">

                                <socket-binding native="management-native"/>

                            </native-interface>

                            <http-interface security-realm="ManagementRealm">

                                <socket-binding http="management-http"/>

                            </http-interface>

                        </management-interfaces>

                    </management>

                 

                 

                    <profile>

                        <subsystem xmlns="urn:jboss:domain:logging:1.1">

                            <console-handler name="CONSOLE">

                                <level name="INFO"/>

                                <formatter>

                                    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

                                </formatter>

                            </console-handler>

                            <periodic-rotating-file-handler name="FILE">

                                <formatter>

                                    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>

                                </formatter>

                                <file relative-to="jboss.server.log.dir" path="server.log"/>

                                <suffix value=".yyyy-MM-dd"/>

                                <append value="true"/>

                            </periodic-rotating-file-handler>

                            <logger category="com.arjuna">

                                <level name="WARN"/>

                            </logger>

                            <logger category="org.apache.tomcat.util.modeler">

                                <level name="WARN"/>

                            </logger>

                            <logger category="sun.rmi">

                                <level name="WARN"/>

                            </logger>

                            <logger category="jacorb">

                                <level name="WARN"/>

                            </logger>

                            <logger category="jacorb.config">

                                <level name="ERROR"/>

                            </logger>

                            <root-logger>

                                <level name="INFO"/>

                                <handlers>

                                    <handler name="CONSOLE"/>

                                    <handler name="FILE"/>

                                </handlers>

                            </root-logger>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:configadmin:1.0"/>

                        <subsystem xmlns="urn:jboss:domain:datasources:1.0">

                            <datasources>

                                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">

                                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>

                                    <driver>h2</driver>

                                    <security>

                                        <user-name>sa</user-name>

                                        <password>sa</password>

                                    </security>

                                </datasource>

                                <drivers>

                                    <driver name="h2" module="com.h2database.h2">

                                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>

                                    </driver>

                                </drivers>

                 

                 

                  <datasource jndi-name="java:jboss/MySqlDS" pool-name="MySQLPool" enabled="true" use-java-context="true" use-ccm="true">

                  <connection-url>jdbc:mysql://localhost:3306/activiti</connection-url>

                  <driver>mysql</driver>

                  <pool>

                  <max-pool-size>30</max-pool-size>

                  </pool>

                  <security>

                  <user-name>root</user-name>

                  <password>activiti</password>

                  </security>

                 

                  <timeout> 

                                        <idle-timeout-minutes>0</idle-timeout-minutes> 

                                        <query-timeout>600</query-timeout> 

                                    </timeout> 

                                    <statement> 

                                        <prepared-statement-cache-size>100</prepared-statement-cache-size> 

                                        <share-prepared-statements>true</share-prepared-statements> 

                                    </statement>

                  </datasource>

                  <drivers>

                  <driver name="mysql" module="com.mysql">

                  <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>

                  </driver>

                  </drivers>

                 

                 

                  </datasources>

                 

                        </subsystem>

                 

                 

                 

                        <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">

                            <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:ee:1.0"/>

                        <subsystem xmlns="urn:jboss:domain:ejb3:1.2">

                            <session-bean>

                                <stateless>

                                    <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>

                                </stateless>

                                <stateful default-access-timeout="5000" cache-ref="simple"/>

                                <singleton default-access-timeout="5000"/>

                            </session-bean>

                            <pools>

                                <bean-instance-pools>

                                    <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                                    <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                                </bean-instance-pools>

                            </pools>

                            <caches>

                                <cache name="simple" aliases="NoPassivationCache"/>

                                <cache name="passivating" passivation-store-ref="file" aliases="SimpleStatefulCache"/>

                            </caches>

                            <passivation-stores>

                                <file-passivation-store name="file"/>

                            </passivation-stores>

                            <async thread-pool-name="default"/>

                            <timer-service thread-pool-name="default">

                                <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/>

                            </timer-service>

                            <remote connector-ref="remoting-connector" thread-pool-name="default"/>

                            <thread-pools>

                                <thread-pool name="default">

                                    <max-threads count="10"/>

                                    <keepalive-time time="100" unit="milliseconds"/>

                                </thread-pool>

                            </thread-pools>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="hibernate">

                            <cache-container name="hibernate" default-cache="local-query">

                                <local-cache name="entity">

                                    <transaction mode="NON_XA"/>

                                    <eviction strategy="LRU" max-entries="10000"/>

                                    <expiration max-idle="100000"/>

                                </local-cache>

                                <local-cache name="local-query">

                                    <transaction mode="NONE"/>

                                    <eviction strategy="LRU" max-entries="10000"/>

                                    <expiration max-idle="100000"/>

                                </local-cache>

                                <local-cache name="timestamps">

                                    <transaction mode="NONE"/>

                                    <eviction strategy="NONE"/>

                                </local-cache>

                            </cache-container>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>

                        <subsystem xmlns="urn:jboss:domain:jca:1.1">

                            <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>

                            <bean-validation enabled="true"/>

                            <default-workmanager>

                                <short-running-threads>

                                    <core-threads count="50"/>

                                    <queue-length count="50"/>

                                    <max-threads count="50"/>

                                    <keepalive-time time="10" unit="seconds"/>

                                </short-running-threads>

                                <long-running-threads>

                                    <core-threads count="50"/>

                                    <queue-length count="50"/>

                                    <max-threads count="50"/>

                                    <keepalive-time time="10" unit="seconds"/>

                                </long-running-threads>

                            </default-workmanager>

                            <cached-connection-manager/>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>

                        <subsystem xmlns="urn:jboss:domain:jmx:1.1">

                            <show-model value="true"/>

                            <remoting-connector/>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:jpa:1.0">

                            <jpa default-datasource=""/>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:mail:1.0">

                            <mail-session jndi-name="java:jboss/mail/Default">

                                <smtp-server outbound-socket-binding-ref="mail-smtp"/>

                            </mail-session>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:naming:1.1"/>

                        <subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="lazy">

                            <properties>

                                <property name="org.osgi.framework.startlevel.beginning">

                                    1

                                </property>

                            </properties>

                            <capabilities>

                                <capability name="javax.servlet.api:v25"/>

                                <capability name="javax.transaction.api"/>

                                <capability name="org.apache.felix.log" startlevel="1"/>

                                <capability name="org.jboss.osgi.logging" startlevel="1"/>

                                <capability name="org.apache.felix.configadmin" startlevel="1"/>

                                <capability name="org.jboss.as.osgi.configadmin" startlevel="1"/>

                            </capabilities>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>

                        <subsystem xmlns="urn:jboss:domain:remoting:1.1">

                            <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm"/>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/>

                        <subsystem xmlns="urn:jboss:domain:sar:1.0"/>

                        <subsystem xmlns="urn:jboss:domain:security:1.1">

                            <security-domains>

                                <security-domain name="other" cache-type="default">

                                    <authentication>

                                        <login-module code="Remoting" flag="optional">

                                            <module-option name="password-stacking" value="useFirstPass"/>

                                        </login-module>

                                        <login-module code="RealmUsersRoles" flag="required">

                                            <module-option name="usersProperties" value="${jboss.server.config.dir}/application-users.properties"/>

                                            <module-option name="rolesProperties" value="${jboss.server.config.dir}/application-roles.properties"/>

                                            <module-option name="realm" value="ApplicationRealm"/>

                                            <module-option name="password-stacking" value="useFirstPass"/>

                                        </login-module>

                                    </authentication>

                                </security-domain>

                                <security-domain name="jboss-web-policy" cache-type="default">

                                    <authorization>

                                        <policy-module code="Delegating" flag="required"/>

                                    </authorization>

                                </security-domain>

                                <security-domain name="jboss-ejb-policy" cache-type="default">

                                    <authorization>

                                        <policy-module code="Delegating" flag="required"/>

                                    </authorization>

                                </security-domain>

                            </security-domains>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:threads:1.1"/>

                        <subsystem xmlns="urn:jboss:domain:transactions:1.1">

                            <core-environment>

                                <process-id>

                                    <uuid/>

                                </process-id>

                            </core-environment>

                            <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

                            <coordinator-environment default-timeout="300"/>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">

                            <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>

                            <virtual-server name="default-host" enable-welcome-root="true">

                                <alias name="localhost"/>

                                <alias name="example.com"/>

                            </virtual-server>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:webservices:1.1">

                            <modify-wsdl-address>true</modify-wsdl-address>

                            <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>

                            <endpoint-config name="Standard-Endpoint-Config"/>

                            <endpoint-config name="Recording-Endpoint-Config">

                                <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

                                    <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

                                </pre-handler-chain>

                            </endpoint-config>

                        </subsystem>

                        <subsystem xmlns="urn:jboss:domain:weld:1.0"/>

                    </profile>

                 

                 

                    <interfaces>

                        <interface name="management">

                            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

                        </interface>

                        <interface name="public">

                            <inet-address value="${jboss.bind.address:127.0.0.1}"/>

                        </interface>

                        <interface name="unsecure">

                            <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>

                        </interface>

                    </interfaces>

                 

                 

                    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">

                        <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>

                        <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>

                        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>

                        <socket-binding name="ajp" port="8009"/>

                        <socket-binding name="http" port="8080"/>

                        <socket-binding name="https" port="8443"/>

                        <socket-binding name="osgi-http" interface="management" port="8090"/>

                        <socket-binding name="remoting" port="4447"/>

                        <socket-binding name="txn-recovery-environment" port="4712"/>

                        <socket-binding name="txn-status-manager" port="4713"/>

                        <outbound-socket-binding name="mail-smtp">

                            <remote-destination host="localhost" port="25"/>

                        </outbound-socket-binding>

                    </socket-binding-group>

                 

                 

                </server>

                 

                Please suggest what could be wrong in this configuration.

                • 5. Re: Unable to setup MySQL data source in JBoss 7.1.1
                  wdfink

                  You should check whether you place the module in the correct folder structure.

                   

                  BTW you should not post the configuration like this, please attach it as file to prevent from scrolling hell