Error pool.ConnectionPool - Unable to create initital connections of pool

16,715

Solution 1

Hey folks I have figured out the cause of my problem.

  1. First I need to change the driverClassName from "org.h2.Driver" to "com.mysql.jdbc.Driver"
  2. I need to specify the correct database user and password, for development you can use root user.
  3. Insert the missing colon in the url = "jdbc:mysql//localhost:3306/tekdays". The correct one should look like this url = "jdbc:mysql://localhost:3306/tekdays"

Solution 2

For people who find this issue in the future, I experienced this symptom after using the wrong Java version (1.7 rather than 1.8) in my Grails project.

Share:
16,715
Kanaan Ngutu Metutera
Author by

Kanaan Ngutu Metutera

Updated on June 05, 2022

Comments

  • Kanaan Ngutu Metutera
    Kanaan Ngutu Metutera almost 2 years

    I'm following the application development in Grails titled TekDays from the book "Grails 2 - A quick start quide". As I started to configure DataSource, I encountered a problem of establishing the database connection. I have no idea what is the cause since the steps that I'm following is pretty much very clear. The source codes and errors are written below.

    DataSource.groovy:

    dataSource {
    pooled = true
    jmxExport = true
    driverClassName = "org.h2.Driver"
    username = "dave"
    password = "1234"
    }
    hibernate {
        cache.use_second_level_cache = true
        cache.use_query_cache = false
        cache.region.factory_class =     'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
    //    cache.region.factory_class =     'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
        singleSession = true // configure OSIV singleSession mode
        flush.mode = 'manual' // OSIV session flush mode outside of     transactional context
    }
    
    // environment specific settings
    environments {
        development {
            dataSource {
                dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
                url = "jdbc:mysql//localhost:3306/tekdays"
            }
        }
        test {
            dataSource {
                dbCreate = "update"
                url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;    DB_CLOSE_ON_EXIT=FALSE"
            }
        }
        production {
            dataSource {
                dbCreate = "update"
                url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
                properties {
                   // See http://grails.org/doc/latest/guide      /conf.html#dataSource for documentation
                   jmxEnabled = true
                   initialSize = 5
                   maxActive = 50
                   minIdle = 5
                   maxIdle = 25
                   maxWait = 10000
                   maxAge = 10 * 60000
                   timeBetweenEvictionRunsMillis = 5000
                   minEvictableIdleTimeMillis = 60000
                   validationQuery = "SELECT 1"
                   validationQueryTimeout = 3
                   validationInterval = 15000
                   testOnBorrow = true
                   testWhileIdle = true
                   testOnReturn = false
                   jdbcInterceptors = "ConnectionState"
                   defaultTransactionIsolation =     java.sql.Connection.TRANSACTION_READ_COMMITTED
                }
            }
        }
    }
    

    BuildConfig:

    grails.servlet.version = "3.0" // Change depending on target container     compliance (2.5 or 3.0)
    grails.project.class.dir = "target/classes"
    grails.project.test.class.dir = "target/test-classes"
    grails.project.test.reports.dir = "target/test-reports"
    grails.project.work.dir = "target/work"
    grails.project.target.level = 1.6
    grails.project.source.level = 1.6
    //grails.project.war.file = "target/${appName}-${appVersion}.war"
    
    grails.project.fork = [
        // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
        //  compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
    
        // configure settings for the test-app JVM, uses the daemon by default
        test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
        // configure settings for the run-app JVM
        run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
        // configure settings for the run-war JVM
        war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
        // configure settings for the Console UI JVM
        console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
    ]
    
    grails.project.dependency.resolver = "maven" // or ivy
    grails.project.dependency.resolution = {
        // inherit Grails' default dependencies
        inherits("global") {
            // specify dependency exclusions here; for example, uncomment this to disable ehcache:
            // excludes 'ehcache'
        }
        log "error" // log level of Ivy resolver, either 'error', 'warn',   'info', 'debug' or 'verbose'
        checksums true // Whether to verify checksums on resolve
        legacyResolve false // whether to do a secondary resolve on plugin     installation, not advised and here for backwards compatibility
    
        repositories {
            inherits true // Whether to inherit repository definitions from plugins
    
            grailsPlugins()
            grailsHome()
            mavenLocal()
            grailsCentral()
            mavenCentral()
            // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
            //mavenRepo "http://repository.codehaus.org"
            //mavenRepo "http://download.java.net/maven/2/"
            //mavenRepo "http://repository.jboss.com/maven2/"
        }
    
        dependencies {
            // specify dependencies here under either 'build', 'compile',     'runtime', 'test' or 'provided' scopes e.g.
             runtime 'mysql:mysql-connector-java:5.1.24'
            // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41'
            //test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4"
        }
    
        plugins {
            // plugins for the build system only
            build ":tomcat:7.0.55"
    
            // plugins for the compile step
            compile ":scaffolding:2.1.2"
            compile ':cache:1.1.8'
            compile ":asset-pipeline:1.9.9"
    
            // plugins needed at runtime but not for compilation
            runtime ":hibernate:3.6.10.18" // or ":hibernate:3.6.10.18" hibernate4:4.3.6.1
            runtime ":database-migration:1.4.0"
            runtime ":jquery:1.11.1"
    
            // Uncomment these to enable additional asset-pipeline capabilities
            //compile ":sass-asset-pipeline:1.9.0"
            //compile ":less-asset-pipeline:1.10.0"
            //compile ":coffee-asset-pipeline:1.8.0"
            //compile ":handlebars-asset-pipeline:1.3.0.3"
        }
    }
    

    and finally the BootStrap.groovy

    import com.tekdays.*
    
    class BootStrap {
    
        def init = { servletContext ->
    
            //if(!TekEvent.get(1)){
        new TekUser(fullName: 'John Doe' ,
                userName: 'jdoe' ,
            password: 't0ps3cr3t' ,
            email: '[email protected]' ,
            website: 'blog.johnsgroovyshop.com' ,
            bio: '''John has been programming for over 40 years.     He has worked with every programming language known to man and has settle on Groovy.
            In his spare time, John dabbles in astro physics and plays shuffleboard.''').save()
    
        new TekUser(fullName: 'John Deere' ,
            userName: 'tractorman' ,
            password: 't0ps3cr3t' ,
            email: '[email protected]' ,
            website: 'www.perl.porkproducers.org' ,
            bio: '''John is a top notch Perl programmer and a pretty good hand around the farm.  If he can't program it he
                can plow it!''').save()
    
        def event1 = new TekEvent(name: 'Gateway Code Camp' ,
             city: 'Saint Louis, MO' ,
             organizer: TekUser.findByFullName('John Doe') ,
             venue: 'TBD' ,
             startDate: new Date('02/02/2015') ,
             endDate: new Date('02/05/2015') ,
             description: '''This conference will bring coders from across platforms, languages, and industries
                                         together for an exciting day of tips, tricks, and tech!''').save()
    
    
        def event2 = new TekEvent(name: 'Perl Before Swine' ,
             city: 'Austin, MN' ,
             organizer: TekUser.findByFullName('John Deere') ,
             venue: 'SPAM Museum' ,
             startDate: new Date('06/02/2015') ,
             endDate: new Date('10/05/2015') ,
             description: '''Join the Perl programmers of the Pork Producers of America as we hone our skills and ham it up a bit.
                                            You can show off your programming chops while trying to win a year's supply of pork chops in our programming
                                            challenge.''').save()
    
    
        def g1 = TekEvent.findByName('Gateway Code Camp')
        g1.addToVolunteers(new TekUser(fullName: 'Sarah Martin' ,
                userName: 'sarah' ,
                password: '54321' ,
                email: '[email protected]' ,
                website: 'www.martinworld.com' ,
                bio: 'Web designer and Grails afficianado.'))
        g1.addToVolunteers(new TekUser(fullName: 'Bill Smith' ,
                userName: 'Mr_Smith' ,
                password: '12345' ,
                    email: '[email protected]' ,
                    website: 'www.mrbillswebsite.com' ,
                bio: 'Software developer, claymation artist.'))
    
        g1.addToRespondents('[email protected]')
        g1.addToRespondents('[email protected]')
        g1.addToRespondents('[email protected]')
    
        def s1 = new Sponsor(name:'Contegix',
                     website:'http://www.contegix.com',
                 description:'Beyond Managed Hosting for your Enterprise').save()
    
        def s2 = new Sponsor(name:'Object Computing Incorporated',
                         website:'http://www.ociweb.com',
                         description:'An 00 Software Engineering Company').save()
    
        def sp1 = new Sponsorship(event:g1,
                              sponsor:s1,
                          contributionType:'Other',
                          description:'Cool T-Shirts').save()
    
        def sp2 = new Sponsorship(event:g1,
                              sponsor:s2,
                              contributionType:'Venue',
                      description:'Will be paying for the Moscone').save()
    
        g1.save()
        //} 
        }
    
        def destroy = {
        }
    }
    

    Error:

    Error |
    2015-02-02 11:58:40,431 [localhost-startStop-1] ERROR         pool.ConnectionPool  - Unable to create initial connections of pool.
    Message: Driver:org.h2.Driver@3fdec6a5 returned null for     URL:jdbc:mysql//localho
    st:3306/tekdays
        Line | Method
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    Error |
    2015-02-02 11:58:40,533 [localhost-startStop-1] ERROR     pool.ConnectionPool  - Una
    ble to create initial connections of pool.
    Message: Driver:org.h2.Driver@68e17b43 returned null for     URL:jdbc:mysql//localho
    st:3306/tekdays
        Line | Method
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    Error |
    2015-02-02 11:58:40,642 [localhost-startStop-1] ERROR     pool.ConnectionPool  - Una
    ble to create initial connections of pool.
    Message: Driver:org.h2.Driver@317f67a9 returned null for     URL:jdbc:mysql//localho
    st:3306/tekdays
        Line | Method
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    Error |
    2015-02-02 11:58:40,665 [localhost-startStop-1] ERROR     context.GrailsContextLoade
    rListener  - Error initializing the application: Error creating bean     with name '
    transactionManagerPostProcessor': Initialization of bean failed; nested     exceptio
    n is org.springframework.beans.factory.BeanCreationException: Error     creating bea
    n with name 'transactionManager': Cannot resolve reference to bean     'sessionFacto
     ry' while setting bean property 'sessionFactory'; nested exception is     org.spring
    framework.beans.factory.BeanCreationException: Error creating bean with    name 'se
    ssionFactory': Cannot resolve reference to bean 'hibernateProperties'     while sett
    ing bean property 'hibernateProperties'; nested exception is     org.springframework.beans.factory.BeanCreationException: Error creating bean with name     'hibernatePr
    operties': Cannot resolve reference to bean 'dialectDetector' while     setting bean
     property 'properties' with key [hibernate.dialect]; nested exception is     org.spr
    ingframework.beans.factory.BeanCreationException: Error creating bean     with name
    'dialectDetector': Invocation of init method failed; nested exception is     org.spr
    ingframework.jdbc.support.MetaDataAccessException: Error while     extracting Databa
    seMetaData; nested exception is java.sql.SQLException:     Driver:org.h2.Driver@317f
    67a9 returned null for URL:jdbc:mysql//localhost:3306/tekdays
    Message: Error creating bean with name     'transactionManagerPostProcessor': Initia
    lization of bean failed; nested exception is     org.springframework.beans.factory.B
    eanCreationException: Error creating bean with name    'transactionManager': Cannot
     resolve reference to bean 'sessionFactory' while setting bean property     'session
    Factory'; nested exception is     org.springframework.beans.factory.BeanCreationExce
    ption: Error creating bean with name 'sessionFactory': Cannot resolve     reference
    to bean 'hibernateProperties' while setting bean property     'hibernateProperties';
     nested exception is     org.springframework.beans.factory.BeanCreationException: Er
    ror creating bean with name 'hibernateProperties': Cannot resolve     reference to b
    ean 'dialectDetector' while setting bean property 'properties' with key     [hiberna
    te.dialect]; nested exception is     org.springframework.beans.factory.BeanCreationE
    xception: Error creating bean with name 'dialectDetector': Invocation of     init me
    thod failed; nested exception is     org.springframework.jdbc.support.MetaDataAccess
    Exception: Error while extracting DatabaseMetaData; nested exception is     java.sql
    .SQLException: Driver:org.h2.Driver@317f67a9 returned null for     URL:jdbc:mysql//l
    ocalhost:3306/tekdays
        Line | Method
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread       Caused by BeanCreationException: Error creating bean with name 'transactionManag
    er': Cannot resolve reference to bean 'sessionFactory' while setting     bean proper
    ty 'sessionFactory'; nested exception is     org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot     resolve
     reference to bean 'hibernateProperties' while setting bean property     'hibernateP
    roperties'; nested exception is         org.springframework.beans.factory.BeanCreationEx
    ception: Error creating bean with name 'hibernateProperties': Cannot     resolve ref
    erence to bean 'dialectDetector' while setting bean property    'properties' with k
    ey [hibernate.dialect]; nested exception is         org.springframework.beans.factory.Be
    anCreationException: Error creating bean with name 'dialectDetector':     Invocation
     of init method failed; nested exception is     org.springframework.jdbc.support.Met
    aDataAccessException: Error while extracting DatabaseMetaData; nested     exception
    is java.sql.SQLException: Driver:org.h2.Driver@317f67a9 returned null     for URL:jd
    bc:mysql//localhost:3306/tekdays
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    Caused by BeanCreationException: Error creating bean with name     'sessionFactory':
     Cannot resolve reference to bean 'hibernateProperties' while setting     bean prope
    rty 'hibernateProperties'; nested exception is     org.springframework.beans.factory
    .BeanCreationException: Error creating bean with name     'hibernateProperties': Can
    not resolve reference to bean 'dialectDetector' while setting bean     property 'pro
    perties' with key [hibernate.dialect]; nested exception is     org.springframework.b
    eans.factory.BeanCreationException: Error creating bean with name     'dialectDetect
    or': Invocation of init method failed; nested exception is     org.springframework.j
    dbc.support.MetaDataAccessException: Error while extracting     DatabaseMetaData; ne
    sted exception is java.sql.SQLException: Driver:org.h2.Driver@317f67a9     returned
    null for URL:jdbc:mysql//localhost:3306/tekdays
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    Caused by BeanCreationException: Error creating bean with name        'hibernatePropert
    ies': Cannot resolve reference to bean 'dialectDetector' while setting     bean prop
    erty 'properties' with key [hibernate.dialect]; nested exception is     org.springfr
    amework.beans.factory.BeanCreationException: Error creating bean with     name 'dial
    ectDetector': Invocation of init method failed; nested exception is     org.springfr
    amework.jdbc.support.MetaDataAccessException: Error while extracting     DatabaseMet
    aData; nested exception is java.sql.SQLException:     Driver:org.h2.Driver@317f67a9
    returned null for URL:jdbc:mysql//localhost:3306/tekdays
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    Caused by BeanCreationException: Error creating bean with name     'dialectDetector'
    : Invocation of init method failed; nested exception is    org.springframework.jdbc
    .support.MetaDataAccessException: Error while extracting     DatabaseMetaData; neste
    d exception is java.sql.SQLException: Driver:org.h2.Driver@317f67a9     returned nul
    l for URL:jdbc:mysql//localhost:3306/tekdays
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    Caused by MetaDataAccessException: Error while extracting     DatabaseMetaData; nest
    ed exception is java.sql.SQLException: Driver:org.h2.Driver@317f67a9     returned nu
    ll for URL:jdbc:mysql//localhost:3306/tekdays
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    Caused by SQLException: Driver:org.h2.Driver@317f67a9 returned null for     URL:jdbc
    :mysql//localhost:3306/tekdays
    ->>  266 | run       in java.util.concurrent.FutureTask
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    |   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
    |    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
    ^    745 | run       in java.lang.Thread
    | Error Forked Grails VM exited with error
    

    If there is any other code needed, I will provide it.