Connections could not be acquired from th e underlying database! -- HSQL DB

16,909

Update: After a second look, it appears that I was wrong, you can start HSQL in server mode using the ant script and you're not forced to use the command line. Actually, I tried to reproduce the problem with the helloworld-native sample but it worked fine for me.

First, I started HSQLDB in a first shell using ant startdb:

$ ant startdb 
Buildfile: /home/pascal/Projects/jpwh-gettingstarted-070401/helloworld-native/build.xml

startdb:
     [java] [Server@a97b0b]: [Thread[main,5,main]]: checkRunning(false) entered
     [java] [Server@a97b0b]: [Thread[main,5,main]]: checkRunning(false) exited
     [java] [Server@a97b0b]: Startup sequence initiated from main() method
     [java] [Server@a97b0b]: Loaded properties from [/home/pascal/Projects/jpwh-gettingstarted-070401/helloworld-native/server.properties]
     [java] [Server@a97b0b]: Initiating startup sequence...
     [java] [Server@a97b0b]: Server socket opened successfully in 39 ms.
     [java] [Server@a97b0b]: Database [index=0, id=0, db=file:database/db, alias=] opened sucessfully in 1148 ms.
     [java] [Server@a97b0b]: Startup sequence completed in 1281 ms.
     [java] [Server@a97b0b]: 2010-11-08 18:29:20.094 HSQLDB server 1.8.0 is online
     [java] [Server@a97b0b]: To close normally, connect and execute SHUTDOWN SQL
     [java] [Server@a97b0b]: From command line, use [Ctrl]+[C] to abort abruptly

Then, I ran ant schemaexport from another shell:

$ ant schemaexport 
Buildfile: /home/pascal/Projects/jpwh-gettingstarted-070401/helloworld-native/build.xml

compile:
    [mkdir] Created dir: /home/pascal/Projects/jpwh-gettingstarted-070401/helloworld-native/build
    [javac] /home/pascal/Projects/jpwh-gettingstarted-070401/helloworld-native/build.xml:39: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 3 source files to /home/pascal/Projects/jpwh-gettingstarted-070401/helloworld-native/build

copymetafiles:
     [copy] Copying 3 files to /home/pascal/Projects/jpwh-gettingstarted-070401/helloworld-native/build

schemaexport:
[hibernatetool] Executing Hibernate Tool with a Standard Configuration
[hibernatetool] 1. task: hbm2ddl (Generates database schema)
[hibernatetool] 
[hibernatetool]     alter table MESSAGES 
[hibernatetool]         drop constraint FK_NEXT_MESSAGE;
[hibernatetool] 
[hibernatetool]     drop table MESSAGES if exists;
[hibernatetool] 
[hibernatetool]     create table MESSAGES (
[hibernatetool]         MESSAGE_ID bigint generated by default as identity (start with 1),
[hibernatetool]         MESSAGE_TEXT varchar(255),
[hibernatetool]         NEXT_MESSAGE_ID bigint,
[hibernatetool]         primary key (MESSAGE_ID)
[hibernatetool]     );
[hibernatetool] 
[hibernatetool]     alter table MESSAGES 
[hibernatetool]         add constraint FK_NEXT_MESSAGE 
[hibernatetool]         foreign key (NEXT_MESSAGE_ID) 
[hibernatetool]         references MESSAGES;
[hibernatetool] 1 errors occurred while performing <hbm2ddl>.
[hibernatetool] Error #1: java.sql.SQLException: Table not found: MESSAGES in statement [alter table MESSAGES]

BUILD SUCCESSFUL
Total time: 14 seconds

And indeed, when running ant dbmanager, I can see the MESSAGES table as expected.

So everything worked just fine, out of the box. If it doesn't for you, maybe start looking at things such as a networking issue, a personal firewall, etc.


According to the trace, it looks like HSQL is not started (at least not in server mode) and I suspect that you didn't start it like you are supposed to. To start it in server mode, from the helloworld-reverse directory, run (as explained in the section Starting the HSQL database system, p 98):

$ java -cp lib/hsqldb.jar org.hsqldb.Server

Then you'll be able to connect to it using the jdbc:hsqldb:hsql://localhost connection string.

Share:
16,909
javanoob
Author by

javanoob

SOreadytohelp

Updated on June 05, 2022

