Obsah
Damis je Javovou komponentou a pro svůj běh vyžaduje:
Java 1.5 a vyšší
Apache Tomcat nebo kompatibilní server
Databázi Derby
Popis vlastní instalace Tomcat serveru není součástí této dokumentace.
Komponenta je distribuována jako jeden .zip soubor. Po jeho stažení ho prosím rozbalte do pracovního adresáře.
Obsah distribuce:
Tabulka 2.1. Struktura distribuce
Adresář | Popis |
---|---|
doc | Dokumentace |
prerequisites | Komponenty a vzorová nastavení, sql skripty nezbytné pro instalaci serveru |
source-war | Nenakonfigurovaný .war soubor |
utils | Pomocné programy a skripty |
Před zahájením instalace a přípravy komponenty je nutné nahrát několik dalších knihoven do instalace Tomcat
Tabulka 2.2. Doplňkové knihovny
Knihovna ( třída ) | Cílová cesta | Popis |
---|---|---|
commons-fileupload-1.0.jar | ${tomcat}/common/lib | Zpracování multipart postu |
derby.jar | ${tomcat}/common/lib | Databáze Apache Derby ( IBM Cloudscape) |
commons-net-1.4.0.jar | ${tomcat}/common/lib | FTP klient |
jakarta-oro-2.0.8.jar | ${tomcat}/common/lib | zpracování textu (vyžaduje ji knihovna commons-net) |
jsch-0.1.23.jar | ${tomcat}/common/lib | SFTP klient |
Dalším krokem je vytvoření databáze. Je možno ji vytvořit pomocí
administračních nástrojů, které jsou součástí Derby nebo využít
předpřipravený skript. Databázové schéme a skripty jsou v adresáři
prerequisites/sql
.
V případě využití skriptů je nutno v souboru
environment.bat
nastavit adresář, kde má být
databáze vytvořena.
Dostupné skripty:
create.bat - vytvoří novou databázi
Adresář db nesmí před první vytvářením existovat. Opakované spuštění skriptu vymaže databázi.
update.bat
- update databázového schématu
- používá se při přechodu na vyšší verzi Damisu
Následujícím krokem je definice použité databáze v souboru
server.xml
. Soubor je umístěn v
${tomcat}/conf/server.xml
Do tagu <GlobalNamingResources> přidat
<Resource auth="Container" description="Damis databaze" name="jdbc/DamisDB" type="javax.sql.DataSource" driverClassName="org.apache.derby.jdbc.EmbeddedDriver" maxIdle="2" maxWait="20000" url="jdbc:derby:${db}" maxActive="10"/>
místo ${db} zadat cestu k adresáři s databází
Damis využívá standardního mechanizmu správy a autorizace uživatelů, který je součástí Tomcat. Komponenta rozeznává dva typy uživatelských rolí:
správce komponenty, administrátor
běžný uživatel
Pokud se pro nalogování do Damisu používá UserDatabaseRealm je nutné v souboru ${tomcat}/conf/tomcat-users.xml vytvořit příslušné uživatelské role a uživatele.
Tabulka 2.3. Uživatelské role
Typ uživatelské role | Název role |
---|---|
Administrator | DamisAdmin |
Běžný uživatel | DamisUser |
Vzor souboru tomcat-users.xml pro dva uívatele user a admin
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="DamisAdmin"/> <role rolename="DamisUser"/> <user username="user" password="damisuser" roles="DamisUser"/> <user username="admin" password="damis" roles="DamisAdmin"/> </tomcat-users>
Hlavní konfigurační soubor, který popisuje činnosti poskytované
komponentou se jmenuje domains.xml
. Tento soubor je
obvykle umístěn poblíž nebo jako součást adresářové struktury, kde se
nacházejí pracovní soubory. Vzhledem k tomu, že činnosti vykonávané
Damisem jsou často náročné na diskové operace je nezbytné zvolit vhodné
úložiště, pevné disky.
Součástí konfigurace je také návrh rozložení jednotlivých domén na disku apod. Referenční popis souboru domains.xml je v samostatné kapitole.
Instalace Damis do serveru Tomcat probíhá pomocí zabaleného
souboru s webovou aplikací. Ten je možno nahrát přes webové rozhraní
nebo přímo do adresáře Tomcat. Před tímto krokem je však nutno soubor
vytvořit ze zdrojového a doplnit ho o soubor
context.xml
a nastevení logování. Do zdrojového
souboru .war musí být přibaleny soubory META-INF/context.xml a
WEB-INF/classes/logging.properties
Soubor context.xml
popisuje umístění souboru
domains.xml
, kořenový adresář pro data.
Příklad souboru context.xml
:
<?xml version="1.0" encoding="UTF-8"?> <Context privileged="true"> <!-- Název použité databáze --> <ResourceLink global="jdbc/DamisDB" name="jdbc/DamisDB" type="javax.sql.DataSource"/> <!-- Cesta k souboru domains.xml --> <Parameter name="domain.xml" value="e:/config/domains.xml" override="false"/> </Context>
Druhým souborem, který je nutno připravit je soubor
logging.properties
. Soubor obsahuje popis a způsob
logování činnosti komponenty. Jeho obsah je popsán níže.
V okamžiku, kdy jsou oba soubory připraveny je možno vytvořit
výsledný DamisServer.war
. K tomu je určen soubor
generate-war.bat. Soubor vyžaduje 2 parametry:
Cesta k souboru context.xml
Cesta k souboru logging.properties
Zabalená aplikace se nahraje jako .war soubor do adresáře
${tomcat}/webapps
nebo pomocí webového
administračního rozhraní.
Chybové hlášky se logují do souboru na disku.
V aplikaci existují interně čtyři logy.
LightComp.DistrScan.DistrScanManager
LightComp.DistrScan.Disp.DispMessageProcessor
LightComp.DistrScan.InputFilter
LightComp.DistrScan.Notify.NotifyService
Jejich výstup lze zapisovat do dvou odlišných souborů nebo do jednoho souboru.
Do tohoto logu se zapisují události spojené s úložištěm.
vložení nové dávky
uzamknutí dávky
zpracování dávky v Tahiti
vypršení zámku dávky
odmítnutí dávky z Tahiti
chyby při inicializaci aplikace
Do tohoto logu se zapisují události vzniklé při komunikaci s Dispem nebo při vytváření dávky na disku
komunikace s Dispem
vytváření dávek na disku ( dávky ve formátu "průvodka.in")
Do tohoto logu se zapisují události vzniklé při vstupu dávky do Damisu
vložení spisu do damisu
přesunutí spisu do chybového adresáře
Do tohoto logu se zapisují události vzniklé při zasílání souborů s notifikacema externím systémům
odeslání notifikace
K logování je použito standardní API java.util.logging.*; Konkrétně je použita implementace org.apache.juli.*;
logování se nastavuje v souboru ${damis}/WEB-INF/classes/logging.properties
Obsah souboru logging.properties
handlers = 1damis.org.apache.juli.FileHandler 1damis.org.apache.juli.FileHandler.level = FINE 1damis.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1damis.org.apache.juli.FileHandler.prefix = damis LightComp.DistrScan.DistrScanManager.handlers = 1damis.org.apache.juli.FileHandler LightComp.DistrScan.Disp.DispMessageProcessor.handlers = 1damis.org.apache.juli.FileHandler LightComp.DistrScan.InputFilter.handlers = 1damis.org.apache.juli.FileHandler LightComp.DistrScan.Notify.NotifyService.handlers = 1damis.org.apache.juli.FileHandler
Obsah souboru logging.properties
handlers = 1damis.org.apache.juli.FileHandler, 2disp.org.apache.juli.FileHandler, 3input.org.apache.juli.FileHandler, 4notify.org.apache.juli.FileHandler 1damis.org.apache.juli.FileHandler.level = FINE 1damis.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1damis.org.apache.juli.FileHandler.prefix = damis 2disp.org.apache.juli.FileHandler.level = FINE 2disp.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 2disp.org.apache.juli.FileHandler.prefix = disp 3input.org.apache.juli.FileHandler.level = FINE 3input.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3input.org.apache.juli.FileHandler.prefix = input 4notify.org.apache.juli.FileHandler.level = FINE 4notify.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 4notify.org.apache.juli.FileHandler.prefix = notify LightComp.DistrScan.DistrScanManager.handlers = 1damis.org.apache.juli.FileHandler LightComp.DistrScan.Disp.DispMessageProcessor.handlers = 2disp.org.apache.juli.FileHandler LightComp.DistrScan.InputFilter.handlers = 3input.org.apache.juli.FileHandler LightComp.DistrScan.Notify.NotifyService.handlers = 4notify.org.apache.juli.FileHandler