org.apache.tomcat.jdbc.pool.ConnectionPool.init Unable to create initial connections of pool. org.h2.jdbc.JdbcSQLException: Error while creating file "/camunda-h2-dbs"

Hi all,

I installed Camunda 7.11.0 on a CentOS Linux release 7.6.1810 (Core).
When I try to start it I get:
02-Jul-2019 09:56:41.812 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [545] milliseconds
02-Jul-2019 09:56:43.172 SEVERE [main] org.apache.tomcat.jdbc.pool.ConnectionPool.init Unable to create initial connections of pool.
org.h2.jdbc.JdbcSQLException: Error while creating file “/camunda-h2-dbs” [90062-190]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.store.fs.FilePathDisk.createDirectory(FilePathDisk.java:274)
at org.h2.store.fs.FileUtils.createDirectory(FileUtils.java:42)
at org.h2.store.fs.FileUtils.createDirectories(FileUtils.java:309)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:73)
at org.h2.engine.Database.getPageStore(Database.java:2450)
at org.h2.engine.Database.open(Database.java:672)
at org.h2.engine.Database.openDatabase(Database.java:269)
at org.h2.engine.Database.(Database.java:263)
at org.h2.engine.Engine.openSession(Engine.java:65)
at org.h2.engine.Engine.openSession(Engine.java:175)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:153)
at org.h2.engine.Engine.createSession(Engine.java:136)
at org.h2.engine.Engine.createSession(Engine.java:28)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:107)
at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:91)
at org.h2.Driver.connect(Driver.java:72)
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:319)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:212)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:744)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:676)
at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:483)
at org.apache.tomcat.jdbc.pool.ConnectionPool.(ConnectionPool.java:154)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107)
at org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:560)
at org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:244)
at org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:94)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)

I tried with chmod -R 777 … but no success. The same error.
The h2 driver are present in lib folder.

Any idea?
Thanks

Hi @valiu,

How did you setup Camunda? Did you perform a full manual installation on Tomcat, is this the prepackaged Tomcat distro or is it using the Camunda Spring Boot Starter?

Best,
Nikola

It’s a Tomcat distro: camunda-bpm-tomcat-7.11.0.tar.gz

Thanks,

Hi @valiu,

Have you checked if your file system is full?

There is also a topic that might be related to your problem: H2 db not created on v. 7.5.3 in WildFly 10

Does the solution described there solve your problem?

Best,
Nikola

No, it’s not full. It’s at 22% used.

Thanks,
valiu

I did it, I changed in the server.xml from:
url=“jdbc:h2:./camunda-h2-dbs/process-engine;MVCC=TRUE;TRACE_LEVEL_FILE=0;DB_CLOSE_ON_EXIT=FALSE”
to
url=“jdbc:h2:~/camunda-h2-dbs/process-engine;MVCC=TRUE;TRACE_LEVEL_FILE=0;DB_CLOSE_ON_EXIT=FALSE”

Remarque the ~/camunda-h2-dbs instead of ./camunda-h2-dbs

Now the folder camunda-h2-dbs are always created in the home of the starting user.
In the original version, he attempted to create the folder in the root folder (/camunda-h2-dbs) it had no rights.

The last info: camunda is started by “systemctl start camunda”
and the systemd unit file is:

Systemd unit file for camunda

[Unit]
Description=Camunda Workflow Engine
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/var/java/current
Environment=CAMUNDA_PID=/var/camunda/current/server/apache-tomcat-9.0.19/temp/camunda.pid
Environment=CAMUNDA_HOME=/var/camunda/current
Environment=CAMUNDA_BASE=/var/camunda/current
Environment=CAMUNDA_USER=xxx

ExecStart=/var/camunda/current/start-camunda.sh
ExecStop=/var/camund/current/shutdown-camunda.sh

User=xxx
Group=xxx
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Thansk,
valiu

1 Like