Environment
Retain 2.x, 3.x
Oracle 11g Database
AIX Server
Situation
Customer installed an Oracle 11g database on an AIX machine and imported all the data from the existing production database to the new server. After doing so, they tried to connect to the RetainServer web interface and were presented an error:
Error occurred configuring database: com.gwava.cfg.dao.RetainConfigDataAccessException: com.gwava.exceptions.RetainServerException: org.hibernate.exception.SQLGrammarException: error executing work at com.gwava.db.config.ConfigDB.optimize(ConfigDB.java:177) at com.gwava.management.SetupWizard.createConfigDB(SetupWizard.java:157) at com.gwava.management.SetupWizard.createConfigDB(SetupWizard.java:71) at org.apache.jsp.Init.index_jsp._jspService(Unknown Source) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.gwava.Filters.ResponseFilter.doFilter(ResponseFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.gwava.Filters.MainFilter.doFilter(MainFilter.java:276) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:662) Caused by: com.gwava.exceptions.RetainServerException: org.hibernate.exception.SQLGrammarException: error executing work at com.gwava.hibernate.SpecialDB.optimize(SpecialDB.java:80) at com.gwava.db.config.ConfigDB.optimize(ConfigDB.java:175) ... 26 more Caused by: org.hibernate.exception.SQLGrammarException: error executing work at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) at org.hibernate.impl.SessionImpl.doWork(SessionImpl.java:1862) at com.gwava.hibernate.SpecialDB.optimize(SpecialDB.java:72) ... 27 more Caused by: java.sql.SQLException: ORA-00955: name is already used by an existing object at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:204) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:942) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1770) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1739) at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:299) at com.mchange.v2.c3p0.impl.NewProxyStatement.execute(NewProxyStatement.java:1006) at com.gwava.hibernate.SpecialDB.executeSQL(SpecialDB.java:120) at com.gwava.hibernate.SpecialDB.optimizeSpecific(SpecialDB.java:94) at com.gwava.hibernate.SpecialDB.access$000(SpecialDB.java:29) at com.gwava.hibernate.SpecialDB$1.execute(SpecialDB.java:74) at org.hibernate.impl.SessionImpl.doWork(SessionImpl.java:1858) ... 28 more
Resolution
The customer modified the initConfDB parameter in the /opt/beginfinite/retain/RetainServer/WEB-INF/cfg/ASConfig.cfg file from false to true. This allowed the customer to configure the app server with the database and the JDBC issue was resolved.