Comments

  • javanoob
    javanoob almost 2 years

    I am trying to learn Hibernate from Java Persistence with hibernate by Gavin King.

    I just downloaded the examples given in the book from this location http://downloads.jboss.org/hibernate/caveatemptor/jpwh-gettingstarted-070401.zip

    I started my HSQL db using ant startdb and database started successfully.

    When trying to run the target schemaexport I am getting the below error..

    schemaexport: [hibernatetool] Executing Hibernate Tool with a Standard Configuration [hibernatetool] 1. task: hbm2ddl (Generates database schema) [hibernatetool] 18:07:56,555 INFO Environment:500 - Hibernate 3.2.0.cr5 [hibernatetool] 18:07:56,555 INFO Environment:533 - hibernate.properties not fo und [hibernatetool] 18:07:56,555 INFO Environment:667 - Bytecode provider name : cg lib [hibernatetool] 18:07:56,571 INFO Environment:584 - using JDK 1.4 java.sql.Time stamp handling [hibernatetool] 18:07:56,617 INFO Configuration:1384 - configuring from file: h ibernate.cfg.xml [hibernatetool] 18:07:56,680 INFO Configuration:507 - Reading mappings from res ource: hello/Message.hbm.xml [hibernatetool] 18:07:56,758 INFO HbmBinder:300 - Mapping class: hello.Message -> MESSAGES [hibernatetool] 18:07:56,851 INFO Configuration:1465 - Configured SessionFactor y: null [hibernatetool] 18:07:56,851 INFO Dialect:141 - Using dialect: org.hibernate.di alect.HSQLDialect [hibernatetool] 18:07:56,914 INFO SchemaExport:154 - Running hbm2ddl schema exp ort [hibernatetool] 18:07:56,914 INFO SchemaExport:174 - writing generated schema t o file: C:\Users\Ramesh\Desktop\Tutorials\hibernate\Hibernate Code samples\jpwh- gettingstarted-070401\helloworld-native\helloworld-ddl.sql [hibernatetool] 18:07:56,914 INFO SchemaExport:179 - exporting generated schema to database [hibernatetool] 18:07:56,914 INFO C3P0ConnectionProvider:50 - C3P0 using driver : org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:hsql://localhost [hibernatetool] 18:07:56,914 INFO C3P0ConnectionProvider:51 - Connection proper ties: {user=sa} [hibernatetool] 18:07:56,914 INFO C3P0ConnectionProvider:54 - autocommit mode: false [hibernatetool] 18:08:26,554 WARN BasicResourcePool:1222 - com.mchange.v2.resou rcepool.BasicResourcePool$AcquireTask@61f1680f -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we fai led to succeed more than the maximum number of allowed acquisition attempts (30) . [hibernatetool] 18:08:26,554 ERROR SchemaExport:202 - schema export unsuccessful

    [hibernatetool] java.sql.SQLException: Connections could not be acquired from th e underlying database! [hibernatetool] at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.j ava:104) [hibernatetool] at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.che ckoutPooledConnection(C3P0PooledConnectionPool.java:236) [hibernatetool] at com.mchange.v2.c3p0.PoolBackedDataSource.getConnectio n(PoolBackedDataSource.java:94) [hibernatetool] at org.hibernate.connection.C3P0ConnectionProvider.getCo nnection(C3P0ConnectionProvider.java:35) [hibernatetool] at org.hibernate.tool.hbm2ddl.ManagedProviderConnectionH elper.prepare(ManagedProviderConnectionHelper.java:28) [hibernatetool] at org.hibernate.tool.hbm2ddl.SchemaExport.execute(Schem aExport.java:180) [hibernatetool]
    at org.hibernate.tool.hbm2ddl.SchemaExport.create(Schema Export.java:133) [hibernatetool]
    at org.hibernate.tool.ant.Hbm2DDLExporterTask.execute(Hb m2DDLExporterTask.java:55) [hibernatetool] at org.hibernate.tool.ant.HibernateToolTask.execute(Hibe rnateToolTask.java:171) [hibernatetool] at org.apache.tools.ant.UnknownElement.execute(UnknownEl ement.java:291) [hibernatetool]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M ethod) [hibernatetool] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMet hodAccessorImpl.java:39) [hibernatetool] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Deleg atingMethodAccessorImpl.java:25) [hibernatetool] at java.lang.reflect.Method.invoke(Method.java:597) [hibernatetool] at org.apache.tools.ant.dispatch.DispatchUtils.execute(D ispatchUtils.java:106) [hibernatetool] at org.apache.tools.ant.Task.perform(Task.java:348) [hibernatetool] at org.apache.tools.ant.Target.execute(Target.java:390) [hibernatetool] at org.apache.tools.ant.Target.performTasks(Target.java: 411) [hibernatetool] at org.apache.tools.ant.Project.executeSortedTargets(Pro ject.java:1397) [hibernatetool]
    at org.apache.tools.ant.Project.executeTarget(Project.ja va:1366) [hibernatetool] at org.apache.tools.ant.helper.DefaultExecutor.executeTa rgets(DefaultExecutor.java:41) [hibernatetool] at org.apache.tools.ant.Project.executeTargets(Project.j ava:1249) [hibernatetool] at org.apache.tools.ant.Main.runBuild(Main.java:801) [hibernatetool] at org.apache.tools.ant.Main.startAnt(Main.java:218) [hibernatetool] at org.apache.tools.ant.launch.Launcher.run(Launcher.jav a:280) [hibernatetool] at org.apache.tools.ant.launch.Launcher.main(Launcher.ja va:109) [hibernatetool] Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceExce ption: A ResourcePool could not acquire a resource from its primary factory or s ource. [hibernatetool]
    at com.mchange.v2.resourcepool.BasicResourcePool.awaitAc quire(BasicResourcePool.java:970) [hibernatetool] at com.mchange.v2.resourcepool.BasicResourcePool.checkou tResource(BasicResourcePool.java:208) [hibernatetool] at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.che ckoutPooledConnection(C3P0PooledConnectionPool.java:232) [hibernatetool] ... 24 more [hibernatetool] 1 errors occurred while performing . [hibernatetool] Error #1: java.sql.SQLException: Connections could not be acquir ed from the underlying database! [hibernatetool] 18:08:26,569 WARN BasicResourcePool:1222 - com.mchange.v2.resou rcepool.BasicResourcePool$AcquireTask@72f864fe -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we fai led to succeed more than the maximum number of allowed acquisition attempts (30) .`

    I don't have too much knowledge about either hiberate or HSQL..

    Some one please explain whats wrong here??

    Thanks

    EDIT: I am trying to run the project helloworld-native.

    The target given in the ant build.xml for startdb is as below:

    <!-- Start the HSQL DB server -->
    <target name="startdb" description="Run HSQL database server with clean DB">
        <!-- Delete database files -->
        <delete dir="${database.dir}"/>
        <java classname="org.hsqldb.Server"
              fork="yes"
              classpathref="project.classpath"
              failonerror="true">
            <arg value="-database.0"/>
            <arg value="file:${database.dir}/db"/>
        </java>
    </target>
    

    and when i run the command ant startdb i see the below output:

    startdb:
         [delete] Deleting directory C:\Users\Ramesh\Desktop\Tutorials\hibernate\Hibernate Code samples\jpwh-gettingstarted-070401\helloworld-native\database
         [java] [Server@15ded0fd]: [Thread[main,5,main]]: checkRunning(false) entered
         [java] [Server@15ded0fd]: [Thread[main,5,main]]: checkRunning(false) exited
    
         [java] [Server@15ded0fd]: Startup sequence initiated from main() method
         [java] [Server@15ded0fd]: Loaded properties from [C:\Users\Ramesh\Desktop\Tutorials hibernate\Hibernate Code samples\jpwh-gettingstarted-070401\helloworld-native\server.properties]
         [java] [Server@15ded0fd]: Initiating startup sequence...
         [java] [Server@15ded0fd]: Server socket opened successfully in 29 ms.
         [java] [Server@15ded0fd]: Database [index=0, id=0, db=file:database/db, alias=] opened sucessfully in 469 ms.
         [java] [Server@15ded0fd]: Startup sequence completed in 523 ms.
         [java] [Server@15ded0fd]: 2010-11-08 22:11:08.027 HSQLDB server 1.8.0 is online
         [java] [Server@15ded0fd]: To close normally, connect and execute SHUTDOWN SQL
         [java] [Server@15ded0fd]: From command line, use [Ctrl]+[C] to abort abruptly
    

    Then, i think i am running HSQL DB in server mode only (from the above output)..

    Please tell me what else I am missing..

  • javanoob
    javanoob over 13 years
    Pascal, I added comments to the question...You can look at when you have time..Thanks in advance..
  • javanoob
    javanoob over 13 years
    Thanks Pascal..making time to look at my question...As you said i think the problem might be with the network..However, I am able to proceed with MySql DB. Thanks again