Question

I working with API Manager 1.6. I created roles, users, publish API, etc.. and works fine. When i restart server show this error. Any Idea?

org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "958 of 958". Possible solution: use the recovery tool [90030-140]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
        at org.h2.message.DbException.get(DbException.java:167)
        at org.h2.message.DbException.get(DbException.java:144)
        at org.h2.store.PageStore.readPage(PageStore.java:1094)
        at org.h2.store.PageStore.getPage(PageStore.java:561)
        at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:218)
        at org.h2.index.PageDataNode.getLastKey(PageDataNode.java:221)
        at org.h2.index.PageDataIndex.<init>(PageDataIndex.java:74)
        at org.h2.table.RegularTable.<init>(RegularTable.java:75)
        at org.h2.store.PageStore.addMeta(PageStore.java:1443)
        at org.h2.store.PageStore.readMetaData(PageStore.java:1380)
        at org.h2.store.PageStore.recover(PageStore.java:1178)
        at org.h2.store.PageStore.openExisting(PageStore.java:317)
        at org.h2.store.PageStore.open(PageStore.java:271)
        at org.h2.engine.Database.getPageStore(Database.java:2059)
        at org.h2.engine.Database.open(Database.java:534)
        at org.h2.engine.Database.openDatabase(Database.java:207)
        at org.h2.engine.Database.<init>(Database.java:202)
        at org.h2.engine.Engine.openSession(Engine.java:56)
        at org.h2.engine.Engine.openSession(Engine.java:146)
        at org.h2.engine.Engine.getSession(Engine.java:125)
        at org.h2.engine.Session.createSession(Session.java:122)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:241)
        at org.h2.engine.SessionRemote.createSession(SessionRemote.java:219)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:111)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:95)
        at org.h2.Driver.connect(Driver.java:73)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
        at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
        at org.wso2.carbon.user.core.claim.dao.ClaimDAO.getDialectCount(ClaimDAO.java:158)
        at org.wso2.carbon.user.core.common.DefaultRealm.populateProfileAndClaimMaps(DefaultRealm.java:411)
        at org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:101)
        at org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223)
        at org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmService.java:101)
        at org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmService.java:114)
        at org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:69)
        at org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheckActivator.java:61)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
        at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
[2014-04-15 17:26:35,660] ERROR - DefaultRealmService Cannot initialize the realm.
org.wso2.carbon.user.core.UserStoreException: Database Error - File corrupted while reading record: "958 of 958". Possible solution: use the recovery tool [90030-140]
        at org.wso2.carbon.user.core.claim.dao.ClaimDAO.getDialectCount(ClaimDAO.java:168)
        at org.wso2.carbon.user.core.common.DefaultRealm.populateProfileAndClaimMaps(DefaultRealm.java:411)
        at org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:101)
        at org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223)
        at org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmService.java:101)
        at org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmService.java:114)
        at org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:69)
        at org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheckActivator.java:61)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
        at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "958 of 958". Possible solution: use the recovery tool [90030-140]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
        at org.h2.message.DbException.get(DbException.java:167)
        at org.h2.message.DbException.get(DbException.java:144)
        at org.h2.store.PageStore.readPage(PageStore.java:1094)
        at org.h2.store.PageStore.getPage(PageStore.java:561)
        at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:218)
        at org.h2.index.PageDataNode.getLastKey(PageDataNode.java:221)
        at org.h2.index.PageDataIndex.<init>(PageDataIndex.java:74)
        at org.h2.table.RegularTable.<init>(RegularTable.java:75)
        at org.h2.store.PageStore.addMeta(PageStore.java:1443)
        at org.h2.store.PageStore.readMetaData(PageStore.java:1380)
        at org.h2.store.PageStore.recover(PageStore.java:1178)
        at org.h2.store.PageStore.openExisting(PageStore.java:317)
        at org.h2.store.PageStore.open(PageStore.java:271)
        at org.h2.engine.Database.getPageStore(Database.java:2059)
        at org.h2.engine.Database.open(Database.java:534)
        at org.h2.engine.Database.openDatabase(Database.java:207)
        at org.h2.engine.Database.<init>(Database.java:202)
        at org.h2.engine.Engine.openSession(Engine.java:56)
        at org.h2.engine.Engine.openSession(Engine.java:146)
        at org.h2.engine.Engine.getSession(Engine.java:125)
        at org.h2.engine.Session.createSession(Session.java:122)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:241)
        at org.h2.engine.SessionRemote.createSession(SessionRemote.java:219)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:111)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:95)
        at org.h2.Driver.connect(Driver.java:73)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
        at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
        at org.wso2.carbon.user.core.claim.dao.ClaimDAO.getDialectCount(ClaimDAO.java:158)
        ... 22 more
