server_*.xml reference

The server_*.xml configuration file sets up the environment for the web servers in your cluster.

The IBM® Spectrum Symphony cluster includes the following web servers:
  • The web server for the cluster management console and multicluster cluster management console (available with IBM Spectrum Symphony Advanced Edition).
  • The REST web server, which hosts the RESTful APIs relating to resource management, package deployment, and MapReduce.

Location

This file is installed with IBM Spectrum Symphony at the following locations for each web server in your cluster:
  • WEBGUI web server: $EGO_CONFDIR/../../gui/conf/server_gui.xml on Linux® or %EGO_CONFDIR%\..\..\gui\conf\server_gui.xml on Windows.
  • REST web server: $EGO_CONFDIR/server_rest.xml on Linux or %EGO_CONFDIR%\server_rest.xml on Windows.

Elements and attributes

This sections lists elements for a minimal configuration in the server_*.xml files. For a complete list of supported elements, see server configuration documentation.

dataSource

Defines a data source configuration.
jndiName
Required
Description: JNDI name for a data source.
Valid value: string
jdbcDriverRef
Optional
Description: JDBC driver for a data source.
Valid value: Configuration ID of type jdbcDriver (string).
type
Optional
Description: Type of data source.
Valid values: string, which could be:
  • javax.sql.XADataSource: JDBC driver implementation of javax.sql.XADataSource. This type of data source is both enabled for connection pooling and is able to participate as a two-phase capable resource in transactions involving multiple resources.
  • javax.sql.ConnectionPoolDataSource: JDBC driver implementation of javax.sql.ConnectionPoolDataSource. This is the basic form of a data source. It does not provide interoperability that enhances connection pooling, and cannot participate as a two-phase capable resource in transactions involving multiple resources.
  • javax.sql.DataSource: JDBC driver implementation of javax.sql.DataSource. This type of data source is enabled for connection pooling. It cannot participate as a two-phase capable resource in transactions involving multiple resources.
If you do not specify the type of data source, the Liberty profile chooses in the following order depending on which is available:
  1. javax.sql.ConnectionPoolDataSource
  2. javax.sql.DataSource
  3. javax.sql.XADataSource

fileset

Specifies a set of files starting from a base directory and matching a set of patterns.
dir
Required
Description: The base directory to search for files.
Default: ${server.config.dir}
Valid value: string
includes
Optional
Description: The comma- or space-separated list of file name patterns to include in the search results.
Default: *
Valid value: string
excludes
Optional
Description: The comma- or space-separated list of file name patterns to exclude from the search results.
Default: No files are excluded.
Valid value: string

httpEndpoint

Specifies configuration properties for an HTTP endpoint.
Important: Ensure that the port numbers specified in this section are free and not used by any other service.
host
Optional
Description: IP address, domain name server (DNS) host name with domain name suffix, or just the DNS host name, used by a client to request a resource. In a shared environment for high availability, use * for all available network interfaces.
For multihomed systems:

If your cluster includes multihomed systems (with multiple NICs and multiple mapped host names for example), update the server.xml file on each host with multiple NICs to specify the default host name by which the Liberty server is identified. To set this configuration, add the defaultHostName variable to the server.xml file on the host, and specify its value as the fully qualified host name (without any wildcards). For example: <variable name="defaultHostName" value="localhost"/>, where localhost is the host name or IP address of the host.

The server.xml file for each web server is at the following location:

Linux:
  • WEBGUI web server: $EGO_TOP/wlp/user/servers/gui/server.xml
  • rest web server: $EGO_TOP/wlp/usr/servers/rest/server.xml
Windows:
  • WEBGUI web server: Installation_top\wlp\user\servers\gui\server.xml
  • rest web server: Installation_top\wlp\usr\servers\rest\server.xml
Default: *
Valid value: string
httpPort
Optional
Description: The port used for client HTTP requests. Use -1 to disable this port.
Default:
  • WEBGUI web server: 8080
  • rest web server: 8180
httpsPort
Optional
Description: The port used for client HTTP requests secured with TLS. Use -1 to disable this port.
Default:
  • WEBGUI web server: 8443
  • rest web server: 8543

httpSession

Specifies configuration properties for HTTP session management.
invalidationTimeout
Required
Description: Amount of time, that a session can go unused, before it is no longer valid. The system will clean up session information and then invalidate the session in after the amount of time specified for this value. Ensure that the value of invalidationTimeout is equal to or greater than the value of SessionExpireTimeout (set in the pmc_conf_ego.xml file). By default, invalidationTimeout is 120 minutes in this server_gui.xml file.

Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, specifying 1m30s is equivalent to 90 seconds. Do not specify only a value, without units.

