1---2name: ibm-websphere3description: Use when installing, configuring, or managing IBM WebSphere Application Server on RHEL 9 — WAS traditional (8.5.5/9.0) profiles and deployment, WebSphere Liberty/Open Liberty configuration and development, application deployment (WAR/EAR), security (SSL/TLS, LTPA, LDAP/AD integration, SAML/OIDC), JVM tuning (heap, GC policies), clustering and ND topology, JDBC data sources, JMS/MQ integration, wsadmin scripting (Jython), systemd services, SELinux contexts, and firewalld rules. Part of the ibm-* skill family.4---56# IBM WebSphere Application Server — RHEL 9 Administration & Development78Companion skill to `rhel-server-admin` and `db2-rhel`. For related workloads see: `rhel-web-servers`, `rhel-docker-host`, `rhel-monitoring`.910<HARD-RULE>11Never deploy applications to a running production cluster without testing on a non-production server first — class loader conflicts and missing dependencies only manifest at runtime.12</HARD-RULE>1314<HARD-RULE>15Always regenerate and propagate the web server plugin (plugin-cfg.xml) after topology changes — stale plugin config causes request routing failures.16</HARD-RULE>1718<HARD-RULE>19Never store passwords in plain text in wsadmin scripts — use encrypted password files or J2C auth aliases.20</HARD-RULE>2122<HARD-RULE>23Always configure connection pool purge policy and aging timeout — stale connections cause intermittent failures that are extremely hard to diagnose.24</HARD-RULE>2526---2728## Reference Files2930Detailed code examples, patterns, and configuration are in the reference files below. Read the relevant file when working on that area.3132| File | Covers |33|---|---|34| [install-profiles-deploy.md](install-profiles-deploy.md) | WAS architecture, RHEL 9 installation, profile management, and application deployment (WAR/EAR) |35| [security-jvm-clustering-jdbc.md](security-jvm-clustering-jdbc.md) | security configuration, JVM tuning, clustering/HA, JDBC data sources, and JMS/MQ integration |36| [wsadmin-liberty-rhel.md](wsadmin-liberty-rhel.md) | wsadmin scripting (Jython), WebSphere Liberty/Open Liberty configuration, and RHEL-specific setup |3738---3940---4142## Anti-Patterns4344| Anti-Pattern | Why It Fails | Correct Approach |45|---|---|---|46| Running WAS traditional when Liberty would suffice | WAS traditional has massive memory footprint, slow startup, complex administration for simple apps | Use Liberty/Open Liberty for new applications; reserve WAS traditional for legacy apps that require it |47| Deploying application changes without restarting in correct order | WAS caches classloaders, JNDI, and datasource connections; stale state causes intermittent failures | Follow the stop-deploy-start sequence; use rolling restarts in clustered environments |48| Configuring JDBC datasources without connection pool tuning | Default pool sizes cause connection exhaustion under load; applications block waiting for connections | Set minPoolSize, maxPoolSize, connectionTimeout, and reapTime based on load testing; monitor pool usage |49| Storing application configuration in server.xml without overrides | Environment-specific config (DB URLs, credentials) hardcoded; requires different builds per environment | Use variable substitution, jvm.options, or bootstrap.properties for environment-specific values |50| Not configuring JVM heap and garbage collection | Default JVM settings (-Xmx512m) are inadequate for production; GC pauses cause request timeouts | Set -Xms/-Xmx to 60-80% of container memory; use verbose:gc logging; tune GC policy for workload |5152---5354## Related Skills5556| Workload | Skill |57|---|---|58| Core RHEL admin (dnf, SELinux, firewalld, LVM) | `rhel-server-admin` |59| Web servers (Nginx, Apache/IHS, Caddy) | `rhel-web-servers` |60| Databases (PostgreSQL, MySQL, Redis) | `rhel-databases` |61| DB2 LUW on RHEL | `db2-rhel` |62| DB2 on z/OS | `db2-mainframe` |63| IBM Mainframe (JCL, TSO, ISPF) | `ibm-mainframe` |64| Cognos Analytics administration | `cognos-admin` |65| Docker / Podman containers | `rhel-docker-host` |66| Monitoring (Prometheus, Grafana, PCP) | `rhel-monitoring` |