pondělí 7. března 2011

Oracle BI EE 11g - nemáte dostatek paměti? Zrušte Managed Server!

Oracle BI EE 11g má o něco větší nároky na velikost RAM než Oracle BI EE 10g. Důvodem je, že BI 11g používá WebLogic Server (dříve OC4J) se dvěma J2EE kontejnery (Admin a Managed Server) a ty obsahují více BI komponent (em, bisearch, action, mapviewer, essapp, ...).

Nedostatek RAM se hlavně projevuje při zkoušení BI 11g na notebooku s 32bit OS, kdy máte k dispozici maximálně 3,2GB paměti - a to je málo.

Řešením je buď přejít na 64bit OS s 4GB a více RAM a nebo nepoužívat dva J2EE kontejnery (Admin a Managed Server), ale pouze jeden z nich. Tím jedním je Admin Server, do kterého se přesunou všechny aplikace z Managed Serveru. Tímto si uvolníte paměť, kterou samotný kontejner spotřebovává.

Díky přesunu aplikací z Managed Serveru na Admin Server mi notebook již neswapuje, dostávám se maximálně na 2,8GB RAM a to při spuštění celého BI EE 11g (ve Firefoxu jsem připojen k WL Console, EM, Analytics-Scorecards+Maps a BIP), DB EE 11g, Outlooku, Powerpointu a Wordu.

Pozor: Vhodné pouze pro zkoušení a hraní si s BI 11g na notebooku. Pro produkční prostředí je „best practice“ používat vždy Admin a Managed Server.


Postup přesunu aplikací z Managed do Admin serveru
1. Připojte se do WebLogic konzole http://localhost:7001/console, menu Environment > Servers > bi_server1


2. Na záložce Deployments vyberte aplikaci pro přesun z Managed Serveru do Admin Serveru (nepřesouvejte aplikace wsm-pm, wsil-wls a DMS Application – již tam jsou)


3. Přejděte na záložku Targets, klikněte na tlačítko Lock & Edit, vyberte komponentu pro přesun a klikněte na tlačítko Change Targets


4. Změňte lokaci z bi_cluster na Admin Server a klikněte na Yes


5. Po zobrazení zprávy o úspěšném nastavení pokračujte s přesunem ostatních aplikací běžících v bi_server1 (nepřesouvejte aplikace wsm-pm, wsil-wls a DMS Application – již tam jsou)


6. Po dokončení přesunu všech aplikací z bi_server1 do Admin Serveru je potřeba rozšířit bip_datasource také na Admin Server - Menu Services > JDBC > Data Sources > bip_datasource > Targets > přidejte Admin Server > Save


7. Před konečnou aktivací všech změn je nutné ještě přesunout aplikace: bijdbc(11.1.1), bijdbc(11.1.1.3.0), oracle.ess(11.1.0.0.0.0), oracle.applcore.model(0.1,11.1.1.0.0), bip-shared-libraries(11.1.1) - Menu Deployments > vybraná aplikace > Targets > Admin Server > Save


