5.2.3 WebSphere Application Server on AIX - disk layout

The WebSphere Application Server runtime installs on AIX under /usr/IBM/WAS/AppServer by default. This is where the base code resides.

To run enterprise applications, one or more profiles are created that, by default, are contained in this directory. Applications may include customizations for specific roles that point back to this higher level base code.

The profiles consist of a set of directories that contain scripts that execute the base level WebSphere Application Server runtime components in the higher level directories, and specific XML file customizations to better support the applications that are hosted on that profile. On a WebSphere Application Server Network Deployment environment, for example, a DMgr profile is used to support the deployment manager, and other profiles support WebSphere Application Server nodes and specific standalone WebSphere Application Server configurations.

Before moving on to how WebSphere Application Server works, it is useful to know how it is laid out on the file system. An examination of the home directory of the user who installs and maintains WebSphere Application Server will illustrate why it is best to be consistent regarding who performs this role.

The home directory of the installing user ID contains a hidden .WASRegistry file, which identifies the installation root for all WebSphere Application Server installations and related products.

The default installation directory for WebSphere Application Server on AIX of /usr/IBM/WAS/AppServer uses the directories listed in Table 5-1. For each separately configured profile, an instance of the top level environment exists under the profile name beneath the profiles directory.

The default installation file system layout is listed in Table 5-1. There are a number of components in Table 5-1 that may need further explanation, most notably the references to the Eclipse and OSGI runtime.

Developers and many administrators are familiar with the concept of the Eclipse IDE and its plug-ins that allow for expansion of the base runtime environment. More details are provided later in this chapter, but as of Version 6.1, WebSphere Application Server itself is essentially composed of server-side Eclipse plug-ins.

Table 5-1

Directory Description
bin (parent and profile) This directory contains WebSphere Application Server-specific binaries (that is, shared objects and so on) and management scripts. In the profile version of this directory, the parent scripts are called.
cip This directory contains the default customized installation package (CIP) config for use with the Eclipse-based installation factory tool.
configuration (parent and profile) This directory contains the config.ini file used to control the Eclipse/OSGI base configuration and startup. This is a very important file because it controls what gets loaded as part of the OSGI initialization, so it can be used to start components on the JVM before WebSphere Application Server itself does.
deploytool This directory contains an Eclipse-based tool for application deployment, as well as a complete Eclipse environment.
derby This directory contains the lightweight Java-based Apache Derby database in embedded and network server versions.
etc (parent and profile) This directory contains the Virtual Member Manager (VMM/WIM) environment for building a customer user and group management environment for use with federated user repositories; samples for the WS-Security Web services setup; and tmx4j open source JMX code that IBM uses for offering JMX management facilities.
features This directory contains the configuration for some of the Eclipse "features" used to group dependent Eclipse plug-ins. The subdirectories each contain a feature.xml file that lists plug-ins and versions that have prerequisites and dependencies that should be configured, managed and upgraded together. Features include the base product, the network deployment product, the UDDI server, the Web services gateway, and others. Note that the feature dependencies in most of the feature.xml files refer to version 6.0.0 products except for some of the IBM programming model extensions (PME) and new 6.1.0-specific features (labelled 7.0.0), showing that much of the core code is the same between the two 6.X versions, despite the architectural change.
firststeps (parent and profile) This directory contains the firststeps application HTML and script files used for easy initial configuration. This makes use of the core WebSphere Application Server runtime library for its work.
installableApps (parent and profile) This directory contains the EAR, WAR, etc files that form the applications that are available for deployment to the appservers configured as part of the cell managed by this installation.
installedApps (parent and profile) This directory contains the deployed code from the installableApps that the profile nodes run.
installedConnectors (parent and profile) This directory contains the resource adapter archive files used by the connectors installed for the appserver that uses the J2EE Connector Architecture (JCA or J2C) to interface to external or earlier systems.
installedFilters (at profile level) This directory contains the filters that the profile nodes run.
java This directory contains the Java Virtual Machine used by this installation of WebSphere Application Server (in this case, the IBM J9 JVM).
lafiles This directory contains the license agreement files in multiple languages for the WebSphere Application Server environment.
lib This directory contains Java library files (JAR files) that support some of the base WebSphere Application Server product set. They include libraries to support some DBMSs, utility libraries, libraries to support the service integration bus and mail server interaction, some of the associated WebSphere Application Server tools (the log analyzer) and base libraries to support WebSphere Application Server startup. Java libraries for WebSphere MQ are in a subdirectory. One file of particular interest is that used to identify the Eclipse platform in use (.eclipseproduct), which reveals that an Eclipse 3.1.2 product is in use:
name=Eclipse Platform

id=org.eclipse.platform

version=3.1.2

