5.2.4 Application server configuration

The WebSphere Application Server configuration is stored in XML files under the appserver PROFILE/config directory. The same core files are used at the appserver instance level in each of the WebSphere Application Server editions. There are some differences in the configuration at the higher level between the high availability WebSphere Application Server editions and the standalone edition.

A WebSphere Application Server unit of management is called a cell, which in a high availability environment such as that from the WebSphere Application Server - Network Deployment edition, is made up of a deployment manager, node agents on every node (an operating system instance), and a number of appserver instances that may be in zero or more clusters. Even in a standalone environment, the concept of a cell can be seen to underlie the configuration.

The node agents on the node are responsible for keeping the configuration of all WebSphere Application Server instances on the node in sync with the configuration held on the deployment manager, both of which are WebSphere Application Server instances in their own right that have specialized configurations and purposes.

Core to all of the installations of WebSphere Application Server are the server.xml file and the serverindex.xml file for the given instance. However, other configuration files are also important. Table 5-2 lists and describes each of these XML configuration files. All of these XML files are updated when either the administration system console is used or when scripting via wsadmin.

Important: The XML configuration files listed in Table 5-2 should only be updated via administration system console operations or when scripting via wsadmin.

Table 5-2

File Purpose
admin-authz.xml This file contains the server instance role assignments and mappings from users and groups of users to these internal roles.
cell.xml This file contains a small amount of information as to whether the cell is STANDALONE or DISTRIBUTED.
coregroup.xml This file contains the configuration of core groups for high availability fast failover of singletons by the WebSphere Application Server HAManager for the Network Deployment edition and above.
cluster.xml This file contains the high availability cluster topology configuration for the cluster node to enable it to identify its place in the cluster with the other cluster members.
hamanagerservice.xml This file contains the timeout, thread pool configuration, and buffer management configuration for each core group managed by the HAManager in the WebSphere Application Server ND environments and above.
installed-channels.xml This file contains some details of the installed channels for the environment. This is little used and often contains no real configuration.
libraries.xml This file contains the configuration information for optional libraries to be deployed into a particular application environment, such as those for the Java Server Faces (JSF) standard that adds additional functionality to the Web container.
multibroker.xml This file contains the reliable multicast messaging configuration for the data replication for high availability.
namestore.xml This file contains the data persistence binding configuration.
naming-authz.xml This file contains the security configuration of roles and user and group mappings to those roles for naming operations.
nodes.xml This file contains the node topology information for the cell so the cell can identify its place in the cell.
pmi-config.xml This file contains the PMI performance metrics module configuration to identify what is being monitored and how WebSphere Application Server is monitoring it (that is, what level of monitoring, what components within that PMI configuration item are being monitored, and what Java level components are involved in that monitoring or reporting on that monitoring).
perftuners.xml This file contains the rule configuration for the WebSphere Application Server built-in application-level and system-level monitoring advisors. WebSphere Application Server can simply, with minimal overhead, be configured to monitor itself according to a set of rules to allow it to advise on any misconfiguration or improvements that can be made for a particular usage and set of applications. The mapping of the rules to the Java code that validates the environment against those rules and reports against them is configured in this file.
plugin-cfg.xml This file contains the configuration file for the Web server plug-in that configures the Web servers for application mappings, weightings for use of a particular cluster member, and general cluster load balancing and high availability configuration to be used in routing decisions when forwarding a request from a Web server to an appserver instance.
pmirm.xml This file contains the PMI request metrics configuration for what subsystems metrics are available for and to be monitored for, and any filtering that is to be applied.
resources-cei.xml This file contains the Common Event Infrastructure (CEI) provider resource configuration for Common Business Events (CBE) that applications can emit and subscribe to. This is seen to best effect in the WebSphere Business Integration Server Foundation and WebSphere Process Server families. This was introduced with WebSphere Application Server 5.1.
resources-pme502.xml This file contains the WebSphere Application Server 5.02 programming model extensions (PME) configuration such as the Dynamic Caching (dynacache). This was introduced with WebSphere Application Server 5.0.2.
resources-pme.xml This file contains the WebSphere Application Server programming model extensions for the more general WebSphere Application Server 5.0 products and above, such as the Object Pool Provider, the Work Manager Provider, and Scheduler Provider.
resources.xml This file contains the configuration information for the J2C/JCA resource adapter providers that provide the underpinnings for EJB entity bean access to a particular DBMS, messaging provider configuration, and EIS integration product WebSphere Application Server configuration such as for integration with CICS or IMS. This file also contains the configuration for how these resource adapters are administered from within the WebSphere Application Server/J2EE environment.
security.xml This file contains the WebSphere Application Server, J2EE, and JCA security configuration for the server. Configuration for single signon, trust association interceptors, CSIv2 IIOP security, and so on all goes in here. If there is an issue with integrating WebSphere Application Server security with platform security, such as for Kerberos, examine the contents of this file. It also contains some user ID and password data in some configurations, access information to key stores, key information, and SSL configuration. If WebSphere Application Server is to be locked down securely, this file should be understood. It is one of the most important configuration files in any WebSphere Application Server environment.
server.xml This file contains the majority of the configuration for a particular WebSphere Application Server instance. It contains mappings, connection and buffer configuration, and component enablement configuration for the communications channels for the core WebSphere Application Server containers (that is, the Web Container, the EJB Container, the Service Integration Bus, and so on), thread pool configuration, and the majority of configuration items that are not covered elsewhere. This is the most important configuration file for a WebSphere Application Server instance.
serverindex.xml This file contains the port listener configuration and mappings from WebSphere Application Server variable names configured elsewhere within the WebSphere Application Server configuration to actual values. This is important for a platform and network administrator to be aware of because the majority of these ports must be open at the platform level through any firewalls for WebSphere Application Server to function correctly. This is one of the most important configuration files in a WebSphere Application Server environment.
sib-service.xml This file contains the Service Integration Bus (SIB) service configuration.
systemapps.xml This file contains the configuration for the instance to enable system-level applications such as the file transfer service or management EJBs.
variables.xml This file contains the substitution mappings from internal configuration variables (like environment variables) to their actual values for the specific WebSphere Application Server environment; for example, the WAS_CELL_NAME variable might be mapped to myhostnameWASCellName01.
virtualhosts.xml This file contains the virtual host configuration and mime types for that host for each of the virtual hosts configured for the environment. This will at the very least contain the configuration and mime types for default_host.
ws-security.xml This file contains the security key and certificate store configuration, the login type and configuration, encryption configuration, and other security configuration for the WS-Security standard for Web services for WebSphere Application Server.

