Alfresco4 Aggiornamento Da 3.4 a 4.0

Database embedded e problemi di esportazione verso l'esterno

La mia situazione di partenza è un db mysql 5.1 embedded in alfresco 3.4.c. Nonostante facevo i dump al ripristino su un db uguale mi dava sempre errore. Mi sono accorto che il db veniva lanciato da dentro gli script di alfresco con queste opzioni che facevano la differenza.
Ecco le opzioni chiave:

lower-case-table-names=1 
old-passwords
default-table-type=InnoDB

Passando a un mysql 5.5 che è il db supportato alfresco 4 , non è necessario specificare il parametro default-table-type perchè dato che è già il default in mysql 5.5 , inserirlo porta ad errore.
Quindi questi due parametri vanno messi in my.cnf , io che voglio avviare mysql come servizio li specifico nella sezione [mysqld]

Architettura di base

Per fare questo mi sono appoggiato oltre alla guida ufficiale un po' scarna a questa ottima pagina http://kksays.wordpress.com/2011/12/16/upgrade-alfresco-from-3-4-to-4-0x/ . Ho fatto un mix di quello che ho imparato e questa pagina ne è il risultato.
La macchina sorgente aveva alfresco 3.4 con mysql 5.1 embedded in una ubuntu 10.04 , ho installato una centos e dato che veniva più semplice installare la versione 5.5

La guida dice di installare dal binario la versione 4.0.a perchè le versioni successive dalla b non permettono di effettuare l'upgrade. Quindi bisogna passare dalla 3.4 alla 4.0.a e poi all'ultima che al momento in cui scrivo è 4.0.d . Questa cosa forse era vera con la 4.0.b io sono riuscito a fare l'arggiornamento senza problemi dalla 3.4.c alla 4.0.d . Sul sito di alfresco comunity si trova solo l'ultima versione mentre su http://sourceforge.net/projects/alfresco/files/ sono disponibili tutte anche quelle più vecchie.
Inoltre con la 4.0.d non è necessario aggiungere la patch

Installazione alfresco 4.0.d

Le guide dicevano di installare tutto da capo verificare che funzionava e poi eseguire l'importazione dei dati effettuando delle copie di file e database.

  • installato mysql 5.5 e settato le utenze di root.
  • creato il db alfresco e assegnato i permessi a un utente di alfresco root ovviamente ha tutti i permessi su quel db ma se si usa un altro utente verificare i permessi.
  • installare alfresco dal binario alle domande rispondere in modo da mettere con database mysql , ecco i suggerimenti del post

La guida suggerisce per installare alfresco

driver:      org.gjt.mm.mysql.Driver
username: alfresco
password: segreta
name:      alfresco
url:           jdbc:mysql://localhost:3306/alfresco
  • non far fare l'avvio subito dopo l'installazione perchè prima va messo dentro tomcat/lib il mysql-connettor che prendo dalla versione precedente di alfresco 3.4 l'ultimo connettore disponibile sul sito è mysql-connector-java-5.1.13-bin.jar
  • gli indici al momento si possono commentare le righe di solr e mettere lucene
index.recovery.mode=FULL

### Solr indexing ##
index.subsystem.name=lucene
#index.subsystem.name=solr
#dir.keystore=${dir.root}/keystore
#solr.port.ssl=8444

Dopo il primo reindex va commentato il parametro che fa l'indicizzazione altrimenti ogni volta la ripete.

Da un sacco di eccezioni per solr ma a me non interessa molto dato che utilizzo lucene e non ho intenzione la momento di fare la conversione degli indici.

Errori di migrazioni risolti

Per un solo utente dava quest'errore

… 02160013 Wrapped Exception (with status template): 02160475 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/alfresco/repository/preference/preferences.get.js': 02160474 Failed to open stream onto channel: 
    accessor: ContentAccessor[ contentUrl=store://2012/3/15/17/27/924a7c25-3dbf-4158-bd8e-c5c66b4f60aa.bin, mimetype=text/plain, size=0, encoding=UTF-8, locale=it_IT]

Praticamente il database al momento del reindex aggiorna il db. Suppongo che al momento dell'aggiornamento abbia scritto un file che non esiste dato che il path che viene indicato non esiste. Ho controllato anche nei backup dell'alf_data e nemmeno li esiste.
L'errore bloccava tutto la dashboard dopo il login dell'utente, suppongo che era qualcosa che veniva caricata tra le impostazioni delle dashlet.
Per sbloccarlo ho creato il file e il path come lo voleva lui e mi ha segnalato un problema di incorretta formattazione di un file json, quindi dentro il file bin ho messo {} che cono inizio e fine del file json. E magia login corretto.

Cisf funzionante su root path sbagliato

Il cifs funzionava invece che sulla directory di root su quella di sites, rispetto alla versione 3.4 ho aggiunto alcune righe che prima non erano presenti al file tomcat/shared/classes/alfresco-global.properties

## CISF CONFIGURATION ##

cifs.enabled = true
cifs.serverName = alfrescocifs
cifs.domain=intranet
cifs.broadcast=255.255.255.255
cifs.bindto=0.0.0.0
cifs.hostannounce=true
cifs.tcpipSMB.port=445
cifs.netBIOSSMB.namePort=137
cifs.netBIOSSMB.datagramPort=138
cifs.netBIOSSMB.sessionPort=139
cifs.WINS.autoDetectEnabled=true
cifs.disableNIO=false

### File Protocol Root ###
protocols.rootPath=/${spaces.company_home.childname}
#protocols.rootPath=/${spaces.company_home.childname}/${spaces.sites.childname}

Come si vede dall'ultima property l'impostazione di default è quella più limitante che è abilitato solo la visualizzazione della sotto directory dei siti degli utenti.
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License