Nel SystemOut.log si riscontrava il seguente stato:
Failed to start database 'C:/IBM/WebSphere/wp_profile/PortalServer/derby/wpsdb' with class loader com.ibm.ws.bootstrap.ExtClassLoader@5bfa5bfa, see the next exception for details.DSRA0010E: Stato SQL = XJ040, Codice errore = 40.000
Failed to start database 'C:/IBM/WebSphere/wp_profile/PortalServer/derby/wpsdb' with class loader com.ibm.ws.bootstrap.ExtClassLoader@5bfa5bfa, see the next exception for details.
Recovery failed unexpected problem log record is Not first but transaction is not in transaction table : 40980828.
ERROR XSLAO: Recovery failed unexpected problem log record is Not first but transaction is not in transaction table : 40980828.
Per verificare lo stato del db è possibile collegarsi con le utility derby e verificare lo stato delle tabelle, abbiamo quindi copiato la cartella WPSDB in c:\temp e da un prompt dei comandi abbiamo eseguito
da WASHOME\derby\lib
java -cp "derby.jar;derbytools.jar" org.apache.derby.tools.ij
in risposta si avrà un prompt
ij>
in cui è possibile provare a collegarsi al db tramite il comando
ij> connect 'jdbc:derby:C:/temp/wpsdb';
una volta collegati è possibile verificare l'integrità delle tabelle con il comando
SELECT schemaname || '.' || tablename as TableName,SYSCS_UTIL.SYSCS_CHECK_TABLE(schemaname, tablename) AS OK FROM sys.sysschemas s, sys.systables t WHERE s.schemaid = t.schemaid and t.tabletype = 'T' ;
una volta verificata l'integrità delle tabelle , abbiamo pensato che il problema potessero essere i tranlog quindi abbiamo creato un nuovo db vuoto con il comando
ij> connect 'jdbc:derby:MyDbTest;create=true';Abbiamo quindi copiato la log/ dal nuovo db sostituendo al log/ del wpsdb ,ripristinata la cartella WPSDB al suo posto originario ed il Portale è partito regolarmente.
L'ispirazione per la risoluzione di questo problema è stata trovata in questo blogpost di Andrea Grassi che ringrazio !
Nessun commento:
Posta un commento