See Changing the session timeout value for the cluster management console for details on changing the SessionExpireTimeout value.

Default: 120m

jdbcdriver

Identifies a JDBC driver.
libraryref
Optional
Description: Identifies JDBC driver JARs and native files.
Valid value: Configuration ID of type library (string).
javax.sql.XADataSource
Optional
Description: JDBC driver implementation of javax.sql.XADataSource. This type of data source is both enabled for connection pooling and is able to participate as a two-phase capable resource in transactions involving multiple resources.
Valid value: string.
javax.sql.ConnectionPoolDataSource
Optional
Description: JDBC driver implementation of javax.sql.ConnectionPoolDataSource. This is the basic form of a data source. It does not provide interoperability that enhances connection pooling, and cannot participate as a two-phase capable resource in transactions involving multiple resources.
Valid value: string.
javax.sql.DataSource
Optional
Description: JDBC driver implementation of javax.sql.DataSource. This type of data source is enabled for connection pooling. It cannot participate as a two-phase capable resource in transactions involving multiple resources.
Valid value: string.

ssl-1.0

Enables TLS on a server.

ssl

Specifies a TLS repertoire with an ID and a defined keystore.
id
Required
Description: A unique name for the TLS configuration object.
Valid value: string
keystoreref
Required
Description: A keystore containing key entries for the TLS repertoire.
Valid value: string
sslprotocol
Note: The sslprotocol attribute is set to sslProtocol="${https.protocols}" in the server_gui.xml file. Do not change the value of the sslprotocol attribute.
Required
Description: TLS handshake protocol.
Valid value: string

keystore

Specifies a repository of security certificates used for TLS encryption.
id
Required
Description: A unique identifier for the keystore object.
Valid value: string
password
Required
Description: The password used to load the keystore file. The value can be stored in clear text or encoded form. Use the securityUtility tool to encode the password.
Valid value: string
location
Optional
Description: The keystore file name. An absolute or relative path to the keystore file. In the TLS minimal configuration, the location of the file is assumed to be EGO_TOP/wlp/usr/servers/web_server_name/resources/security/key.jks on Linux or Installation_top\wlp\usr\servers\web_server_name\resources/security/key.jks on Windows, where web_server_name could be webgui or rest.
Valid value: string
type
Optional
Description: Type of the keystore.
Default: jks
Valid value: string
monitorInterval
Optional
Description: The rate at which the server checks for updates to the keystore file.
Default: 0ms
Valid value: integer

logging

Controls the capture and output of log and trace messages.

maxFileSize
Optional
Description: Maximum size of a log file, in megabytes, before being rolled over; a value of 0 means no limit.
Default: 20
Valid value: integer
maxFiles
Optional
Description: Maximum number of log files that will be kept, before the oldest file is removed; a value of 0 means no limit.
Default: 2
Valid value: integer
logDirectory
Optional
Description: Location of the directory for log files.
Default: $EGO_TOP/wlp/usr/servers/web_server_name/log/service_message.log on Linux or Installation_top\wlp\usr\servers\web_server_name\log\service_message.log on Windows, where:
  • web_server_name could be:
    • webgui for the cluster management console web server.
    • rest for the rest web server.
  • service_message.log could be:
    • webgui for the cluster management console log.
    • rest for the rest log.
Valid value: string
consoleLogLevel
Optional
Description: The logging level used to filter messages written to system streams.
Default: audit
Valid values:
  • INFO: Info, audit, and warning messages are written to the system output stream. Error messages are written to the system error stream.
  • AUDIT: Audit and warning messages are written to the system output stream. Error messages are written to the system error stream.
  • WARNING: Warning messages are written to the system output stream. Error messages are written to the system error stream.
  • ERROR: Error messages are written to the system error stream.
  • OFF: No server output are written to system streams. Only JVM output is written to system streams.

Example

<server description="Platform REST Server">

    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.2</feature>
        <feature>ssl-1.0>/feature>  
        <feature>localConnector-1.0</feature>
        <feature>jaxrs-1.1</feature>
    </featureManager>

    <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
    <httpEndpoint host = "*" httpPort="8180" httpsPort="8543" id="defaultHttpEndpoint"/>


    <!-- To configure the cluster management console session timeout-->
    <httpSession invalidationTimeout= "120"/>

    <logging consoleLogLevel="INFO"/>

    <!-- default SSL configuration is defaultSSLSettings ->
    <sslDefault sslRef="defaultSSLSettings"/>
    <ssl id="defaultSSLSettings"
         keyStoreRef="defaultKeyStore" sslProtocol="${https.protocols}"/>  
    <keyStore id="defaultKeyStore" 
              location="key.jks"
              password="yourPassword"
              type="JKS" password="defaultPWD"/>
</server>