This file goes along with the startup.jar file that contains the org.eclipse.core.launcher code for running the base Eclipse environment that can host some of the Eclipse-based tools and the bootstrap.jar file that performs similar functions. This is the same code as can be found on the Eclipse Web site for developing an AIX Eclipse application. The startup.jar and bootstrap.jar files start the Eclipse runtime by obtaining configuration information from properties files, config files and the classpath, and then bootstrapping Eclipse/OSGI with the correct information.
logs This directory contains the log files for the parent environment (usually, only the creation log files for the profiles created using the manageprofile.sh script). In the profiles themselves, the directory contains the start and stop logs, and the error logs (that is, stdout and so on).
optionalLibraries This contains directories for optional Java jar files that can be deployed to the environment to provide extra functionality, such as Jython, Struts, and the JSF-Portlet bridge. This contains Java code rather than shared objects or achieve library files.
plugins Like all Eclipse applications, this contains the Eclipse runtime environment plug-ins and much of the core WebSphere Application Server runtime environment itself that is now implemented as Eclipse plug-ins and OSGI bundles. Pay particular attention to:

"org.eclipse.osgi_3.1.2.jar - Core of the OSGI platform

"com.ibm.cds_1.0.0.jar - Provides the class loader integration with the shared classes environment

"com.ibm.ws.runtime_6.1.0.jar - Provides the base WebSphere Application Server runtime Java environment

"org.eclipse.jdt.core_3.1.2.jar and com.ibm.jdt.core_6.1.0 .jar that provide the Java runtime integration between WebSphere Application Server, Eclipse and the JVM.
profiles This directory contains the configuration and scripts specific to a configured runtime set of nodes and instances created by a particular profileTemplate. Common default profiles are the Dmgr01 profile created by the" dmgr" profileTemplate and the AppSrv01 profile created by the "managed" profileTemplate. Under these profile directories, pay particular attention to the logs directory containing log files for the instances, the config/cells directory containing the Web server plugin-cfg.xml file and the appserver server.xml file for each instance, and the bin directory containing management scripts.
profileTemplates This directory contains XML configuration files and ant scripts used by the manageprofiles.sh script for setting up the appropriate WebSphere Application Server environments for a particular role. Which directories of these files are available to allow which profile roles to be set up depends on the chosen WebSphere Application Server installation type purchased (that is, standalone, network deployment and so on).
properties (parent and profile) This directory contains the property files and XML configuration files for key tools and WebSphere Application Server components for the base environment.
runtimes This directory contains Java jar files for the client administration tools and the Web services thin client.
samples (parent and profile) This directory contains runtime applications and Java source for sample applications provided with WebSphere Application Server. These are good resources for Java developers to learn how J2EE applications should be written.
sar2war_tool This directory contains xml and an xsl script to convert a WebSphere Application Server Session Initiation Protocol (SIP) servlet archive (sar) for use by the WebSphere Application Server SIP container into a standard J2EE Web archive (war) file. Note: This sar file standard is not the same as that in use by JBoss for service archives.
Scheduler This directory contains the DDL for the database implementations for various DBMSs that support the WebSphere Application Server Scheduler service that can invoke WebSphere Application Server-hosted Java code to a schedule.
systemApps This directory contains the Java EAR files for system-level applications such as the event service or the scheduler calendar application.
temp (parent and profile) This directory contains a dummy entry for the main installation-but for profile temp directories, it contains relevant property files and checkpoint serialized object files for the instance.
tmsStorage (at profile level) This directory contains a persisted copy of the runtime deployment tasks for the deployment manager.
tranlog (at profile level) This directory contains, at the bottom of the directory tree for the nodes and instances, a tranlog directory and a partnerlog directory that are together used for XA distributed transaction management. These should be stored on a shared storage device like a NAS (with NFSv4) for the highest availability so that other instances in the cluster can access them. This set of files contains details of in-doubt transactions.
UDDIReg This directory contains the implementation of the IBM UDDI registry for Web services to support lookup of Web services within a private enterprise.
uninstall This directory contains the Java code and XML configuration files to support uninstalling WebSphere Application Server.
universalDriver This directory contains an architecture-neutral DB2 driver to support JDBC access to DB2 on multiple platforms.
util This directory contains jacl and shell scripts for installing and configuring WebSphere Application Server and its features.
web This directory contains HTML documentation for WebSphere Application Server, including some of the Rational® Rose® models used to create WebSphere Application Server itself, the application client configuration tool, the JMX management interfaces, and the programming model for entity beans. If you want to know how WebSphere Application Server works, and make WebSphere Application Server perform better on your platform at the lowest level, examine the documentation contained here. The documentation for the docs directory and all classes directory in particular contains significant information.
wstemp (at profile level) This directory contains HTML documentation for WebSphere Application Server, including some of the Rational Rose models used to create WebSphere Application Server itself, the application client configuration tool, the JMX management interfaces, and the programming model for entity beans. If you want to know how WebSphere Application Server works, and make WebSphere Application Server perform better on your platform at the lowest level, examine the documentation contained here. The documentation for the docs directory and all classes directory in particular contains significant information.

WebSphere Application Server on AIX default installation file system layout