Repair Corrupted Internal Database
Version 7.1 by michaely on 2015/10/20 13:35
In some cases the internal database can become corrupt and prevent use of the iSymphony application. Users will normally see errors like the following when accessing the panel:
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.h2.jdbc.JdbcSQLException: General error: "java.lang.RuntimeException: rowcount remaining=5 SYS" [50000-169]
### The error may exist in com/xmlnamespace/panel/server/core/pbx/callhistory/CallHistoryMapper.xml
### The error may involve com.xmlnamespace.panel.server.core.pbx.callhistory.CallHistoryMapper.getByExtension
### The error occurred while executing a query
### Cause: org.h2.jdbc.JdbcSQLException: General error: "java.lang.RuntimeException: rowcount remaining=5 SYS" [50000-169]
### Error querying database. Cause: org.h2.jdbc.JdbcSQLException: General error: "java.lang.RuntimeException: rowcount remaining=5 SYS" [50000-169]
### The error may exist in com/xmlnamespace/panel/server/core/pbx/callhistory/CallHistoryMapper.xml
### The error may involve com.xmlnamespace.panel.server.core.pbx.callhistory.CallHistoryMapper.getByExtension
### The error occurred while executing a query
### Cause: org.h2.jdbc.JdbcSQLException: General error: "java.lang.RuntimeException: rowcount remaining=5 SYS" [50000-169]
Repair Process
In order to recover your data, you will need to run a repair process on the database. The repair process is outlined below:
- Stop the iSymphony server. See Starting And Stopping The iSymphony Server.
Create a temporary directory to perform the recovery.
mkdir isdbrecovery
cd isdbrecoveryCopy the h2 database jar into the recovery directory:
cp /opt/isymphony3/server/modules/framework/shared/org.h2_1.3.169.jar .Copy the database file into the recovery directory:
cp /opt/isymphony3/server/conf/servers/default/isymphony.h2.db .Run the following command to export the database to an sql file:
java -cp org.h2_1.3.169.jar org.h2.tools.RecoverCreate a sub directory to hold the old database:
mkdir old
mv isymphony.h2.db ./oldRun the following command to create a new database from the sql file:
java -cp org.h2_1.3.169.jar org.h2.tools.RunScript -url "jdbc:h2:./isymphony" -user admin -password admin -script isymphony.h2.sqlMove the new database into place:
mv isymphony.h2.db /opt/isymphony3/server/conf/servers/default/Restart iSymphony. See Starting And Stopping The iSymphony Server.