As Oracle is a company standard, I've investigated the use of an Oracle database. Appearantly, during initialisation of a new XWiki database, one or more XWikiDOC records are created that contain an empty XWD_TITLE field. It seems that Oracle interprets an empty string differently than (for instance) mySQL.When a query contains a string value that is empty (""), Oracle stores this in the database as a NULL value. Because the XWD_TITLE field has a NOT NULL constraint, the exception is raised. Oracle 10g has some kind of a switch in the form of the statement IGNORE NAV that can be included in the (Oracle specific?) MODEL clause of an SQL query. I have not tried this though, because our installation of XWiki had to be completed and it looks like the MODEL clause is not transparently supported in Hibernate. Besides, I think there is another problem with the use of Oracle. Large text fields are implemented als a CLOB type. But searching this type of field with LIKE only accesses the first 4K of the field. There is a forum thread ( http://mail-archive.objectweb.org/xwiki-users/2006-08/msg00112.html) that mentions this and the possible use of Lucene. Ludovic/Vincent: are there any (future) plans to support Oracle as mentioned in the forum thread? Regards, Ronald. 2007/3/13, Sergiu Dumitriu <[email protected]>:
Hi,
There's a problem with using XWiki on Oracle, which is not solved yet. Other users got stuck on the same problem: http://mail-archive.objectweb.org/xwiki-dev/2007-01/msg00142.html http://mail-archive.objectweb.org/xwiki-dev/2007-01/msg00143.html http://archivesat.com/post4701341.htm
Unfortunately, I don't have Oracle, so I can't debug it to see what's the problem.
Sergiu
On 3/13/07, [email protected] < [email protected]> wrote:
Hi Ludovic,
First of all thank you for your response. I have tried by removing the Calendar Plugin but still getting the similar error.
10:17:01,204 WARN [ACTIVE] ExecuteThread: '2' for queue: ' weblogic.kernel.Default (self-tuning)' http://3.170.64.77:7001/xwiki/bin/view/Main/WebHomeJDBCExceptionReporter:log... - SQL Error: 1400, SQLState: 23000 10:17:01,211 ERROR [ACTIVE] ExecuteThread: '2' for queue: ' weblogic.kernel.Default (self-tuning)' http://3.170.64.77:7001/xwiki/bin/view/Main/WebHome JDBCExceptionReporter:logExceptions:72 - ORA-01400: cannot insert NULL into ("XWIKI"."XWIKIDOC"."XWD_TITLE")
10:17:01,216 WARN [ACTIVE] ExecuteThread: '2' for queue: ' weblogic.kernel.Default (self-tuning)' http://3.170.64.77:7001/xwiki/bin/view/Main/WebHomeJDBCExceptionReporter:log... - SQL Error: 1400, SQLState: 23000 10:17:01,221 ERROR [ACTIVE] ExecuteThread: '2' for queue: ' weblogic.kernel.Default (self-tuning)' http://3.170.64.77:7001/xwiki/bin/view/Main/WebHome JDBCExceptionReporter:logExceptions:72 - ORA-01400: cannot insert NULL into ("XWIKI"."XWIKIDOC"."XWD_TITLE")
10:17:01,228 ERROR [ACTIVE] ExecuteThread: '2' for queue: ' weblogic.kernel.Default (self-tuning)' http://3.170.64.77:7001/xwiki/bin/view/Main/WebHomeAbstractFlushingEventList... - Could not synchronize database state with session org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.convert( SQLStateConverter.java:69) at org.hibernate.exception.JDBCExceptionHelper.convert ( JDBCExceptionHelper.java:43) at org.hibernate.jdbc.AbstractBatcher.executeBatch( AbstractBatcher.java:202) at org.hibernate.engine.ActionQueue.executeActions( ActionQueue.java:230) at org.hibernate.engine.ActionQueue.executeActions ( ActionQueue.java:140) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions( AbstractFlushingEventListener.java:296) at org.hibernate.event.def.DefaultFlushEventListener.onFlush( DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java :356) at org.hibernate.transaction.JDBCTransaction.commit ( JDBCTransaction.java:106) at com.xpn.xwiki.store.XWikiHibernateBaseStore.endTransaction( XWikiHibernateBaseStore.java:573) at com.xpn.xwiki.store.XWikiHibernateBaseStore.endTransaction( XWikiHibernateBaseStore.java :547) at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc( XWikiHibernateStore.java:309) at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc( XWikiCacheStore.java:100) at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc ( XWikiCacheStore.java:94) at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:891) at com.xpn.xwiki.XWiki.getPrefsClass(XWiki.java:2292) at com.xpn.xwiki.XWiki.initXWiki(XWiki.java:674) at com.xpn.xwiki.XWiki.<init>(XWiki.java:566) at com.xpn.xwiki.XWiki.getMainXWiki(XWiki.java:281) at com.xpn.xwiki.XWiki.getXWiki(XWiki.java:382) at com.xpn.xwiki.web.XWikiAction.execute (XWikiAction.java:96) at org.apache.struts.action.RequestProcessor.processActionPerform( RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process( RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process( ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet( ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java :743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run( StubSecurityHelper.java:223) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet ( StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute( ServletStubImpl.java:283) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java :26) at weblogic.servlet.internal.FilterChainImpl.doFilter ( FilterChainImpl.java:42) at com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter( SetCharacterEncodingFilter.java:121) at weblogic.servlet.internal.FilterChainImpl.doFilter( FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run (WebAppServletContext.java:3243) at weblogic.security.acl.internal.AuthenticatedSubject.doAs( AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs( SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute (WebAppServletContext.java:2003) at weblogic.servlet.internal.WebAppServletContext.execute ( WebAppServletContext.java:1909) at weblogic.servlet.internal.ServletRequestImpl.run( ServletRequestImpl.java:1359) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run (ExecuteThread.java:181) Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("XWIKI"."XWIKIDOC"."XWD_TITLE")
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException ( DatabaseError.java:343) at oracle.jdbc.driver.OraclePreparedStatement.executeBatch( OraclePreparedStatement.java:10698) at org.apache.commons.dbcp.DelegatingStatement.executeBatch( DelegatingStatement.java :294) at org.apache.commons.dbcp.DelegatingStatement.executeBatch( DelegatingStatement.java:294) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch( BatchingBatcher.java:58) at org.hibernate.jdbc.AbstractBatcher.executeBatch ( AbstractBatcher.java:195) ... 40 more com.xpn.xwiki.XWikiException: Error number 3201 in 3: Exception while saving document XWiki.XWikiPreferences Wrapped Exception: Could not execute JDBC batch update at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc( XWikiHibernateStore.java:314) at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc( XWikiCacheStore.java:100) at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc ( XWikiCacheStore.java:94) at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:891) at com.xpn.xwiki.XWiki.getPrefsClass(XWiki.java:2292) at com.xpn.xwiki.XWiki.initXWiki(XWiki.java:674) at com.xpn.xwiki.XWiki.<init>(XWiki.java:566) at com.xpn.xwiki.XWiki.getMainXWiki(XWiki.java:281) at com.xpn.xwiki.XWiki.getXWiki(XWiki.java:382) at com.xpn.xwiki.web.XWikiAction.execute (XWikiAction.java:96) at org.apache.struts.action.RequestProcessor.processActionPerform( RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process( RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process( ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet( ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java :743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run( StubSecurityHelper.java:223) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet ( StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute( ServletStubImpl.java:283) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java :26) at weblogic.servlet.internal.FilterChainImpl.doFilter ( FilterChainImpl.java:42) at com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter( SetCharacterEncodingFilter.java:121) at weblogic.servlet.internal.FilterChainImpl.doFilter( FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run (WebAppServletContext.java:3243) at weblogic.security.acl.internal.AuthenticatedSubject.doAs( AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs( SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute (WebAppServletContext.java:2003) at weblogic.servlet.internal.WebAppServletContext.execute ( WebAppServletContext.java:1909) at weblogic.servlet.internal.ServletRequestImpl.run( ServletRequestImpl.java:1359) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run (ExecuteThread.java:181)
Wrapped Exception:
java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("XWIKI"."XWIKIDOC"."XWD_TITLE")
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException ( DatabaseError.java:343) at oracle.jdbc.driver.OraclePreparedStatement.executeBatch( OraclePreparedStatement.java:10698) at org.apache.commons.dbcp.DelegatingStatement.executeBatch( DelegatingStatement.java :294) at org.apache.commons.dbcp.DelegatingStatement.executeBatch( DelegatingStatement.java:294) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch( BatchingBatcher.java:58) at org.hibernate.jdbc.AbstractBatcher.executeBatch ( AbstractBatcher.java:195) at org.hibernate.engine.ActionQueue.executeActions( ActionQueue.java:230) at org.hibernate.engine.ActionQueue.executeActions( ActionQueue.java:140) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions( AbstractFlushingEventListener.java:296) at org.hibernate.event.def.DefaultFlushEventListener.onFlush( DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java :356) at org.hibernate.transaction.JDBCTransaction.commit( JDBCTransaction.java:106) at com.xpn.xwiki.store.XWikiHibernateBaseStore.endTransaction ( XWikiHibernateBaseStore.java:573) at com.xpn.xwiki.store.XWikiHibernateBaseStore.endTransaction( XWikiHibernateBaseStore.java:547) at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc( XWikiHibernateStore.java :309) at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc( XWikiCacheStore.java:100) at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc( XWikiCacheStore.java:94) at com.xpn.xwiki.XWiki.saveDocument (XWiki.java:891) at com.xpn.xwiki.XWiki.getPrefsClass(XWiki.java:2292) at com.xpn.xwiki.XWiki.initXWiki(XWiki.java:674) at com.xpn.xwiki.XWiki.<init>(XWiki.java:566) at com.xpn.xwiki.XWiki.getMainXWiki (XWiki.java:281) at com.xpn.xwiki.XWiki.getXWiki(XWiki.java:382) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:96) at org.apache.struts.action.RequestProcessor.processActionPerform ( RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process( RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process( ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet ( ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run ( StubSecurityHelper.java:223) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet( StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute( ServletStubImpl.java:283) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java :26) at weblogic.servlet.internal.FilterChainImpl.doFilter( FilterChainImpl.java:42) at com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter ( SetCharacterEncodingFilter.java:121) at weblogic.servlet.internal.FilterChainImpl.doFilter( FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run (WebAppServletContext.java :3243) at weblogic.security.acl.internal.AuthenticatedSubject.doAs( AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs( SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute( WebAppServletContext.java:2003) at weblogic.servlet.internal.WebAppServletContext.execute( WebAppServletContext.java:1909) at weblogic.servlet.internal.ServletRequestImpl.run( ServletRequestImpl.java:1359) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) 10:17:01,271 WARN [ACTIVE] ExecuteThread: '2' for queue: ' weblogic.kernel.Default(self-tuning)' RequestProcessor:processException:528 - Unhandled Exception thrown: class com.xpn.xwiki.XWikiException <Mar 13, 2007 10:17:01 AM EDT> <Error> <HTTP> <BEA-101017> <[ weblogic.servlet.internal.WebAppServletContext@e5376a - appName: '_appsdir_xwiki_dir', name: 'xwiki', context-path: '/xwiki'] Root cause of ServletException. com.xpn.xwiki.XWikiException: Error number 3 in 0: Could not initialize main XWiki context Wrapped Exception: Error number 3201 in 3: Exception while saving document XWiki.XWikiPreferences Wrapped Exception: Could not execute JDBC batch update at com.xpn.xwiki.XWiki.getMainXWiki(XWiki.java:290) at com.xpn.xwiki.XWiki.getXWiki(XWiki.java:382) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:96) at org.apache.struts.action.RequestProcessor.processActionPerform( RequestProcessor.java :431) at org.apache.struts.action.RequestProcessor.process( RequestProcessor.java:236) Truncated. see log file for complete stacktrace
-- You receive this message as a subscriber of the [email protected] list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws