Cannot start RH-SSO 7.5 with H2 database

Solution Verified - Updated -

Issue

  • After upgrade to RH-SSO 7.5, the server will not start.
  • The errors like below are logged in server.log:
WARN  [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (ServerService Thread Pool -- 57) IJ000604: Throwable while attempting to get a new connection: null: javax.resource.ResourceException: IJ031084: Unable to create connection
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:364)
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:371)
    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:287)
    at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.createConnectionEventListener(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1328)
    at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:505)
    at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:640)
...
Caused by: org.h2.jdbc.JdbcSQLException: Constraint "FK_5HG65LYBEVAVKQFKI3KPONH9V" already exists; SQL statement:
ALTER TABLE PUBLIC.REALM_REQUIRED_CREDENTIAL ADD CONSTRAINT PUBLIC.FK_5HG65LYBEVAVKQFKI3KPONH9V FOREIGN KEY(REALM_ID) INDEX PUBLIC.FK_5HG65LYBEVAVKQFKI3KPONH9V_INDEX_9 REFERENCES PUBLIC.REALM(ID) NOCHECK [90045-197]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)
    at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:110)
    at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:78)
    at org.h2.engine.MetaRecord.execute(MetaRecord.java:58)
    at org.h2.engine.Database.open(Database.java:775)
FATAL [org.keycloak.services] (ServerService Thread Pool -- 59) Error during startup: java.lang.RuntimeException: Failed to connect to database
    at org.keycloak.keycloak-model-jpa@15.0.2.redhat-00001//org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory.getConnection(DefaultJpaConnectionProviderFactory.java:391)
    at org.keycloak.keycloak-model-jpa@15.0.2.redhat-00001//org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProvider.lazyInit(LiquibaseDBLockProvider.java:65)
    at org.keycloak.keycloak-model-jpa@15.0.2.redhat-00001//org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProvider.lambda$waitForLock$2(LiquibaseDBLockProvider.java:96)
    at org.keycloak.keycloak-server-spi-private@15.0.2.redhat-00001//org.keycloak.models.utils.KeycloakModelUtils.suspendJtaTransaction(KeycloakModelUtils.java:758)
...
Caused by: java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:jboss/datasources/KeycloakDS
    at org.jboss.ironjacamar.jdbcadapters@1.4.30.Final-redhat-00001//org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:159)
    at org.jboss.as.connector@7.4.0.GA-redhat-00005//org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:64)
    at org.keycloak.keycloak-model-jpa@15.0.2.redhat-00001//org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory.getConnection(DefaultJpaConnectionProviderFactory.java:385)
...
Caused by: org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "PRIMARY KEY ON """".PAGE_INDEX"; SQL statement:
ALTER TABLE PUBLIC.IDENTITY_PROVIDER_CONFIG ADD CONSTRAINT PUBLIC.FKDC4897CF864C4E43 FOREIGN KEY(IDENTITY_PROVIDER_ID) REFERENCES PUBLIC.IDENTITY_PROVIDER(INTERNAL_ID) NOCHECK [23505-197]
    at com.h2database.h2@1.4.197.redhat-00001//org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    at com.h2database.h2@1.4.197.redhat-00001//org.h2.message.DbException.get(DbException.java:179)
    at com.h2database.h2@1.4.197.redhat-00001//org.h2.message.DbException.get(DbException.java:155)
    at com.h2database.h2@1.4.197.redhat-00001//org.h2.index.PageDataIndex.getNewDuplicateKeyException(PageDataIndex.java:163)

Environment

  • Red Hat Single Sign-On (RH-SSO)
    • 7.5
  • H2 Database
    • 1.4.197

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content