

Those of who run a supported version of WebSphere Application Server (WAS) on AIX v 4.3.3 or later in conjunction with IBM's DB2 universal database may experience a problem loading WAS' Administration Server component if you exceed a maximum number of local concurrent DB2 connections from a single process. Some users who don't even connect to a local DB2 database report encountering this problem, as well.
According to an IBM support document the WAS Administration Server fails to start (it returns a StateConnectionException error) in cases in which the total number of local concurrent DB2 connections exceeds the maximum supported by AIX, which allows at most 11 shared memory segments per process at any one time. Of this limit, IBM says, a maximum of 10 concurrent connections can be used for local DB2 connections.
Depending on which version of DB2 you're using, the solution can be either relatively painless or, to some degree, onerous. For users of DB2 7.2, the solution might be fairly straightforward. You can configure DB2's Extended Shared Memory (EXTSHM) and enable support for as many concurrent shared memory connections (of not less than 4096 bytes) that you require -- or that you have memory enough to support. IBM's support document provides some concise instructions on how to do this. Bear in mind that Big Blue specifically cautions that DB2 and WAS should not be deployed on the same system when EXTSHM is enabled because of concerns about stability and performance. If you don't have your DB2 and WAS environments separated, don't enable EXTSHM.
Bear in mind, as well, that the maximum supported number of local concurrent DB2 connections varies from JDK to JDK, as well. JDK 1.1.8, for example, allows a maximum of 10; JDK 1.2.2, on the other hand, allows a maximum of four; JDK 1.3.0, for its part, allows a maximum of two.
For users with non-current versions of DB2 or who are running DB2 7.2 on the same system as WAS, things are more complicated. That's because even though EXTSHM is supported on several non-current revs of AIX, it is not properly supported on versions of DB2 older than v7.2. Under AIX, EXTSHM-enabled processes aren't permitted to perform raw I/O operations ? and yet non-current versions of DB2 don't know this. Customers using a non-current version of DB2 in conjunction with raw devices should therefore not enable EXTSHM. Doing so could trigger an AIX exception that would take the system down.
Instead, Big Blue cautions, they need first to configure TCP/IP loopback preparatory to cataloguing a remote database locally. This is a complicated process, however, and could require that you modify your application to connect to the new database alias. It could also introduce performance degradation by virtue of the introduction of loopback overhead.
Even for users of DB2 7.2, however, the latter approach might amount to a better overall solution than that of enabling EXTSHM support. Be certain to read the support document referenced above before you make your decision.
Ironically enough, IBM confesses that in versions of AIX prior to 4.3.3, this issue didn't exist because of a bug that enabled DB2 server processes to inherit the EXTSHM attribute.
Stephen Swoyer, a technology writer based in Athens, GA, has written about S/390, AS/400 and other platform issues for a variety of IT publications.