Podczas próby przetworzenia zdarzenia przez program WebSphere Business Monitor na platformie AIX zwracany jest błąd SQL. Jest on również zwracany, gdy inicjowanie połączenia bazy danych przez produkt WebSphere zakończy się niepowodzeniem podczas uruchamiania lub przetwarzania zdarzeń. Błąd jest wynikiem narzuconego przez system operacyjny limitu liczby segmentów pamięci współużytkowanej dostępnej dla produktu IBM DB2.
Połączenie testowe dla źródła danych MonitorDataSource na serwerze serwer1 w węźle Node01 nie powiodło się. Zgłoszono następujący wyjątek:: java.lang.Exception: java.sql.SQLException: SQL1224N A database agent could not be started to service a request, or was terminated as a result of a database system shutdown or a force command. SQLSTATE=55032 DSRA0010E: SQL State = 55032, Error Code = -1,224.
Gdy ten błąd wystąpi, należy zmienić konfigurację produktu DB2 w celu zwiększenia liczby segmentów pamięci współużytkowanej. Aktualnie narzędzie recovery expert nie obsługuje definiowania aliasu produktu DB2 z pętlą zwrotną w celu uniknięcia problemów związanych z pamięcią współużytkowaną.
Rozwiązanie
# Dodatek lokalny rozwiązujący problem związany z pamięcią współużytkowaną w systemie AIX: EXTSHM=ON export EXTSHM
db2set DB2ENVLIST=EXTSHM
Ustawi ona zmienną profilu produktu DB2 w poszczególnych instancjach, co spowoduje dołączenie wartości zmiennej środowiskowej EXTSHM do środowiska procesów demona produktu DB2 po uruchomieniu tych instancji. Zdefiniowanie zmiennej EXTSHM w plikach db2profile poszczególnych instancji (uruchamianych podczas logowania) zapewni ustawienie tej zmiennej w środowisku dowolnego właściciela instancji. Ponadto umieszczenie tej zmiennej w pliku /etc/rc.db2 zapewni, że zmienna będzie ustawiana podczas uruchamiania procesów produktu DB2 w momencie uruchomienia. Na końcu należy zrestartować system, aby wszystkie procesy produktu DB2 zostały uruchomione ze zmienną EXTSHM=ON w swoich środowiskach.
if [ -x $INSTHOME/sqllib/adm/db2set ] then if [ "`$INSTHOME/sqllib/adm/db2set DB2ENVLIST`" != "EXTSHM" ] then $INSTHOME/sqllib/adm/db2set DB2ENVLIST=EXTSHM fi fiTen kod spowoduje ustawienie zmiennej profilu instancji DB2ENVLIST podczas pierwszego użycia nowej instancji.
EXTSHM=ON export EXTSHM