Child pages
  • Instalační dokumentace katalogu Carmen ( Clavius )
Skip to end of metadata
Go to start of metadata

Požadavky

Linux

Pokud je Carmen instalována na OS typu Linux (Ubuntu Server, Debian ...) je třeba neomezovat velikost virtuální paměti:

Kontrola ulimit
ulimit -v # očekávaný výsledek: unlimited
ulimit -m # očekávaný výsledek: unlimited

Databáze

Carmen podporuje databáze MySQL, Microsoft SQL a Oracle. Minimální požadované verze shrnuje následující tabulka.

 

Databáze

Požadované minimální verze

DriverDialect
MySQL5.1com.mysql.jdbc.Driverorg.hibernate.dialect.MySQL5InnoDBDialect
MSSQL2005com.microsoft.sqlserver.jdbc.SQLServerDriverorg.hibernate.dialect.SQLServerDialect
Oracle10goracle.jdbc.driver.OracleDriverorg.hibernate.dialect.Oracle10gDialect

Nastavení MySQL

  • Carmen si toto nastavení v rámci spojení nastavuje sama (nemělo by být třeba již nastavovat přímo v databázi)
  • zkontrolovat nastavení databáze pro max_allowed_packet
    • show variables like 'max_allowed_packet%'
    • musí být minimálně 16MB
    • v my.ini nastavit:
      •  

        [mysqld]
        ...
        max_allowed_packet = 16M
        


Nastavení MSSQL

  • Nastavení indexů
    • linear[tcislo] a alinear[tcislo] - použít neclustrovaný index
    • kpujcky[scislo,co] - použít složený index
    • car_popularity_evaluations[isbn] a car_popularity_evaluations[taykey] - přidat neclustrovaný index pokud neexistuje

Nová instalace

Předpoklady

Instalována aktuální verze Clavius SQL z Disket a provedena oprava struktury dat

Podmínky definičních tabulek DEFWEB, DEFKVYPU a DEFDRUHD z výpůjčního protokolu přepsány do SQL syntaxe ( pokud jsou zde použité speciální funkce jak např. RokVydAV a pod. konzultujte s LANius s.r.o. ). Povoleno je např:

<, <=, =, !=, <>, >=, >; like, not like (levý, pravý i oboustraný) ; in, not in

DekodVek(rcislo) < | <= | == | > | >= | != VEK(nejake cislo) ---  (je zde důležité dodržet velikost písmen)

 

Server s Windows 2003/2008 a práva lokálního administrátora pro instalaci software

Instalace Java JDK

Pro běh Carmen je u nových instalací vyžadována verze Java 8 - Sun JDK 1.8.0_66 DISKETY/CARMEN

  • podle OS na serveru je verze pro 32bit/64bit
  • vyzkoušet v konzoli Windows (Start>Spustit>CMD) příkaz "java -version", musí psát 1.8.xyz
  • ověřit, že se skutečně jedná o Sun Java (nikoliv Open JVM nebo IBM JVM)

POZOR: Je důležité neinstalovat update Javy, měla by být nainstalovaná verze, na které byla Carmen vyvíjena, nebo alespoň otestována

Instalace Apache Tomcat 8.x na Windows

