Page 1 of 1

Import failing on 'name already used'

PostPosted: Tue Jun 19, 2012 8:15 pm
by john.allen
I or someone else frequently make changes to the back end production database in Oracle. Sometimes these changes are made in Developer sometimes with 'outside' tools. In either case though they are always confirmed and resolved in the developer solution (5.2). When importing an updated solution to the server Servoy will sometimes choke the first time with a statement that the object already exists in the database. However when I re-import the solution it invariably succeeds the second time through. Today I got that same message a number of times but I kept on trying the import because I remembered that there were 4 new columns added plus one table. However after about 4 attempted imports I got a new message posted below and I now get this continually. What is the best way out of this and how do changes need to be made to the production database in order to avoid this in the future? Changes will be made to the production database outside of Servoy and I'm just not sure how to always incorporate those changes in Developer and then importing to the server...
com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: ORA-00955: name is already used by an existing object
at com.servoy.j2db.server.Ze.Zeb.Za(Zeb.java:118)
at com.servoy.j2db.server.Ze.Zeb.importFromJarFile(Zeb.java:557)
at com.servoy.j2db.server.servlets.ConfigServlet.Zj(ConfigServlet.java:3445)
at com.servoy.j2db.server.servlets.ConfigServlet.service(ConfigServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
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:110)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
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:1030)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:936)
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:298)
at sun.reflect.GeneratedMethodAccessor874.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.servoy.j2db.Za.Za.Zf.invoke(Zf.java:9)
at $Proxy13.execute(Unknown Source)
at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
at com.servoy.j2db.server.Zc.Zo.createMissingDBSequences(Zo.java:1430)
at com.servoy.j2db.server.Ze.Zk.importDatabaseInfo(Zk.java:73)
at com.servoy.j2db.server.Ze.Zeb.Za(Zeb.java:63)
... 17 more

Re: Import failing on 'name already used'

PostPosted: Tue Jun 19, 2012 9:30 pm
by ROCLASI
Hi John,

When you make changes to the database that the Servoy Server is using then in order for Servoy server to see the changes you need to restart it.
After this you can import the new solution and it won't try to create the already existing columns/tables.

Hope this helps.

Re: Import failing on 'name already used'

PostPosted: Tue Jun 19, 2012 9:41 pm
by john.allen
That's great! Thanks so much. Never knew that restarting the server did that.

John