čtvrtek 9. června 2011

ODI 11g Standalone Agent jako služba MS Windows

Součástí ODI 10g je Wrapper, který umožňuje vytvořit ODI Agenta jako službu MS Windows. Od verze ODI 11g se již Wrapper nedodává (licencovaný SW třetí strany - Silver Egg Technology). Místo toho je možné ODI Agenta integrovat s Oracle Process Manager and Notification Server (OPMN), který je součástí Aplikačního serveru. OPMN běží jako služba MS Windows a startuje různé Oracle FMW komponenty včetně ODI 11g Agenta.

Pokud nemáte k dispozici Aplikační server, pak můžete službu pro ODI 11g Agenta vytvořit s pomocí Open Source Wrapperu - Yet Another Java Service Wrapper, viz. návod níže.

Budeme používat následující software:
  • Oracle Data Integrator 11g C:\Oracle\Oracle_ODI_11g\

  • Java Development Kit jrockit-jdk1.6.0_17 (funguje i pro jiné distribuce Javy, ale tato je přímo součástí ODI) C:\Oracle\Oracle_ODI_11g\jrockitjdk1.6.0_17\

  • Yet Another Java Service Wrapper – yajsw-10.6 (starší verze jsou nekompatibilní s jrockit-jdk) C:\ODI_Agent_wrapper\yajswbeta10.6\

Dále předpokládáme fungující ODI Standalone Agent.
  1. Stáhneme a rozbalíme Yet Another Java Service Wrapper (yajsw) z adresy http://sourceforge.net/projects/yajsw/, ve verzi 10.6 nebo novější. Yajsw rozbalíme např. do složky C:\ODI_Agent_wrapper\yajswbeta10.6\ (není nutné instalovat)

  2. Normálním způsobem spustíme ODI Standalone Agent, kterého budeme chtít dále spouštět jako službu Windows. V našem případě to je dávkový soubor C:\Oracle\Oracle_ODI_11g\oracledi\agent\bin\agent_DEVAGENTEXCEL.bat

  3. Ve Správci úloh Windows nalezneme PID procesu spuštěného Agenta.
    - Zobrazení PID: Zobrazit > Vybrat sloupce > PID (Identifikator procesu)
    - Najdeme PID procesu s názvem „java.exe“

  4. Vygenerujeme konfigurační soubor wrapperu. Spustíme dávku: C:\ODI_Agent_wrapper\yajswbeta10.6\bat\genConfig.bat PID (kde PID je identifikační číslo procesu získané v kroku 3). Tato dávka vygeneruje automaticky konfigurační soubor C:\ODI_Agent_wrapper\yajswbeta10.6\conf\wrapper.conf který budeme muset ještě dále upravit.

  5. Vypneme standardním způsobem Standalone Agent. V našem případě to je spuštění dávky s parametrem: C:\Oracle\Oracle_ODI_11g\oracledi\agent\bin\agentstop.bat -NAME=DEVAGENTEXCEL

  6. Wrapperu nastavíme cestu k Java Development Kit, který chceme ke spouštění použít: V dávkovém souboru C:\ODI_Agent_wrapper\yajswbeta10.6\bat\setenv.bat nastavíme řádek s proměnnou java_exe takto: set java_exe="C:\Oracle\Oracle_ODI_11g\jrockitjdk1.6.0_17\bin\java.exe"

  7. Editujeme konfigurační soubor služby, který jsme vygenerovali v kroku 4: V souboru C:\ODI_Agent_wrapper\yajswbeta10.6\conf\wrapper.conf nastavíme následující proměnné:
    a/ wrapper.java.command=C:\\Oracle\\Oracle_ODI_11g\\jrockitjdk1.6.0_17\\bin\\java.exe (pozor, musí tam být dvojitá lomítka, jako escape sekvence)

    b/ wrapper.ntservice.name=OracleODIAgent nebo jiný název služby

    c/ wrapper.ntservice.displayname=Oracle ODI Agent nebo jiný název, který se bude zobrazovat v manažeru služeb windows, může být s mezerami, nepoužívat uvozovky

    d/ wrapper.ntservice.description=Agent DEVAGENTEXCEL nebo jiný popis, který se bude zobrazovat v manažeru služeb windows

    e/ V poslední části souboru je sekce „further properties generated by genConfig.“ Tady je nutné vyhledat všechna přednastavená hesla (název proměnné obsahuje PASS) a ve všech těchto heslech, pokud se tam vyskytuje znak čárky, přepsat ho escape sekvencí čárky, tedy \, (zpětné lomítko a čárka).

  8. Můžeme vyzkoušet naše nastavení pomocí dávkového souboru C:\ODI_Agent_wrapper\yajswbeta10.6\bat\genConfig.bat
    a/Spustíme dávkový soubor (bez parametrů)

    b/ Počkáme než se zapne Agent a otestujeme ho, např. v ODI

    c/ Vypneme Agent standardním způsobem (viz. krok 5), čímž se vypne i dávkový soubor

  9. Službu nainstalujeme pomocí C:\ODI_Agent_wrapper\yajswbeta10.6\bat\installService.bat (opět bez parametrů)

  10. Konfigurační soubor C:\ODI_Agent_wrapper\yajswbeta10.6\conf\wrapper.conf musíme zachovat pro další potřebu (modifikaci nebo odinstalování služby). Je nutné ho zálohovat před tím, než vygenerujeme nový pro jinou službu, kterou budeme chtít pomocí wrapperu v budoucnu nastavovat.

  11. Služba je nainstalovaná a můžeme restartovat – při spuštění systému se rozběhne Agent
    a/ Wrapper ukládá informace o svém běhu a o běhu Agenta do wrapper.log.0, který je umístěn v adresáři, ve kterém je dávkový soubor agenta. V našem případě C:\Oracle\Oracle_ODI_11g\oracledi\agent\bin

    b/ Při jakékoliv změně je nutné službu odinstalovat, tzn. spustit dávku C:\ODI_Agent_wrapper\yajswbeta10.6\bat\uninstallService.bat Potom můžeme opravit konfigurační soubor a službu znovu nainstalovat.

    c/ Službu je možné najít v manažeru Služby pod jménem zadaným v 7.3. Manažer spustíme pomocí Start > Spustit > services.msc. Odtud můžeme službu spouštět, zastavovat nebo do určité míry i editovat.


Tomáš Ibehej / Vojtěch Šíp (Datacons)