Aumento de segmentos de memoria compartida

Cuando WebSphere Business Monitor intenta procesar un suceso en la plataforma AIX, se devuelve un error de SQL. Lo mismo ocurre cuando WebSphere no consigue inicializar la conexión a la base de datos, sea durante el arranque o durante el proceso de sucesos. La anomalía se debe a un límite, impuesto por el sistema operativo, sobre el número de segmentos de memoria compartida que están disponibles para IBM DB2.

Cuando una Conexión de prueba de la consola administrativa de WebSphere (recursos jdbc) da una anomalía con el error siguiente:
Se ha producido un error en la conexión de prueba del origen de datos MonitorDataSource
sobre el servidor server1 en el nodo Node01 con la excepción siguiente: 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: Estado SQL = 55032, Código de error = -1,224.
Probablemente, este error indica que se ha excedido el número de segmentos de memoria compartida permitidos por AIX en la base de datos.

Cuando se produce este error, debe cambiar la configuración de DB2 para aumentar el número de segmentos de memoria compartida. Actualmente, el experto en recuperación no da soporte al uso de la definición de un alias DB2 con un bucle de retorno para evitar el problema de memoria compartida.

Solución

DB2 utiliza una característica de memoria compartida ampliada que elude este problema. Para habilitar esta característica, coloque las líneas siguientes cerca del inicio de /etc/rc.db2 y de <inicio_instancia>/sqllib/db2profile, (donde <inicio_instancia> es el directorio inicial de cada usuario de instancia; por ejemplo, /home/db2inst1) después del bloque de comentarios pero antes de las líneas ejecutables:
# Adición local para arreglar problema de memoria compartida de AIX:
EXTSHM=ON
export EXTSHM
Nota: La entrada es sensible a mayúsculas y minúsculas. Coloque la entrada en los db2profiles de todas las instancias de usuario y el usuario de servidor administrador. A continuación, inicie la sesión como usuario de instancia y el usuario de servidor administrador y luego ejecute el siguiente mandato:
db2set DB2ENVLIST=EXTSHM

Esto establece una variable de perfil de DB2 en cada instancia que causa que se incluya el valor de la variable de entorno EXTSHM en el entorno de los procesos de daemon de DB2 al iniciarlos. La definición de EXTSHM en los db2profiles de cada instancia, que se ejecutan al iniciar la sesión, asegura que la variable se establezca en cualquier entorno de propietario de instancia. Por último, si se coloca en /etc/rc.db2 se asegura que la variable se establezca cuando se inician los procesos de DB2 durante el arranque. Finalmente, reinicie el sistema para asegurarse de que todos los procesos de DB2 se han iniciado con EXTSHM=ON en su entorno.

Si desea que el arreglo se aplique automáticamente a las nuevas instancias cuando se creen éstas en el futuro, añada las líneas que establecen y exportan EXTSHM al archivo /usr/lpp/db2_08_02/cfg/db2profile, que se copia a <inicio_instancia>/sqllib/db2profile al crear la instancia. Para asegurarse de que la variable de perfil DB2ENVLIST también se ha establecido, añada este código después de establecer la variable INSTHOME:
if [ -x $INSTHOME/sqllib/adm/db2set ]
then if [ "`$INSTHOME/sqllib/adm/db2set DB2ENVLIST`" != "EXTSHM" ]
then $INSTHOME/sqllib/adm/db2set DB2ENVLIST=EXTSHM
fi
fi
Este código hace que se establezca la variable de perfil de instancia DB2ENVLIST la primera vez que se utilice una instancia nueva.
Nota:
  • Se asume que DB2 Versión 8.0 está instalado en /usr/lpp/db2_08_02. Si la instalación se encuentra en otro lugar, debe trabajar con la ubicación de la instalación.
  • Para DB2 versión 8.0, debe añadir las líneas siguientes al archivo <inicio_instancia>/sqllib/userprofile, si existe; en caso contrario, cree un perfil de usuario con permisos 755. Las líneas son:
    EXTSHM=ON
    export EXTSHM

Copyright IBM Corporation 2005, 2006. Reservados todos los derechos.