[2014-04-15 17:26:35,666] ERROR - Activator Cannot start User Manager Core bundle
org.wso2.carbon.user.core.UserStoreException: Cannot initialize the realm.
        at org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:231)
        at org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmService.java:101)
        at org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmService.java:114)
        at org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:69)
        at org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheckActivator.java:61)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
        at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: org.wso2.carbon.user.core.UserStoreException: Database Error - File corrupted while reading record: "958 of 958". Possible solution: use the recovery tool [90030-140]
        at org.wso2.carbon.user.core.claim.dao.ClaimDAO.getDialectCount(ClaimDAO.java:168)
        at org.wso2.carbon.user.core.common.DefaultRealm.populateProfileAndClaimMaps(DefaultRealm.java:411)
        at org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:101)
        at org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223)
        ... 19 more
Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "958 of 958". Possible solution: use the recovery tool [90030-140]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
        at org.h2.message.DbException.get(DbException.java:167)
        at org.h2.message.DbException.get(DbException.java:144)
        at org.h2.store.PageStore.readPage(PageStore.java:1094)
        at org.h2.store.PageStore.getPage(PageStore.java:561)
        at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:218)
        at org.h2.index.PageDataNode.getLastKey(PageDataNode.java:221)
        at org.h2.index.PageDataIndex.<init>(PageDataIndex.java:74)
        at org.h2.table.RegularTable.<init>(RegularTable.java:75)
        at org.h2.store.PageStore.addMeta(PageStore.java:1443)
        at org.h2.store.PageStore.readMetaData(PageStore.java:1380)
        at org.h2.store.PageStore.recover(PageStore.java:1178)
        at org.h2.store.PageStore.openExisting(PageStore.java:317)
        at org.h2.store.PageStore.open(PageStore.java:271)
        at org.h2.engine.Database.getPageStore(Database.java:2059)
        at org.h2.engine.Database.open(Database.java:534)
        at org.h2.engine.Database.openDatabase(Database.java:207)
        at org.h2.engine.Database.<init>(Database.java:202)
        at org.h2.engine.Engine.openSession(Engine.java:56)
        at org.h2.engine.Engine.openSession(Engine.java:146)
        at org.h2.engine.Engine.getSession(Engine.java:125)
        at org.h2.engine.Session.createSession(Session.java:122)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:241)
        at org.h2.engine.SessionRemote.createSession(SessionRemote.java:219)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:111)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:95)
        at org.h2.Driver.connect(Driver.java:73)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
        at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
        at org.wso2.carbon.user.core.claim.dao.ClaimDAO.getDialectCount(ClaimDAO.java:158)
        ... 22 more
[2014-04-15 17:26:45,468]  INFO - TaglibUriRule TLD skipped. URI: http://tiles.apache.org/tags-tiles is already defined
./wso2server.sh: line 298:  2110 Killed                  $JAVACMD -Xbootclasspath/a:"$CARBON_XBOOTCLASSPATH" -Xms512m -Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="$CARBON_HOME/repository/logs/heap-dump.hprof" $JAVA_OPTS -Dcom.sun.management.jmxremote -classpath "$CARBON_CLASSPATH" -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -Djava.io.tmpdir="$CARBON_HOME/tmp" -Dcatalina.base="$CARBON_HOME/lib/tomcat" -Dwso2.server.standalone=true -Dcarbon.registry.root=/ -Djava.command="$JAVACMD" -Dcarbon.home="$CARBON_HOME" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="$CARBON_HOME/repository/conf/etc/logging-bridge.properties" -Dcarbon.config.dir.path="$CARBON_HOME/repository/conf" -Dcomponents.repo="$CARBON_HOME/repository/components/plugins" -Dconf.location="$CARBON_HOME/repository/conf" -Dcom.atomikos.icatch.file="$CARBON_HOME/lib/transactions.properties" -Dcom.atomikos.icatch.hide_init_file_path=true -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dcom.sun.jndi.ldap.connect.pool.authentication=simple -Dcom.sun.jndi.ldap.connect.pool.timeout=3000 -Dorg.terracotta.quartz.skipUpdateCheck=true -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8 -DapplyPatches org.wso2.carbon.bootstrap.Bootstrap $*
Was it helpful?

Solution

You are getting a file corrupted error for your local H2 Database.

WSO2 does not recommend using H2 database.

It's usually recommended to use a "production-ready" database for WSO2 API Manager datasource, User Store and Registry.

For registry mounting, you can use H2 for local repository. However you shouldn't use H2 database for Config and Governance repositories.

See WSO2 API Manager Clustering and Deployment Guide for more information.

You may use wso2server.sh -Dsetup to re-create the database. But I think this is not what you need as it would clean up your data. I think you should use another database to avoid these kinds of errors.

I hope this helps.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top