WebSphere Application Server XML configuration files

Many of the configuration files in Table 5-2 occur in multiple places in the profile directory hierarchy. This allows a particular appserver instance to override the configuration of the cluster and node it is part of, and to override some of the configuration at the cell level if needed.

The structure of the directories is shown in Example 5-1.

Example 5-1 Configuration file directory structure

cells
    cell1
        applications 
             application1.ear
             application2.ear
        clusters
              cluster1
              cluster2
        coregroups
             DefaultCoreGroup
        nodegroups
             DefaultNodeGroup
        nodes
            node1
                servers
                    server1
                    server2
            node2
                servers
                    server1
                    server2
    cell2
        applications 
            application1.ear
             application2.ear
        clusters
              cluster1
              cluster2
        coregroups
             DefaultCoreGroup
        nodegroups
             DefaultNodeGroup
        nodes
            node1
                servers
                    server1
                    server2
            node2
                servers
                    server1
                    server2

The directory structure shown in Example 5-1 is only fully implemented and meaningful in WebSphere Application Server ND and above, although parts of it still apply to the standalone edition of WebSphere Application Server.

The applications subdirectory contains the code and J2EE configuration for the applications configured at the level at which the applications directory is found. Because J2EE applications are EAR files which themselves contain Java code and WAR, EJB-JAR and JAR files, these directories are named after the EAR file for the given application and thus, have a .ear file extension1.

Other non-XML files are used for some configuration. For example, some security configuration for LTPA (LTPA) tokens and keystores is found in ltpa.jceks, key.p12, and trust.p12, although this is not directly configurable

1For more details about this configuration, refer to the J2EE standard documentation at: http://java.sun.com