Erro java.sql.SQLException: ORA-04063 ao subir o portal
Uma das etapas da migração é a cópia dos bancos JCR e CUSTOMIZATION do portal de origem 6.0.x para o portal de destino 6.1.x.
Estas duas bases irão substituir as atuais bases do portal 6.1.x. O processo de migração irá atualizar as atuais bases de origem 6.0.x para a nova versão 6.1.x.
Após a cópia das bases para o novo portal, me deparei com o seguinte erro ao subir o portal 6.1:
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:850)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3384)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteQuery(WSJdbcPreparedStatement.java:1028)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:678)
at com.ibm.icm.da.portable.common.sql.PPreparedStatement.executeQuery(PPreparedStatement.java:83)
at com.ibm.icm.da.portable.data.GetLinks.getLinkInfoForNodeByPath(GetLinks.java:1261)
at com.ibm.icm.da.portable.data.GetLinks.getLinksByPath(GetLinks.java:324)
at com.ibm.icm.da.portable.data.GetLinks.getLinks1(GetLinks.java:239)
at com.ibm.icm.da.portable.data.GetLinks.getLinks(GetLinks.java:181)
at com.ibm.icm.da.portable.data.GetLinks.getLinks(GetLinks.java:110)
at com.ibm.icm.da.portable.data.DataManager.getLinks(DataManager.java:746)
at com.ibm.icm.ci.data.impl.PathService._executeGetLinks(PathService.java:1360)
at com.ibm.icm.ci.data.impl.PathService._getLinks(PathService.java:1296)
atcom.ibm.icm.ci.data.impl.PathService._getItemsOnPathList(PathService.java:1028)
at com.ibm.icm.ci.data.impl.PathService.retrieveContent(PathService.java:839)
at com.ibm.icm.ci.data.impl.PathService.retrieveContent(PathService.java:788)
at com.ibm.icm.jcr.NodeImpl.getNode(NodeImpl.java:1077)
at com.ibm.icm.jcr.WorkspaceImpl.getNodeByAbsPath(WorkspaceImpl.java:2362)
at com.ibm.workplace.wcm.services.repository.RepositoryServiceImpl.getNodeByAbsPath(RepositoryServiceImpl.java:500)
at com.ibm.workplace.wcm.services.library.LibraryServiceImpl.initLibraryCategories(LibraryServiceImpl.java:2280)
at com.ibm.workplace.wcm.services.library.LibraryServiceImpl.init(LibraryServiceImpl.java:239)
at com.ibm.workplace.wcm.services.ServiceManager.getLibraryService(ServiceManager.java:255)
at com.ibm.workplace.wcm.services.ServiceManager.initialiseServices(ServiceManager.java:111)
at com.presence.connect.Connect.init(Connect.java:524)
O problema
No SystemOut.log já é possível verificar erro “0ORA-04063: view “JCR_PORTAL60.ICMSTJCRL0001″ has errors” Veja que o problema está ocorrendo no shema JCR_PORTL60. Este shema é uma cópia do shema JCR do portal 6.0. Esta view em questão não possui privilégios para compilação. Em banco de dados Oracle, quando se faz a cópia de um shema para outro shema, é necessário que a cópia de origem tenha o mesmo nome do shema de destino.
Exemplo: No shema de origem, Portal 6.0.x, o shema JCR chama-se JCR, porém a cópia desse shema foi feito com o nome JCR_PORTL60. Ao iniciar o portal, o erro é gerado devido a falta de permissão na compilação da view.
Solução
Copiar novamente o shema JCR do portal 6.0.x para o portal 6.1.x como JCR e não como JCR_PORTAL60.
Executar novamente os comandos “./ConfigEngine.sh connect-database-jcr-migration” e “./ConfigEngine.sh create-wcm-persistence-tables“.