WebSphere variables
WebSphere variables are name and value pairs that are used to provide settings for any of the string data type attributes that are used to configure the product. After a variable is defined, the symbolic name that is specified for that variable can be specified in the Value field of any other configuration field for the product that accepts a string value.
- WebSphere® Application Server path names, such as JAVA_HOME, and APP_INSTALL_ROOT
- A path value for the extendedDocumentRoot JSP or file serving attribute. This capability enables
you to add an application to each node in a clustered environment without modifying the
ibm-web-ext.xmi file for that application on each node. Supported configurations: For IBM® extension and binding files, the .xmi or .xml file name extension is different depending on whether you are using a pre-Java™ EE 5 application or module or a Java EE 5 or later application or module. An IBM extension or binding file is named ibm-*-ext.xmi or ibm-*-bnd.xmi where * is the type of extension or binding file such as app, application, ejb-jar, or web. The following conditions apply:
However, a Java EE 5 or later module can exist within an application that includes pre-Java EE 5 files and uses the .xmi file name extension.
The ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi, and ibm-portlet-ext.xmi files continue to use the .xmi file extensions.
- Certain cell-wide customization values
- The location service for the z/OS platform.
- A variable with a cell-wide scope is available across the entire deployment manager cell.
- A variable with a cluster-wide scope is available across the entire cluster in the cell.
- A variable with a node-level scope is available only on the node and the servers on that node. If a node-level variable has the same name as a cell-wide variable, the node-level variable value takes precedence.
- A server variable is available only on the one server process. A server variable takes precedence over a variable with the same name that is defined at a higher level.
The value of a configuration attribute can contain references to one or more variables. The syntax for such an attribute is the name of the variable, enclosed in either a pair of curly braces { } or a pair of parenthesis ( ). In either case, the variable is proceeded by the dollar sign.
- String literals, including the null value and an empty string
- Variable references that each includes one or more levels of indirection
- Nested variable references.
- Any combination of non-null and non-empty string literals, variable references, and nested variable references.
For Microsoft Windows operating systems, the specified file paths are prefixed wth /Program Files.
Configuration attribute consists of: | Configuration attribute value | Variable name | Second variable value | Third variable value | Fourth variable value | Expanded configuration attribute value |
---|---|---|---|---|---|---|
String literal | /IBM/WebSphere/AppServer | N/A | N/A | N/A | N/A | /IBM/WebSphere/AppServer |
Variable reference | $(WAS_ INSTALL_ ROOT) | WAS_ INSTALL_ ROOT | /IBM/WebSphere/AppServer | N/A | N/A | /IBM/WebSphere/AppServer |
Variable reference with a string literal | $(USER_ INSTALL_ ROOT)/temp | USER_ INSTALL_ ROOT | N/A | N/A | /IBM/WebSphere/AppServer/profiles/AppSrv01 | /IBM/WebSphere/AppServer/profiles/AppSrv01/temp |
Indirect variable reference with a string literal | $(WAS_ INSTALL_ ROOT)/lib | WAS_ INSTALL_ ROOT | $(MY_INSTALL_ ROOT) | MY_INSTALL_ ROOT | N/A | N/A |
Nested variable references with string literal (Example 1) | $(${INSTALL_ TYPE}_ INSTALL_ ROOT)/lib | INSTALL_ TYPE | USER | USER_INSTALL_ ROOT | /IBM/WebSphere/AppServer/profiles/AppSrv01 | /IBM/WebSphere/AppServer/profiles/AppSrv01/lib |
Nested variable references with string literal (Example 2) | $(${INSTALL_ TYPE}_ INSTALL_ ROOT)/lib | INSTALL_ TYPE | WAS | WAS_INSTALL_ ROOT | /IBM/WebSphere/AppServer/AppServer | /IBM/WebSphere/AppServer/AppServer/lib |
During the configuration process, whenever a variable is encountered as the value for a configuration attribute, a variable expansion is performed on that variable. A variable expansion is the process of recursively replacing variable references with variable values until only a string literal remains as the value for the configuration attribute. If the expansion process encounters a variable that is not properly defined, the expansion of that variable stops and a VariableExpansionException exception is issued. The product configuration process continues. However, processing errors might occur because the value for this configuration attribute is not properly established.
Input value | Value after expansion |
---|---|
$ | $ |
$$ | $ |
$$$ | $$ |
$$$$ | $$ |
$$$$$ | $$$ |