Kapitola 2. Instalace

Obsah

1. Požadavky
1.1. Prostředí Javy
2. Distribuce a její struktura
3. Instalace knihoven
4. Vytvoření databáze
5. Definice databáze v server.xml
6. Vytvoření uživatelů
7. Konfigurace
8. Příprava DamisServer.war
9. Konfigurace logování
9.1. LightComp.DistrScan.DistrScanManager
9.2. LightComp.DistrScan.Disp.DispMessageProcessor
9.3. LightComp.DistrScan.InputFilter
9.4. LightComp.DistrScan.Notify.NotifyService
9.5. Logování do jednoho souboru
9.6. Logování do čtyř souborů

1. Požadavky

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.

1.1. Prostředí Javy

Javu je vhodné spouštět v serverovém režimu ( -server ) a s dostatkem paměti vyhrazené pro heap ( -Xmx384m ). Je nutno počítat s tím, že vyhrazená paměť bude využívána nejen pro vlastní server, ale i pro databázi. V případě zpracování emailů mohou paměťové požadavky vzrůst.

2. Distribuce a její struktura

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
docDokumentace
prerequisitesKomponenty a vzorová nastavení, sql skripty nezbytné pro instalaci serveru
source-warNenakonfigurovaný .war soubor
utilsPomocné programy a skripty

3. Instalace knihoven

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á cestaPopis

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


4. Vytvoření databáze

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

    Poznámka

    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

5. Definice databáze v server.xml

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í

6. Vytvoření uživatelů

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é roleNá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>

7. Konfigurace

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.

8. Příprava DamisServer.war

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í.

9. Konfigurace logování

Chybové hlášky se logují do souboru na disku.

V aplikaci existují interně čtyři logy.

  1. LightComp.DistrScan.DistrScanManager

  2. LightComp.DistrScan.Disp.DispMessageProcessor

  3. LightComp.DistrScan.InputFilter

  4. LightComp.DistrScan.Notify.NotifyService

Jejich výstup lze zapisovat do dvou odlišných souborů nebo do jednoho souboru.

9.1. LightComp.DistrScan.DistrScanManager

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

9.2. LightComp.DistrScan.Disp.DispMessageProcessor

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")

9.3. LightComp.DistrScan.InputFilter

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

9.4. LightComp.DistrScan.Notify.NotifyService

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

9.5. Logování do jednoho souboru

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

9.6. Logování do čtyř souborů

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