8. Aktivujte změny (pokud aktivace neprojde, pak zůstala ještě nějaká aplikace běžet na bi_server1 (její/jejich jméno je zobrazeno) > jděte opět do menu Deployments a přesuňte ji/je na Admin Server


9. Zastavte Managed a Admin Server a poté spusťte jen AdminServer ...\OracleBI11gR1\user_projects\domains\bifoundation_domain\startWebLogic.cmd

Od teď Oracle BI 11g poběží na URL http://localhost:7001/analytics

10. Změňte číslo portu pro integraci BI Publisheru s BI Presentation Services > po zalogování se do Oracle BI zvolte link Správa > Provádět správu aplikace BI Publisher


Klikněte na link integrace s Oracle BI Presentation Services a zde změňte port na 7001


11. Změňte číslo portu pro Action Framework - soubor ...\OracleBI11gR1\user_projects\domains\bifoundation_domain\config\fmwconfig\biinstances\coreapplication\ActionFrameworkConfig.xml

12. Pokud používáte OBIEE 11g SampleApp a konfigurovali jste kapitolu "3 Deploying SampleApp Action Framework Content", pak změňte čísla portů v těchto souborech:
...\OracleBI11gR1\user_projects\domains\bifoundation_domain\servers\AdminServer\tmp\_WL_user\ActionSamples\a4o6ii\war\Builtin.wsil
...\OracleBI11gR1\user_projects\domains\bifoundation_domain\servers\AdminServer\tmp\_WL_user\ActionSamples\a4o6ii\war\inspection.wsil
...\OracleBI11gR1\user_projects\domains\bifoundation_domain\servers\AdminServer\tmp\_WL_user\ActionSamples\a4o6ii\war\secure.wsil

a restartujte aplikaci ActionSamples pomocí WLS konzole > Menu Deployments

13. Pokud používáte OBIEE 11g SampleApp a konfigurovali jste kapitolu "6 Deploying SampleApp Mapviewer Content" pak změňte porty v mapViewerConfig.xml (http://localhost:7001/mapviewer > Admin > Configuration > změna portů > Save & Restart)

14. Pro běh na notebooku je dobré změnit defaultní Java VM z JRockit na Sun JDK v módu klient, více viz. zde

15. Nakonec zastavte Admin Server a poté jej opět spusťte ...\OracleBI11gR1\user_projects\domains\bifoundation_domain\startWebLogic.cmd




Erik Eckhardt

čtvrtek 3. března 2011

OBIEE11g - Jak spouštět WebLogic Managed Server pomocí služeb v MS Windows

Návod navazuje na předchozí článek, který popisuje jak spouštět WebLogic AdminServer.

Po instalaci Oracle BI EE 11g se aplikační server WebLogic spouští pomocí dodaných skriptů (StartWebLogic.cmd a StartManagedWebLogic.cmd). Nevýhodou tohoto způsobu je, že zůstanou na ploše otevřená okna, do kterých WebLogic Server zapisuje svoji činnost. Pokud uživatel okna uzavře nebo se odhlásí od systému, WebLogic Server se okamžitě vypne.

Pokud chcete, pak WebLogic Server můžete spouštět na pozadí pomocí služeb MS Windows. V dokumentaci k WebLogic Serveru je popsáno, jak takovou službu vytvořit. Pro potřeby OBIEE je však tento postup nedostačující, protože takto vytvořená služba bude spouštět pouze WebLogic Server Administration Console, nikoliv však Oracle Fusion Middleware Enterprise Manager, pomocí kterého lze pak administrovat OBIEE.

Postup implementace

1. Vytvoření automatického zadávání hesla

Aby se spouštěcí skript neptal uživatele na jméno a heslo, je potřeba tyto údaje vložit do souboru boot.properties. Viz návod zde.

2. Spuštění standardním způsobem – ověření předchozí změny
Pro ověření správného nastavení předchozího kroku je nutné restartovat ManagedServer (zatím stále běžným způsobem pomocí skriptu z příkazové řádky).

3. Nastavení proměnných prostředí #1
Upozornění: Všechny další kroky je potřeba provádět z příkazové řádky cmd.exe. Zároveň všechny kroky musejí být provedeny v jedné session příkazové řádky, tzn. okno s příkazovou řádkou nesmí být mezi jednotlivými kroky uzavřeno. V takovém případě by se smazal obsah proměnných. Prvním příkazem je spuštění souboru:
…\OracleBI11\user_projects\domains\bifoundation_domain\bin\setDomainEnv.cmd

4. Nastavení proměnných prostředí #2
Další proměnné prostředí je potřeba nastavit ručně v příkazové řádce, nebo pomocí vytvořeného dávkového souboru spuštěného z příkazové řádky:
set DOMAIN_NAME=bifoundation_domain
set USERDOMAIN_HOME=…\OracleBI11\user_projects\domains\bifoundation_domain
set SERVER_NAME=bi_server1
set JAVA_VM=-jrockit
set MAX_CONNECT_RETRIES=200
set HOST=192.168.10.20
set PORT=7001
set ADMIN_URL=http://192.168.10.20:7001

Význam těchto parametrů je dobře popsán v dokumentaci. Zde uvedené hodnoty parametrů jsou pouze informativní. Je potřeba je před spuštěním upravit na základě hodnot, které jsou zadány při instalaci. Pokud byla instalace provedena defaultním způsobem, je potřeba upravit pouze IP adresu v proměnné HOST a cestu k doméně v proměnné USERDOMAIN_HOME.

5. Vytvoření služby
Posledním krokem je spuštění skriptu …\OracleBI11\wlserver_10.3\server\bin\installSvc.cmd, čímž se vytvoří služba v registrech Windows. Název služby začíná "beasvc", pak následuje jméno domény a jméno serveru.


Nyní je služba vytvořena a okno s příkazovou řádkou může být zavřeno.

Ověření správné instalace
První spuštění nově vytvořené služby je dobré provést z příkazové řádky takto:
…\OracleBI11\wlserver_10.3\server\bin\beasvc.exe –debug "beasvc bifoundation_domain_bi_server1"

Tímto způsobem je možné sledovat spouštění Weblogic Serveru v okně, jak jej známe při klasickém spouštění z příkazové řádky. Jakmile se v okně objeví řádky "RUNNING", WebLogic ManagedServer je spuštěn. Pokud by během startování došlo k chybě, uživatel ji uvidí přímo na obrazovce nebo v klasickém log souboru: …\OracleBI11\user_projects\domains\bifoundation_domain\servers\bi_server1\logs\bi_server1.log

Dodatečná úprava parametrů
Pokud se při startu vyskytla chyba, nebo kdykoliv později dle potřeby je možné změnit parametry této služby.

Nejčistější způsob je smazání původní služby a vytvoření nové dle výše uvedeného postupu. Tento způsob je však časově náročný a při změně pouze jednoho méně důležitého parametru zbytečný.

Druhým způsobem je využití interního příkazu Windows z příkazové řádky"sc.exe". Tento způsob je sice nepřehledný, ale bezpečný z pohledu systému Windows.

Třetím způsobem je přímá editace klíčů v registru. Služba se nachází ve složce HKLM\SYSTEM\CurrentControlSet\Services\beasvc bifoundation_domain_bi_server1.


Samotné parametry jsou v podadresáři Parameters.


Práce v registrech je velmi přehledná. Na druhou stranu umožňuje dělat i takové změny, které mohou vést k nefunkčnosti celého systému Windows.

Nejčastější prováděné změny mohou být například přejmenování služby (klíč DislpayName), změna cesty k Java JDK (klíč JavaHome) nebo úprava velikosti alokované paměti (klíč CmdLine a hodnoty -Xms a -Xmx).

Závislosti
Při vytváření služby pro ManagedServer je možné nastavit závislost služby na službě spouštějící AdminServer (pokud jsou instalovány na stejném serveru), případně na dalších službách (OPMN, DB). Závislost lze nastavit pomocí příkazu "sc.exe config".

Nastavení závislosti způsobí, že při startu ManagedServeru se nejprve spustí AdminServer, pokud ještě neběžel. Veškeré informace jsou v dokumentaci.

Chybová hláška systému Windows při spouštění
Standardní čas, během kterého systém Windows čeká, zda byla služba úspěšně spuštěna, je 120 sekund. Pokud se služba do této doby nespustí, objeví se chybové hlášení.


Start WebLogic Serveru většinou trvá 2-5 minut podle výkonnosti serveru. Výskytu této hlášky můžeme zamezit změnou tohoto limitu v registrech.

Ve složce HKLM\SYSTEM\CurrentControlSet\Control je potřeba vytvořit nový klíč typu DWORD s názvem "ServicePipeTimeout" a vložit hodnotu, která říká, jak dlouho bude systém čekat na spuštění služby. Čas se zadává v milisekundách a pro přehlednost v desítkové soustavě. Pak je potřeba systém restartovat.


Ve chvíli, kdy se systém restartuje nebo vypíná, snaží se ukončit všechny běžící služby a čeká standardně 60 sekund. Poté službu násilně ukončí. Ukončení služeb WebLogic Serveru by mohlo trvat déle, proto je dobré tento limit zvýšit. Stačí změnit hodnotu klíče "WaitToKillServiceTimeout" ve stejné složce.

Ostatní části architektury
Výše uvedený postup spouští pouze WebLogic Managed Server. První část WebLogic Admin Server musí být spuštěna standardním způsobem z příkazové řádky, nebo obdobným způsobem vytvořenou službou Windows - popis viz. zde.

Ostatní komponenty celé OBIEE11g architektury mají své Windows služby (Oracle Process Manager a Oracle WebLogic Node Manager) vytvořené během instalace. Předpokládá se, že budou touto cestou spouštěny.
Testováno v prostředí
  • Windows Server 2008 SP2 32-bit
  • Oracle Business Intelligence 11.1.1.3.0
  • WebLogic Server 10.3.3.0
  • JRockit 1.6.0.17
  • Java JDK 1.6.0.18


Michal Nový (konzultant společnosti Aquasoft)