When WebSphere® Business Monitor attempts to process an event on the AIX® platform , an SQL error is returned. And also when WebSphere fails to initialize database connection, both during startup or event processing. The failure results from an operating-system-imposed limit on the number of shared memory segments available to IBM® DB2®.
Test connection failed for data source MonitorDataSource on server server1 at node Node01 with the following exception: 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.
When this error occurs, you must change the DB2 configuration to increase the number of shared memory segments. Currently, recovery expert does not support the use of defining a DB2 alias with a loopback to avoid the shared memory problem.
Solution
# Local addition to fix AIX shared memory problem: EXTSHM=ON export EXTSHM
db2set DB2ENVLIST=EXTSHM
This sets a DB2 profile variable within each instance that causes the value of the EXTSHM environment variable to be included in the environment of the DB2 daemon processes as they are started. Defining EXTSHM in the db2profiles of each instance, which are executed at login, ensures that the variable is set in any instance-owner environment. Finally, putting it in /etc/rc.db2 ensures that the variable is set when the DB2 processes are started at startup time. Finally, restart the system to ensure that all DB2 processes are started with EXTSHM=ON in their environment.
if [ -x $INSTHOME/sqllib/adm/db2set ] then if [ "`$INSTHOME/sqllib/adm/db2set DB2ENVLIST`" != "EXTSHM" ] then $INSTHOME/sqllib/adm/db2set DB2ENVLIST=EXTSHM fi fiThis code causes the DB2ENVLIST instance profile variable to be set the first time a new instance is used.
EXTSHM=ON export EXTSHM