Zvětšení segmentů sdílené paměti

Když se produkt WebSphere Business Monitor pokusí zpracovat událost na platformě AIX, vrátí se chyba SQL. Chyba SQL se vrátí rovněž WebSphere při selhání inicializace připojení k databázi, a to při spuštění i při zpracování události. Selhání je důsledkem omezení, jež operační systém klade počtu segmentů sdílené paměti, jež jsou k dispozici pro IBM DB2.

Pokud selže Test připojení z konzoly pro správu WebSphere (prostředky jdbc) a zobrazí se následující chyba:
Selhal test připojení pro zdroj dat MonitorDataSource na serveru server1
v uzlu Node01 s následující výjimkou: java.lang.Exception:
java.sql.SQLException:SQL1224N Nelze spustit agenta databáze pro zpracování
požadavku, nebo byl agent ukončen v důsledku vypnutí nebo nuceného vypnutí
databázového systému.
SQLSTATE=55032 DSRA0010E: SQL Stav = 55032, Kód chyby = -1,224.
Tato chyba pravděpodobně signalizuje překročení počtu segmentů sdílené paměti, který je povolen systémem AIX pro databázi.

Když se vyskytne tato chyba, musíte změnit konfiguraci produktu DB2, aby se zvýšil počet segmentů sdílené paměti. V současné době expert zotavení nepodporuje použití definování aliasu DB2 se zpětnou vazbou, abyste se vyhnuli problému se sdílenou pamětí.

Řešení

Funkci rozšířené sdílené paměti používá produkt DB2, který tento problém obejde. Pro zpřístupnění této funkce umístěte následující řádky někde na začátek souborů /etc/rc.db2 a <instance_home>/sqllib/db2profile, (kde <instance_home> je domovský adresář každého uživatele instance; například /home/db2inst1), a to za blokový komentář a před jakékoli spustitelné řádky:
# Lokální přídavek k opravě problému se sdílenou pamětí platformy AIX:
EXTSHM=ON
export EXTSHM
Poznámka: Položka rozlišuje malá a velká písmena. Zadejte položku do db2profiles všech uživatelů instance a správce serveru. Poté se přihlaste jako každý uživatel instance a uživatel serveru administrátora a zadejte následující příkaz:
db2set DB2ENVLIST=EXTSHM

Ten nastaví variabilní profil DB2 během každé instance, která způsobí zahrnutí hodnoty proměnného prostředí EXTSHM do prostředí procesů démona produktu DB2 při jejich spuštění. Definováním EXTSHM v profilech db2profiles pro jednotlivé instance, jež jsou prováděny při přihlášení, zajistíte, že proměnná bude nastavena ve kterémkoli prostředí vlastníka instance. Nakonec vložením do /etc/rc.db2 zajistěte nastavení proměnné při spouštění procesů DB2 při spuštění. Nakonec restartujte systém, aby se všechny procesy DB2 spustily ve svém prostředí s EXTSHM=ON.

Pokud si přejete automaticky použít opravu pro nově vytvářené instance do budoucna, přidejte řádky, které nastavují a exportují EXTSHM, do souboru /usr/lpp/db2_08_02/cfg/db2profile, který se pro vytvoření instance kopíruje do <instance_home>/sqllib/db2profile. Abyste se ujistili, že proměnná profilu DB2ENVLIST je také nastavena, přidejte po nastavení proměnné INSTHOME tento kód:
if [ -x $INSTHOME/sqllib/adm/db2set ]
then if [ "`$INSTHOME/sqllib/adm/db2set DB2ENVLIST`" != "EXTSHM" ]
then $INSTHOME/sqllib/adm/db2set DB2ENVLIST=EXTSHM
fi
fi
Tento kód zajistí, že proměnná instance profilu DB2ENVLIST se nastaví při prvním použití nové instance.
Poznámka:
  • Předpokládá se, že produkt DB2 verze 8.0 je nainstalován v adresáři /usr/lpp/db2_08_02. Je-li vaše instalace umístěna jinde, musíte použít toto své umístění instalace.
  • Pro produkt DB2 verze 8.0 je nutné doplnit následující řádky do souboru <instance_home>/sqllib/userprofile v případě, že existuje. V jiném případě vytvořte soubor profilu uživatele s oprávněním 755 . Jde o tyto řádky:
    EXTSHM=ON
    export EXTSHM

Copyright IBM Corporation 2005, 2006. Všechna práva vyhrazena.