近日,使用某產品安裝部署,在首次運行時,後台拋出以下異常:
Caused by: java.sql.SQLException: Schema 'ROOT' does not exist
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 72 more
Caused by: ERROR 42Y07: Schema 'ROOT' does not exist
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.QueryTreeNode.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.QueryTreeNode.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
at org.apache.derby.impl.sql.compile.CursorNode.bindState
單從異常來看是由於名為“ROOT”的Schema不存在造成的異常,由於資料庫使用的是derby資料庫而且手頭上木有相應的用戶端工具,因此,無法驗證此問題。還是求助Google。
關鍵字:Caused by: ERROR 42Y07: Schema 'ROOT' does not exist,結果中有一位xd介紹“Continuum入門”的博文(作者:jiangshachina,地址:http://www.blogjava.net/jiangshachina/archive/2006/09/09/68680.aspx),此文中提到作者也遇到此問題,而且給出明確解釋:
2.3 啟動Continuum
假設此時已經安裝了Continuum,但還沒有運行它。要運行Continuum,可以雙擊Continuum_Home\bin\win32\run.bat檔案。對於第一次運行,會報一些錯誤:
……
WARN RDBMS - Error initialising derby schema : Schema 'SA' does not exist
ERROR 42Y07: Schema 'SA' does not exist
……
這種情況是正常的,因為Continuum後台使用的是Apache Derby資料庫,在第一次運行之前,Continuum所需要的一些表和資料並不存在。但Continuum會初始化這些資料,當第2次啟動Continuum時,這些錯誤就不會出現了。
按照這個思路,我再次啟動產品,發現後台這些異常資訊,不斷拋出,看來服務是正在運行,等後台不再拋異常以後,重啟。
後台正常了!!!