This is an old revision of the document!
Vývojové oddělení připraví k instalaci aplikace následující:
Dle typu SQL databáze je nutné spustit dodané skripty, aby se vytvořila struktura databázových objektů vyžadovaných aplikací exchanger.war.
V následujícím textu se budu odkazovat na domovský adresář aplikačního serveru Tomcat pod proměnnou $CATALINA_HOME. Kroky k instalaci modulů jsou následující:
Po úspěšném spuštění aplikačního serveru budou jednotlivé WAR moduly rozbaleny v adresáři $CATALINA_HOME/webapps v adresářích odpovídajících jménům WAR modulů.
V dodávce z vývoje je defaultně v modulu exchanger.war nastavena podpora databáze HyperSQL. Jedná se o lehkou databázi, která není vhodná pro produkční nasazení. Proto je nutné v modulu exchanger.war provést dodatečné úpravy. Nyní jsou podporovány dvě plnohodnotné databáze - MS SQL a PostreSQL. Podporu produkční databáze lze získat těmito úpravami:
Dále se s modulem exchanger.war pracuje dle popisu v kapitole Instalace WAR modulů. Popis konfigurace přístupu k databázím je popsán v kapitole Konfigurace/Infrastrukturní.
Konfigurace aplikace je uložena v souboru web.xml, který lze nalézt v cestě $CATALINA_HOME/webapps/exchanger/WEB-INF. Při úpravách konfigurace v tomto souboru doporučuji soubor zazálohovat. V případě aktualizace aplikace bude tento soubor nahrazen souborem z aktualizovaného modulu, a dojde tak ke ztrátě konfigurace. Po aktualizaci je tedy nutné zazálohovaný soubor nahrát zpět do adresáře $CATALINA_HOME/webapps/exchanger/WEB-INF, aby byla konfigurace aktuální pro dané prostředí. Po změně konfigurace je nutné restartovat aplikační server.
Konfigurace je realizována standardní cestou konfigurace webové aplikace, tedy množinou jmen a hodnot uložených v elementech context-param. Parametry lze rozdělit na skupinu závislých na infrastruktuře a skupinu ovlivňujících chování samotné aplikace.
Nastavení ADUCID:
Nastavení přístupu k SQL databázi:
Nastavení přístupu k SMTP serveru:
Další nutné infrastrukturní parametry:
Globální parametry jsou následující:
Dále jsou uvedeny konfigurační položky automatických úloh, které jsou spouštěny na základě Cron definice. Jedná se rozšířenou Cron definici s podporou vteřin, více viz https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html. Konfigurační parametry jsou následující:
Aplikační kód zapisuje své chování do logu. Tento log je určený především pro počáteční ladění a nedoporučuji jej mít zapnutý v produkčním prostředí. Při dodání instalačních komponent pro instalaci do produkčního prostředí by měla být komponenta exchanger.war dodána již s vypnutým logováním.
Po úpravách konfigurace logování je nutné restartovat aplikační server.
Konfigurace obecného logování aplikace je uložena v souboru $CATALINA_HOME/webapps/exchanger/WEB-INF/classes/log4j.properties. Obsah v produkční podobě může vypadat následovně:
log4j.rootLogger=WARN, CONSOLE log4j.logger.com.aducid.database=WARN log4j.logger.com.aducid.exchanger=WARN log4j.logger.com.aducid.web.controller=WARN log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d [%-5p] Thread[%-21t] %m%n
V situaci zapnutého podrobného je obsah následující:
log4j.rootLogger=WARN, CONSOLE log4j.logger.com.aducid.database=DEBUG log4j.logger.com.aducid.exchanger=DEBUG log4j.logger.com.aducid.web.controller=DEBUG log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d [%-5p] Thread[%-21t] %m%n
Hodnoty s prefixem log4j.logger.com.aducid byly tedy změněny z hodnoty WARN na DEBUG. Při tomto nastavení se veškeré zprávy zapisují do souboru $CATALINA_HOME/logs/catalina.out.
Kromě obecného logování je možné navíc zapnout SMTP logování pro detailnější informace o komunikaci se SMTP serverem. Toto nastavení je uloženo v konfiguraci $CATALINA_HOME/webapps/exchanger/dispatcher-servlet.xml. Zde je zobrazena část konfigurace, kde lze měnit úroveň logování:
... <property name="javaMailProperties"> <props> <prop key="mail.transport.protocol">smtp</prop> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> <prop key="mail.debug">false</prop> </props> </property> ...
Změnou hodnoty mail.debug na true lze docílit požadované změny. Informace se zapisují do logu nastaveném v obecné konfiguraci, defaultně tedy do souboru $CATALINA_HOME/logs/catalina.out.
Součástí aplikace jsou automatizované úlohy, které provádí rozmanité úlohy. Podrobnější popis těchto úloh je zahrnut v kapitolách níže.
Tato úloha se stará o opakované odesílání emailů, pokud z nějakého technického důvodu nebyly odeslány. Každý neodeslaný email je označený jako *_NOT_SENT
(prefix se liší dle typu emailu) a tato úloha se v pravidelných intervalech určených konfigurační hodnotou scheduler.resendEmailCron
pokouší email znovu odeslat. Počet pokusů o doručení je určený konfigurační hodnotou global.maxResendAttempts
. Při hodnotě Cron výrazu 0 0 * * * *
a počtu pokusů o doručení nastavených na pět se úloha pokusí pětkrát odeslat email, a to každou celou hodinu. Pokud se ani poté email nepodaří doručit, je označen za nedoručitelný, tj. *_NOT_DELIVERABLE
(prefix se liší dle typu emailu). Tato úloha se snaží odeslat následující neúspěšné emaily:
Úloha v pravidelných intervalech kontroluje datum vypršení platnosti zásilky. Pokud platnost zásilky vyprší, je zásilka označená za EXPIRED
. V případě, že zásilka nebyla dosud stažena, je označena za EXPIRED_NOT_DOWNLOADED
. Stavem EXPIRED
jsou také označena metadata souboru a samotný soubor je fyzicky smazán v úložišti.