POZOR: Instalujte Tomcat pouze z disket, jedná se o otestované verze DISKETY/CARMEN

  • Instalace Tomcat 8.x na WINDOWS - Apache Tomcat 8.0.28 pro WINDOWS instalace balíčku Apache Tomcat 8.0.28
    • získání instalátoru ze stránky http://tomcat.apache.org/ nebo z disket.
    • spuštění instalace
    • doporučená složka pro Tomcat na Windows: C:\tomcat
    • vytvoření dočasného adresáře: C:\tomcat\temp
    • Komunikační port Tomcat je: 8080 Pokud na serveru kde instalujete není jiný WWW server (IIS) doporučujeme nastavit port 80 !!!
  • nastavení windows služby Apache Tomcat přes Spravovat tento počítač a pak sekce Služby najít Apache Tomcat a dát vlastnosti
    • Na záložce Obecné nastavit Typ spouštění na Automaticky
    • Na záložce Zotavení nastavit u všech tří selhání volbu Restartovat službu jako prevenci problémů
  • propuštění portu, na kterém je Tomcat nainstalován směrem do internetu (8080 pro případ napojení přes Apache nebo IIS, 80 pro standalone bez Apache)
  • ověření na localhostu (v prohlížeči zadejte do adresy: http://localhost:8080/) - musí se objevit kocour a indiánské péro smile

Společná závěrečná konfigurace Tomcat 8

  • Na Windows2008 nejprve nastavte práva zápisu svému uživateli na celou složku c:\tomcat přes místní nabídku nad složkou tomcat volba vlastnosti>Zabezpečení
  • Otevřete soubor TOMCAT_HOME/conf/server.xml v programu Wordpad - je třeba přidat text URIEncoding="UTF-8" do těchto částí:
    • pro HTTP connector Connector URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
    • pro AJP connector Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443"
    • Příklad:

      Příklad nastavení kódování
      <Connector port="8080" protocol="HTTP/1.1"
             connectionTimeout="20000"
             redirectPort="8443"
             URIEncoding="UTF-8" />
  • nastavení přístupů a hesel (soubor TOMCAT_HOME/conf/tomcat-users.xml) toto je dobré pro vzdálené zjišťování stavu Tomcatu

    <tomcat-users>
      <role rolename="admin"/>
      <role rolename="manager"/>
      <user username="effcarmen" password="<Prefix knihovny>" roles="admin,manager"/>
      <user username="lancarmen" password="<Prefix knihovny>" roles="admin,manager"/>
    </tomcat-users>

Nastavení adresáře pro servisní operace

  • Vytvoření adresáře v "tomcat/webapps/download"
  • přidat do "tomcat/conf/context.xml 
<Context path="/download" docBase="webapps/download"/>

restart Tomcat přes služby ve Spravovat tohoto počítače nebo pomocí programu TOMCAT_HOME\bin\tomcatw.exe.

Nastavení Apache Tomcat 6.x na Windows (pro starší instalace)

  • přidělení paměti a "Java Virtual Machine"  - spustit C:\tomcat\bin\tomcat6w, na záložce Java (POZOR, pokud Tomcat nenabíhá, zkuste dát paměti méně)
  • Heap Size - do položky Maximum memory pool - doporučeno: "1024", minimum: "512"
    • Max Perm Size (ukousne tuto část z Heap Size) - do položky Java options přidat na konec - doporučeno: "-XX:MaxPermSize=192m", minimum: "-XX:MaxPermSize=128m"
    • Pomocí tlačítka ... vybrat v sekci "Java Virtual Machine" cestu k správnému (JDK)  jvm.dll - viz obr.

Nastavení logování Tomcatu

FreeSans?, sans-serif; font-size: 13px; line-height: 17.328125px;">Nastavení se provádí v domovském adresáři Carmen v souboru FreeSans?, sans-serif; font-size: 13px; line-height: 17.328125px;">log4j.properties

Defaultně je logování na standardní výstup vypnuté.

  • lze jej zapnout - log4j.rootLogger=WARN, stdout

Logování probíhá pouze do domovského adresáře Carmen do složky log.

V logu Tomcatu pak lze nalézt pouze informace související se startem a ukončení Tomcatu (například že port 8080 je již použitý apod).

log4j.rootLogger=INFO

########################################
# CARMEN LOGGING CONFIG
########################################
log4j.logger.cz.effectiva.carmen=INFO
log4j.logger.cz.effectiva.carmen.web.CarmenWebApplicationContext=ERROR
log4j.logger.cz.effectiva.carmen.service.IndicesServiceImpl=DEBUG
#log4j.logger.cz.effectiva.carmen.web.MessageBeanAll=DEBUG
log4j.logger.cz.effectiva.carmen.utils.WorkHelper=DEBUG

 

Instalace vlastní Carmen

zastavit přes služby Tomcat pokud běží

vytvořit složku C:\Carmen pokud je tato složka na jiném disku než C: je potřeba založit systémovou proměnnou SET CARMEN_HOME=D:\Carmen

  • Windows - Vlastnosti systému>záložka upřesnit>Proměnné prostředí>Systémová proměnné>Nová
  • Linux - do /etc/init.d/tomcat přidat řádku: export CARMEN_HOME="/data/carmen"

Carmen.war - stáhnout z DISKETY\CARMEN a uložit do TOMCAT_HOME\webapps\ .

pustit Tomcat - on rozbalí Carmen.war do \CARMEN_HOME\NAZEV_KNIHOVNY (nejčastěji C:\Carmen\Carmen) a pak tam:

Na Windows2008 nejprve nastavte práva zápisu svému uživateli na celou složku c:\carmen přes místní nabídku nad složkou carmen volba Vlastnosti>Zabezpečení

Upravit soubor CARMEN_HOME\user.properties přes menu otevřít v programu Wordpad (pomocí Alt+ENTER lze Wordpad asociovat k otevírání)

  • Společné nastavení
    • db.logging=true
    • db.username= ***jméno uživatele pro přístup do SQL ( zadáte-li před uživatele *** dojde k jeho zakódování ) Pozor NT autentikace MS SQL ze nefunguje !
    • db.password= ***heslo pro přístup do SQL ( zadáte-li před heslo *** dojde k jeho zakódování a přidání odkódovací funkce ENC() )
    • jessica.url=http\://carmen.skat.cz\:8080/jessica2/service/jessica - v této řádce je po instalaci standardně "jessica2test" tj. pokusná jessica.
    • hibernate.updatedb=update
  • MySQL
    • db.driver=com.mysql.jdbc.Driver
    • db.type=MYSQL
    • db.url=jdbc:mysql://[server]:[port]/[database] - doplnit správný server port a databázi (pokud je SQL na tom samém serveru dejte místo názvu serveru localhost katalog bude rychlejší)
    • hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

      db.connectionproperties

      Nastavení db.connectionproperties musí končit středníkem ";" (pokud je vyplněno), protože se za něj automaticky přidává jdbcCompliantTruncation=false. Předpis vypadá takto:
      ${db.connectionproperties}jdbcCompliantTruncation=false
  • MSSQL
    • db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
    • db.type=MSSQL
    • db.url=jdbc:sqlserver://[server]:[port];databaseName\=[database];SendStringParametersAsUnicode\=False; - opsat z sqlconnectu, velmi důležitý parametr "SendStringParametersAsUnicode"
    • příklad s instanci : db.url=jdbc\:sqlserver\://127.0.0.1;instanceName\=CARMEN;databaseName\=carmen_test;SendStringParametersAsUnicode\=False;
    • hibernate.dialect=org.hibernate.dialect.SQLServerDialect (pozor pokud je NT autentikace, je potřeba vytvořit na MS SQL uživatele v Securities>Logins nastavit SQL přihlačování místo NT autentikace nastavit default databázi Clavius a dát mu na ni práva Clavrole a dbOwner !!!)
  • MSSQL EXPRESS navíc
    • Musíme přidat do složky sdílené CLAVIUS soubor EXID.IND který indikuje tvorbu ID položek (obsah souboru je nevýznamný)
    • Pak se musí provést Oprava struktury dat aby naplnil jednoznačné ID položky
    • Pozor pokud je to MSSQL2008 Express musí se náhodně zvolené číslo portu převzít z management studia už to není 1433 !!!

restartovat Tomcat a počkat cca 60 s. pak zadat localhost:8080/Carmen (pozor na velké první písmeno) (nebo NAZEV_KNIHOVNY)

přihlásit se do administrační části http://localhost:8080/Carmen/admin a spustit v naplánovaných úlohách reindexaci (běží cca desítky minut)
Pokud neběží, může být problém například v DEFKVYPU (chybějící řádka s 999 pro VYPUJCKY nebo PREZENCNE)
Pokud se zasekne může být problém v moc velkém počtu BATCH_SIZE_SOLR_INDEX dejte místo 500 jen 300 a opakujte indexaci

Nastavení Carmen

Po instalaci je nutné nastavit několik základních voleb v administrační sekci Carmen (http://localhost:8080/Carmen/admin):

Systém -> Obecné:

  1. Webová adresa Carmen - Celá webová adresa směřující na úvodní stránku Carmen (např.: http://www.knihovna.cz:8080/Carmen)

Systém -> Komunikační kanály

  1. Sekce email - Zde je třeba projít veškerá nastavení sekce "E-mail" a nastavit správně SMTP server pro odesílání pošty a také změnit emailové adresy ze prvotního nastavení "report_carmen@effectiva.cz" na nějaké adresy knihovny. 

Obálky knih z pole X00 se do Carmen dostávají přes SQL databázi takto:

Nakopírujte jednorázově do carmen\book_covers všechen obsah složky CLAVIUS\NAWEB ručně a do Clavius.ini přidejte řádku FILE2CAR?=NEW.
Pokud to nejde nakopírovat nebo je obálek málo, zapnete volbu FILE2CAR?=ON. Úvodní naplnění a přenos všech obálek ze složky NAWEB, provedete spuštěním opravy struktury v CLAVIU.
Nové naplnění všech obálek : pohled([delete from file2car]) a následně výše zmíněnou opravou struktury v Claviu.

Zamezení přístupu vyhledávačům

Vyhledávače používají specializované roboty, které procházejí web a ukládají si informace o stránkách. Procházení Carmen je ovšem nežádoucí (snižují výkon serverů, znehodnocují statistiky). Carmen implementuje několik úrovní ochran proti nežádoucím robotům. První vrstvou je soubor robots.txt, který je ve většině případů nutné ručně nastavit.

Carmen běží na portu 80 v kořenu domény (http://katalog.vkta.cz)

V tomto případě není třeba soubor robots.txt instalovat, bude použit standardní obsažený v Carmen.

Carmen běží na portu 8080 (nebo jiném) v kořenu domény (http://katalog.vkta.cz:8080)

V tomto případě není třeba soubor robots.txt instalovat, bude použit standardní obsažený v Carmen.

Carmen běží na libovolním portu a na cestě mimo kořen domény (http://katalog.vkta.cz:8080/Carmen)

V tomto případě je potřeba ručně nainstalovat soubor robots.txt tak, aby byl dosažitelný na adrese http://katalog.vkta.cz:8080/robots.txt. Na Apache Tomcat je postup následující:

  1. Vytvořte soubor robots.txt v cestě: <Instalační cesta Tomcat>\webapps\ROOT\robots.txt, např.: C:\tomcat\webapps\ROOT\robots.txt.
  2. Do souboru vepište:

    Nastavení robots.txt
    User-agent: *
    Disallow: /Carmen

Instalace pluginu Lemmatizatoru

Pro windows: do C:\Windows\System32 je třeba nahrát soubor javalemma.dll pozor a to i u 64 bit. dll knihovny

Pro linux: do /usr/lib/ je třeba nahrát soubor libjavalemma.so

Dále je třeba do adresáře s Carmen nahrát do správného umístění (plugins\lemma) soubor slovníku - C:\carmen\plugins\lemma\czech.lex

Nastavení proxy serveru

pokud je Carmen nainstalovaná za proxy serverem, musí context name být stejný na obou serverech

LDAP autentizace

V domovském adresáři vytvořit soubor ldap.properties

pokud se používá SSL s certifikáty, je nutné certifikáty naimportovat do keystore (slouží nástroj keytool)

C:\Program Files\Java\jre6\bin>keytool.exe -import -alias amu -file G:\certificates\AMU\amu-ca.pem -keystore C:\carmen\keystore
C:\Program Files\Java\jre6\bin>keytool.exe -import -alias amu -file G:\certificates\AMU\idm2.r.amu.cz.pem -keystore C:\carmen\keystore

Keystore s použitím KeyStore Explorer

  1. Create a new KeyStore
  2. Typ: JKS
  3. Tools -> Import Trusted Certificate
  4. Naimportovat celou cestu certifikátů - od rootu
  5. Uložit jako např. keystore.jks
  6. Nastavit správně cestu do ldap.properties

 

ParametrPovinnýPopis
ccisloNe (pokud je zadán ckod nebo usernamecolumn)Atribut z LDAP, který se má použít získání čísla čtenáře
ckodNe (pokud je zadáno ccislo nebo usernamecolumn)Atribut z LDAP, který se má použít získání čárového kódu
usernamecolumnNe (pokud je zadáno ccislo nebo ckod)Sloupec tabulky ctenari, ve kterém je uloženo LDAP přihlašovací jméno čtenáře
ldapUrlAnoUrl adresa LDAP serveru, ke které se budeme připojovat
keystoreNeCesta ke keystore v případě, že používáme certifikáty
logExceptionAnotrue/false - slouží pro ladění, po správném nastavení se může nastavit na false (nelogují se výjimky o neúspěšném přihlášení)
protocolNezpůsob zabezpečení (ssl)
baseAnove které bázi se má provést vyhledávání
usernameAnouživatelské jméno pro uživatele, který má možnost získat ccislo přihlašovaného uživatele
passwordAnoheslo pro uživatele, který má možnost získat ccislo přihlašovaného uživatele
principalAnopřihlašovací query pro získání ccisla
filterAnofiltr pro získání ccisla
checkByClaviusWhenLdapFailedAnopokud je nastaveno true, pak při neúspěšné autentizace v LDAP se pokusí Carmen uživatele autentizovat pomocí uživatelského jména a hesla v Claviu

Příklad:

base=ou=all ccislo=idReader filter=(&(cn=${username})(idReader=*)) keystore=C:\\carmen\\keystore ldapUrl=ldap://ldap.server.effectiva.cz:636/o=eff logException=true password=password principal=cn=${username},ou=service,o=effectiva protocol=ssl username=user_effectiva
checkByClaviusWhenLdapFailed=false

Speciální požadavky

Zkontrolovat, zda je v systému instalovaný font Verdana, pokud font není instalovaný, je třeba jej doinstalovat

Nasazení pod IIS

( ) Konfigurace Tomcat - je třeba nastvit UTF-8 pro AJP connector (TOMCAT_HOME/conf/server.xml: URIEncoding="UTF-8") + restart Tomcatu

Propojení IIS a Tomcat přes ISAPI plugin

  • POZOR IIS si občas nesmyslně cachuje téměř vše a často pomůže až RESTART OS !!! Proto je při nefunkční konfiguraci dobré ověřit/vyzkoušet, že se projeví i jiná změna.
  • základní dokument, na základě kterého vznikla tento zjednodušený český návod, je zde: http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html
  • postup instalace a konfigurace propojení:
    • stáhnout a nainstalovat isapi_redirect.msi plugin pro IIS (do defaultních adresářů) - je přílohou tohoto dokumentu, případě google:isapi_redirect.msi
    • není třeba provádět konfiguraci registrů tak, jak je v dokumentu popisováno - ale je třeba nakonfigurovat službu IIS, viz. dále
    • konfigurace IIS - pomocí "Internet Information Services (IIS) Manager" aplikace ve Windows
      1. je třeba zkontrolovat: pro uzel "Default Web Pages" ve vlastnostech na záložece "Home Directory" musí být oprávnění "Execute permission = Script Only"
      2. je třeba zkontrolovat: pro uzel "Default Web Pages" musí existovat virtuální adresář "jakarta" s mapováním na "...\ISAPI Redirect\bin"
      3. je třeba přidat: nad uzlem "Web Service Extension" pravým tlačítkem vyvolat volbu "Add new web service extension"
        • přidat s názvem "Tomcat"
        • povoleným souborem s plnou cestou k "isapi_redirect.dll" (Browse to: ... C:\Program Files\Apache Software Foundation\ISAPI plugin.... \bin\isapi_redirect.dll)
        • zaškrknout volbu "Set extension status to Allowed" !
      4. dále je třeba povolit délku segmentu v URI pro IIS na rozumnou (větší než default) - spustit regedit, přidat DWORD hodnotu podle těchto parametrů:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters: key=UrlSegmentMaxLength, value= hexa:1000 nebo decimálně:4096
                    
    • konfiguraci vlastního přesměrování na Carmen je pak možno provést v adresáři C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\conf, soubory
      1. doplnit obsah souboru - uriworkermap.properties:

        Konfigurační soubor
        # uriworkermap.properties - IIS
        #
        # This file provides sample mappings for example wlb
        # worker defined in workermap.properties.minimal
        # The general syntax for this file is:
        # [URL]=[Worker name]
        
        /admin/*=wlb
        /manager/*=wlb
        /jsp-examples/*=wlb
        /servlets-examples/*=wlb
        
        # Optionally filter out all .jpeg files inside that context
        # For no mapping the url has to start with exclamation (!)
        
        !/servlets-examples/*.jpeg=wlb
        
        #
        # Mount jkstatus to /jkmanager
        # For production servers you will need to
        # secure the access to the /jkmanager url
        #
        /jkmanager=jkstatus
        
        # = default worker
        /Carmen=carmen2worker
        /Carmen*=carmen2worker
                    
        nahradit obsah souboru - workers.properties.minimal:
        # workers.properties.minimal -
        #
        # This file provides minimal jk configuration properties needed to
        # connect to Tomcat.
        #
        # The workers that jk should create and work with
        #
        
        worker.list=carmen2worker,wlb,jkstatus
        
        worker.carmen2worker.type=ajp13
        worker.carmen2worker.host=localhost
        worker.carmen2worker.port=8009
        
        #
        # Defining a worker named ajp13w and of type ajp13
        # Note that the name and the type do not have to match.
        #
        worker.ajp13w.type=ajp13
        worker.ajp13w.host=localhost
        worker.ajp13w.port=8009
        
        #
        # Defining a load balancer
        # 
        
        worker.wlb.type=lb
        worker.wlb.balance_workers=ajp13w
        
        #
        # Define status worker
        #
        
        worker.jkstatus.type=status
        
    • na závěr restartovat IIS a zkusit přístup přes port 80 - http://localhost/
    • pokud byla změněna hodnota UrlSegmentMaxLength, je třeba zrestartovat celý operační systém!

Nasazení pod Apache Web Server

( ) Konfigurace Tomcat - je třeba nastvit UTF-8 pro AJP connector (TOMCAT_HOME/conf/server.xml: URIEncoding="UTF-8")

( ) Instalace Apache - volitelně při proxy způsobu Apache-Tomcat přes protokol AJP1.3

  • ( ) instalace mod_jk (#aptitude install libapache2-mod-jk)
  • ( ) konfigurace mod_jk
  • #vim /etc/apache2/conf.d/tomcat:
    JkWorkersFile /etc/apache2/workers.properties
    JkLogFile /var/log/apache2/mod_jk.log
    JkLogLevel error
          
  • #vim /etc/apache2/workers.properties
    ps=/
    worker.list=carmen2worker
    worker.carmen2worker.port=8009
    worker.carmen2worker.host=localhost
    worker.carmen2worker.type=ajp13
    worker.carmen2worker.lbfactor=1
          

( ) Konfigurace Apache (napojení na AJP; chybová stránka, která se zobrazí pokud Tomcat nejede (údržba webu))

  • ( ) nastavení napojení (#vim /etc/apache2/sites.enabled/000-default):

    Nastavení Apache
    <VirtualHost *:80>
        DocumentRoot /var/www/
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
    
    #INFO: default politika
        <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    
    #INFO: /server-status pouze pro localhost
       <Location /server-status>
           SetHandler server-status
           Order Deny,Allow
           Deny from all
           Allow from 127.0.0.1 10.168.0.219
    #       ExtendedStatus  se nastavuje mimo virtualhost
      </Location>
    
    #INFO: logy
            ErrorLog /var/log/httpd/error.log
            LogLevel warn
            CustomLog /var/log/httpd/access.log combined
    
    #INFO: chybova stranka - probiha odstavka systemu (soubor je umisten ve /var/www/error/503.html)
            ErrorDocument 503 /error/503.html
    
    #INFO: tunely na tomcat
            JkMount /* carmen2worker
            JkUnMount /munin carmen2worker
            JkUnMount /munin/* carmen2worker
            JkUnMount /phpmyadmin carmen2worker
            JkUnMount /phpmyadmin/* carmen2worker
            JkUnMount /error/* carmen2worker
    </VirtualHost>
  • ( ) httpd.conf - 503 nastaveno na "/error/503.html"
  • ( ) /var/www/error/503.html

Instalace Tomcat na LINUX

( ) Instalace Tomcat 6 na LINUX - Apache Tomcat 7.X pro LINUX

  • ( ) instalace Apache Tomcat 7 - z balíčku, z binárek
  • ( ) instalace spouštěcího skriptu (/etc/init.d/tomcat)
  • ( ) přidělení paměti ve skripu JAVA_OPTS (VM Options): (doporučeno: "-Xmx1024m -XX:MaxPermSize=196m", minimum: "-Xmx512m -XX:MaxPermSize=128m")
  • ( ) instalace ovladače JDBC (mysql-connector.jar, sqlserver.jar, ...) do adresáře TOMCAT_HOME/lib
  • ( ) nastavení app.armor, pokud je na operačním systému používáno
  • ( ) vytvoření dočasného adresáře /var/lib/tomcat7/temp (nastavit práva chmod 777)
  • ( ) otevření portu, na kterém bude Tomcat nainstalován (8080 pro případ napojení přes Apache nebo IIS, 80 pro standalone bez Apache)
  • ( ) ověření naslouchání na správném portu (příkazem netstat -apn | grep :8080)
  • ( ) ověření na localhostu (wget http://localhost:8080)

Kontrola fungování nové Carmen:

( ) Zobrazené obálky knih v pásu novinek.

( ) Funguje vyhledávání dokumentů a zobrazování jejich detailů (pokud nic nehledá, vytvořte indexy v Administraci sekce Naplánované úlohy).

( ) Logování ve správné úrovni do adresáře Carmen.

( ) Vyzkoušení vybraných položek a vytvoření výstupu např. do PDF - musí být instalovaný font Verdana

Nejčastější chyby proč Katalog Carmen nenaběhne nebo tuhne

nedostatečná velikost permgenu pro tomcat - pokud máte více war na jednom tomcatu dejte 256MB
paměť můžete monitorovat pomocí tabulky v Mozilla Farefoxu na adrese např. http://localhost:8080/Carmen/memory.jsp

Nevhodné SQL podmínky v DEFKVYPU nebo DEFWEB

přenasazení přes webové rozhraní - nerestartování tomcatu

zastavení Tomcatu a nakopírování bez smazání stávající struktury

nakopírování za běhu do webapps

přepsání stávajících souborů rozbalením

nenaběhne Tomcat (Windows)

[error] Failed creating java C:\Program Files\Java\jre6\bin\client\jvm.dll [2010-05-25 09:29:17] [1269 prunsrv.c] [error] ServiceStart returned 1

Další důvody pak najdete zde Servisní dokumentace#V%C3%BDpadkydatab%C3%A1zov%C3%A9hospojen%C3%AD

Solr nevyhledává: Map failed

Na Suse Linuxu se někdy stává, že při vyhledávání Carmen padá na výjimku:

Caused by: java.lang.OutOfMemoryError: Map failed

Je třeba spustit příkaz (jako root): 

ulimit -v unlimited

Update - Nasazení nové verze Carmen

Ruční aktualizace

Provedeme update systému Clavius SQL na aktuální verzi a provedeme Opravu struktury dat v menu Pomůcky.

Stáhneme nový Carmen.war z DISKETY/CARMEN, ( pozor při ukládání souboru je nutné, aby soubor měl jméno původního souboru war! nejčastěji Carmen.war )

Zastavíme Tomcat přes služby ve Spravovat tohoto počítače nebo pomocí programu TOMCAT_HOME\bin\tomcatw.exe.

Ve složce TOMCAT_HOME\webapps/ smažeme složku Carmen se vším co obsahuje (nebo i jiný - podle názvu katalogu). Pozor ostatní složky nemazat !

Ve složce TOMCAT_HOME\work/Catalina/localhost smažeme adresář Carmen (nebo i jiný - podle názvu katalogu). Pozor ostatní složky nemazat !

Ve složce TOMCAT_HOME\conf/Catalina/localhost smažeme soubor Carmen.xml (nebo i jiný - podle názvu katalogu). Pozor ostatní soubory nemazat !

Do složky TOMCAT_HOME\webapps/ nahrajeme nový Carmen.war (starý nejdříve zazálohuj mimo tuto složku, nikdy jej jen nepřejmenuj !!!)

Spustit Tomcat přes služby ve Spravovat tohoto počítače nebo pomocí programu TOMCAT_HOME\bin\tomcatw.exe.

Jakmile Tomcat správně nastartuje cca (1 minuta) a rozbalí Carmen do složky tomcat\webapps\Carmen a do CARMEN_HOME máme vyhráno

přechod z 2.0.6 na 2.0.7 navíc je potřeba překopírovat původní carmen\libraries\carmen\user.properties do carmen\user.properties
a pak restartovat Tomcat přes služby ve Spravovat tohoto počítače nebo pomocí programu TOMCAT_HOME\bin\tomcatw.exe - pak teprve Carmen naběhne
rozkopírovat logo z c:\carmen\libraries\Carmen\local do c:\carmen\libraries\main\local (nahrát jej i do všech dalších složek = REKS knihoven pokud nemají vlastní
nakopírovat statistiku hlavní knihovny z c:\carmen\libraries\Carmen\statistics\ do c:\carmen\libraries\main\statistics\
pokud je lemmatizátor tak nakopírovat z c:\carmen\libraries\Carmen\plugins\ do c:\carmen\plugins\ (složka lemma a vše co je v ní)
pokud je schema knihovny tak nakopírovat z c:\carmen\libraries\Carmen\library_schema\ do c:\carmen\libraries\main\library_schema
pak spustit v Admin > Naplánované úlohy > Reindexace protože původní Index nelze použít v nové Carmen. (trvá několik desítek min.)

Automatická aktualizace - Tomcat auto deploy

  • Stáhnout a rozbalit TomcatAutoDeploy - v svn Tritia ve složce /trunk/support/TomcatAutoDeploy
  • Nakopírovat na požadované místo (C:\tomcat\)
  • Nastavit proměnné prostředí (Windows - proměnné prostředí, Linux - soubor, který se kopíruje do /etc/init.d/tomcatAutoDeploy)
    • CARMEN_WAR_NAME - jméno WAR souboru, pod kterém bude nasazeno do Tomcatu, bez koncovky .war (např. "Carmen")
    • CARMEN_GLOBAL_ID - prefix knihovny
    • CARMEN_TOMCAT_PATH - cesta k instalačnímu adresáři Tomcatu (např. "C:\tomcat")
    • TOMCAT_PATH - cesta k instalačnímu adresáři Tomcatu (např. "C:\tomcat") - pokud není nastaven CARMEN_TOMCAT_PATH, tato varianta byla zachována kvůli zpětné kompatibilitě
    • CARMEN_WARS_DIRECTORY - adresář, pro zálohu jednotlivých WAR souborů (např. "C:\tomcat\WARs") 
    • CARMEN_TOMCAT_NAME - nepovinný údaj, název služby Tomcatu (výchozí nastavení pro Windows - Tomcat7, pro Linux - tomcat)
  • Logování probíhá do adresáře Tomcatu "tomcat/logs/tomcatautodeploy.log"
  • Instalace služby
    • Windows
      • musí být instalované 32-bitové JRE
      • upravit soubor service-install.bat podle aktuální adresářové struktury (většinou potřeba jen u 32 bit OS)
      • spustit service-install.bat z příkazové řádky, příkazovou řádku je nutné spustit s administrátorským oprávněním
      • po instalaci je třeba poprvé službu ručně spustit (následně se již bude spouštět automaticky)
    • Linux
      • nakopírovat do /var/TomcatAutoDeploy
      • zkopírovat soubor tomcatAutoDeploy do /etc/init.d/
      • přidat /etc/cron.d/tomcatAutoDeploy

         

        #
        # cron-jobs for TomcatAutoDeploy
        #
         
        MAILTO=root
         
        @reboot         root /etc/init.d/tomcatAutoDeploy start

Nastavení loga knihovny

Carmen zobrazuje v hlavičce stránky a na dalších místech (exprorty vybraných položek apod.) logo knihovny. Carmen hledá logo následujícím způsobem:

Pokusí se najít soubor ve složce knihovny {domovská složka Carmen}/libraries/{název_knihovny}/logo.png. Např.: C:\carmen\libraries\tabor\logo.png.

Pokud nebylo nalezeno logo ve složce knihovny, vezme se ze složky knivoven: {domovská složka Carmen}/libraries/logo.png.

Přepsáním loga ve složce knihoven lze změnit logo pro všechny knihovny obsluhované instancí Carmen. Přidáním loga do složky dané knihovny lze změnit logo pro tuto konkrétní knihovnu.

Logo musí být vždy ve formátu PNG a pojmenované logo.png.

NCIP

NCIP webová služba je dostupná na adrese /ncip. Např.: http://www.vkta.cz:8080/Carmen/ncip.

Užitečná SQL

Odstranění tabulek Carmen na MSSQL

IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_translations]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_translations]

IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_statistics_score]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_statistics_score]

IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_statistics_login]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_statistics_login]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_statistics_access]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_statistics_access]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_speech]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_speech]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_sort_field]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_sort_field]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_sort_options]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_sort_options]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_show_item]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_show_item]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_settings_user]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_settings_user]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_settings]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_settings]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_search_statistics]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_search_statistics]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_search_field]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_search_field]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_search_combine_form_row]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_search_combine_form_row]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_reindexs]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_reindexs]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_reader_informations]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_reader_informations]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_popularity_evaluations]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_popularity_evaluations]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_logstack]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_logstack]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_log]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_log]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_local_settings]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_local_settings]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_library_schema]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_library_schema]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_ip_address]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_ip_address]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_indices]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_indices]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_expression_not_found]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_expression_not_found]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_def_links]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_def_links]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_cloud]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_cloud]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_ticket_detail]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_ticket_detail]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[car_admin_user]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[car_admin_user]
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[ujorm_pk_support]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE ujorm_pk_support
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[DATABASECHANGELOG]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE DATABASECHANGELOG
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[DATABASECHANGELOGLOCK]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE DATABASECHANGELOGLOCK

 

 

  • No labels