Blogg

Alfresco och ECM

Visa underhållssida om Alfresco är nere

02GMT060000000002

Kategorier : Tips och Tricks

Då och då behöver man starta om Alfresco. När man gör det skulle det vara bra om användaren kunde bli informerad om varför systemet inte är tillgängligt.
För detta har jag skapat en underhållssida som visas när du använder Nginx som en front-end för Alfresco. Den upptäcker när dokumentarkivet (Alfresco repository tomcat instance) inte är tillgängligt (du får ett 50x-svar) och visar istället denna sida:

Progress-baren är animerad och uppdaterar för att visa hur mycket av den planerade underhållstiden som har gått. Den hittar också Ajax 50x-errors på /share/proxy/alfresco och skriver om dem som 401 (Ej auktoriserad). Share upptäcker detta och försöker ladda om hela sidan, och därför visa underhållssidan. Detta är för att upptäcka att Alfresco Tomcat är nere, till exempel vid navigation i mappar i dokument-biblioteket.

När du behöver stänga ner Alfresco så, istället för att stänga ner direkt (med sudo service alfresco stop), använder du ett speciellt stop-skript
(finns under /opt/alfresco/scripts):
ams.sh 20 "Detta är det anpassade meddelandet"
Numret är tiden i minuter som du förväntar att underhållet ska ta. När tiden är slut kommer sidan försöka ladda den ursprungliga Alfresco-sidan. Om den fortfarande inte är tillgänglig kommer underhållssidan visa ytterligare information: Eftersom den förväntade underhållstiden är slut, så var något svårare att fixa än vad vi trodde, men vi jobbar hårt för att få igång systemet igen! Det kan vara så att vi redan är klara. Prova att klicka Ladda Alfresco Nu-knappen. (Fast på engelska, svensk översättning finns ej just nu)

Detta är tillgängligt genom mitt Alfresco Ubuntu install script. För er som redan har installerat Alfresco med installations-skriptet, kolla här för att se vad ni behöver göra i denna:källkods-commit. Kortfattat, det ni behöver göra är att uppdatera nginx.conf för att upptäcka 50x-errors och ladda ner ams.sh shell skript och maintenance.html-filen och placera den i opt/alfresco/www (eller vilken annan plats som helst som matchar din konfiguration för nginx.conf).