3 Domain Configuration Files
This chapter includes the following sections:
Overview of Domain Configuration Files
Each domain describes its configuration in an XML document that is located in the configuration directory of the domain. At run time, each Oracle WebLogic Server instance in a given domain creates an in-memory representation of the configuration described in this document.
Note:
The domain directory must have both Write and Read privileges, for the domain to function properly, even if no changes are made to the configuration after it is created. These privileges are required because WebLogic Server performs its own internal deployments, and configuration files may be rewritten when the server is restarted.
Do not add non-configuration files in the config
directory or subdirectories. Non-configuration files include log (.log) and lock (.lck) files. Administration Server replicates the config
directory in all Managed Server instances. Storing non-configuration files in the config
directory can cause performance issues in the domain.
The central configuration file for a domain is DOMAIN_NAME
/config/config.xml
. This file specifies the name of the domain and the configuration of each server instance, cluster, resource, and service in the domain. The file includes references to additional XML files that are stored in subdirectories of the DOMAIN_NAME
/config
directory. These included files are used to describe major subsystems of Oracle WebLogic Server.
As a performance optimization, Oracle WebLogic Server does not store most of its default values in the domain's configuration files. Sometimes, this optimization prevents XML elements from being written to the configuration files. For example, if you never modify the default logging severity level for a domain while the domain is active, the config.xml
file does not contain an XML element for the domain's logging configuration.
As an additional performance optimization, each Managed Server maintains a copy of the domain's configuration files. This copy is read-only and can be updated only as part of a change management process (see Managing Configuration Changes).
Editing Configuration Documents
In most circumstances, you should not use a text editor or other non-Oracle tools to modify a domain's configuration document. Instead, use the WebLogic Server Administration Console, Fusion Middleware Control (FMWC), WebLogic Scripting Tool (WLST), or one of the other tools described in System Administration in Understanding Oracle WebLogic Server.
However, because the Oracle WebLogic Server configuration document is an XML file that conforms to a schema, it is possible to modify them using XSLT or an XML parser application such as Apache Xerces or JDOM. Be sure to test any scripts that you create thoroughly and always make a backup copy of each configuration file before you make any changes to it.
The schemas that define a domain's configuration document are in the following locations:
-
http://xmlns.oracle.com/weblogic/weblogic-diagnostics/2.0/weblogic-diagnostics.xsd
-
In JAR files under
WL_HOME
/server/lib/schema
, whereWL_HOME
is the directory in which you install Oracle WebLogic Server. Within this directory: -
The
domain.xsd
document is represented in theweblogic-domain-binding.jar
under the pathnameMETA-INF/schemas/schema-0.xsd
. -
The
security.xsd
document is represented in theweblogic-domain-binding.jar
under the pathnameMETA-INF/schemas/schema-1.xsd
. -
The
weblogic-diagnostics.xsd
document is represented in thediagnostics-binding.jar
under the pathnameMETA-INF/schemas/schema-0.xsd
.Caution:
Do not edit configuration files for a domain that is currently running. Because Oracle WebLogic Server rewrites the files periodically, your changes will be lost. Depending on your platform, you also could cause Oracle WebLogic Server failures.
Security Credentials in Configuration Files
Security credentials for domain security and the embedded LDAP server are stored in the config.xml
file in encrypted form. If you create your config.xml
file with a text editor or other non-Oracle tool, you need to locate these credentials, encrypt them, and copy the encrypted credential into your config.xml
file.
For information about Oracle WebLogic Server's encryption utility, see encrypt in the Command Reference for Oracle WebLogic Server. After you encrypt the credentials, include the encrypted values in your config.xml
file in elements as shown in Example 3-1:
Example 3-1 Configuring Encrypted Credentials
<security-configuration> <credential-encrypted>{3DES}encypted-value-here</credential-encrypted> </security-configuration> <embedded-ldap> <credential-encrypted>{3DES}encypted-value-here</credential-encrypted> </embedded-ldap>
Configuration File Archiving
You can configure Oracle WebLogic Server to make backup copies of the configuration files. This facilitates recovery in cases where configuration changes need to be reversed or the unlikely case that configuration files become corrupted. When the Administration Server starts up, it saves a JAR file named config-booted.jar
that contains the configuration files. When you make changes to the configuration files, the old files are saved in the configArchive
directory under the domain directory, in a JAR file with a sequentially-numbered name like config-1.jar
.
For information about archiving configuration files, see Archive configuration files in Oracle WebLogic Server Administration Console Online Help. If you want to use WLST to configure Oracle WebLogic Server to make backup copies, set the ConfigBackupEnabled
attribute in DomainMBean
to true
and the ArchiveConfigurationCount
attribute to the number of configuration archive files that you want to retain, shown in Example 3-2.
Example 3-2 Configuring Archive Files
connect() edit() startEdit() cmo.setArchiveConfigurationCount(5) cmo.setConfigBackupEnabled(true) activate()
Domain Directory Contents
By default, Oracle WebLogic Server creates domain directories under Oracle Middleware ORACLE_HOME
/user_projects/domains
directory.
Individual applications in a domain might create additional files and directories in the domain directory.
If you have not yet created a domain, you can see an example of an existing domain directory by looking in ORACLE_HOME
/user_projects/domains/wl_server
where ORACLE_HOME
is the directory you specified as the Oracle Home when you installed Oracle WebLogic Server.
The following section describes the contents of the domain directory and its subfolders. Here domain-name
, deployment-name
, and server-name
represent names that you define when you create a domain.
domain-name
The name of this directory is the name of the domain. The name must conform to the guidance in Domain and Server Name Restrictions.
autodeploy
This directory provides a quick way to deploy applications in a development server. When the Oracle WebLogic Server instance is running in development mode, it automatically deploys any applications or modules that you place in this directory.
The files you place in this directory can be Java EE applications, such as:
-
An EAR file
-
A WAR, EJB JAR, RAR, or CAR archived module
-
An exploded archive directory for either an application or a module
bin
This directory contains scripts that are used in the process of starting and stopping the Administration Server and the Managed Servers in the domain. These scripts are provided as .sh
files for UNIX and .cmd
files for Windows. The bin
directory can optionally contain other scripts of domain-wide interest, such as scripts to start and stop database management systems, full-text search engine processes, and such. See Administering Server Startup and Shutdown for Oracle WebLogic Server.
config
This directory contains the current configuration and deployment state of the domain. The central domain configuration file, config.xml
, resides in this directory.
config/configCache
Contains data that is used to optimize performance when validating changes in the domain's configuration documents. This data is internal to Oracle WebLogic Server and does not need to be backed up.
config/diagnostics
This directory contains system modules for instrumentation in the WebLogic Diagnostic Framework. See Configuring and Using the Diagnostics Framework for Oracle WebLogic Server.
config/jdbc
This directory contains system modules for JDBC: global JDBC modules that can be configured directly from JMX (as opposed to JSR-88). See Database Connectivity for Oracle WebLogic Server.
config/jms
This directory contains system modules for JMS: global JMS modules that can be configured directly from JMX (as opposed to JSR-88). See Messaging for Oracle WebLogic Server.
config/nodemanager
This directory holds information for connection to the Node Manager. See Node Manager Configuration and Log Files in Administering Node Manager for Oracle WebLogic Server.
config/security
This directory contains system modules for the security framework. It contains one security provider configuration extension for each kind of security provider in the current realm of the domain. See Understanding Security for Oracle WebLogic Server.
configArchive
This directory contains a set of JAR files that save the domain's configuration state. Just before pending changes to the configuration are activated, the domain's existing configuration state, consisting of the config.xml
file and the other related configuration files, is saved in a versioned JAR file with a name like config.jar#1
, config.jar#2
, and such.
The maximum number of versioned JAR files to be kept is specified by the archiveConfigurationCount
attribute of DomainMBean
. Once this maximum number is reached, the oldest conversion archive is deleted before a new one is created.
console-ext
This directory contains extensions to the WebLogic Server Administration Console, which enable you to add content to the WebLogic Server Administration Console, replace content, and change the logos, styles and colors without modifying the files that are installed with Oracle WebLogic Server. For example, you can add content that provides custom monitoring and management facilities for your applications.
init-info
This directory contains files used for WebLogic domain provisioning. You should not modify any files in this directory.
lib
JAR files you put in this directory are made available (within a separate system level classloader) to all Java EE applications running on WebLogic Server instances in the domain. See Adding JARs to the Domain /lib
Directory in Developing Applications for Oracle WebLogic Server.
pending
This directory contains domain configuration files representing configuration changes that have been requested, but not yet activated. Once the configuration changes have been activated, the configuration files are deleted from this directory. See Managing Configuration Changes.
security
This directory holds those security-related files that are the same for every Oracle WebLogic Server instance in the domain:
-
SerializedSystemIni.dat
This directory also holds security-related files that are only needed by the domain's Administration Server:
-
DefaultAuthorizerInit.ldift
-
DefaultAuthenticatorInit.ldift
-
DefaultRoleMapperInit.ldift
-
XACMLRoleMapperInit.ldift
servers
This directory contains one subdirectory for each Oracle WebLogic Server instance in the domain. The sub-directories contain data that is specific to each server instance.
For more information about server naming convention, see Domain and Server Name Restrictions.
servers/server-name
This directory is the server directory for the Oracle WebLogic Server instance with the same name as the directory. The name must conform to the guidance in Domain and Server Name Restrictions.
servers/server-name/cache
This directory holds directories and files that contain cached data. By "cached" we mean that the data is a copy, possibly in a processed form (compiled, translated, or reformatted), of other data.
servers/server-name/data
This directory holds files that maintain persistent per-server state used to run the Oracle WebLogic Server instance, other than security state, as opposed to temporary, cached or historical information. Files in this directory are important data that must be retained as the Oracle WebLogic Server instance is brought up, is brought down, crashes, restarts, or is upgraded to a new version.
servers/server-name/data/ldap
This directory holds the embedded LDAP database. The run-time security state for the Oracle WebLogic Server instance is persisted in this directory.
servers/server-name/data/store
This directory holds WebLogic persistent stores. For each persistent store, there is a subdirectory that holds the files that represent the persistent store. The name of the subdirectory is the name of the persistent store. By convention there is one store named default
.
servers/server-name/logs
This directory holds logs and diagnostic information. This information is historical in nature. It is not crucial to the operation of the server, and can be deleted (while the Oracle WebLogic Server instance is down, at least) without affecting proper operation. However, the information can be quite useful for debugging or auditing purposes and should not be deleted without good reason.
servers/server-name/logs/diagnostic_images
This directory holds information created by the Server Image Capture component of the WebLogic Diagnostic Framework. See Configuring and Using the Diagnostics Framework for Oracle WebLogic Server.
servers/server-name/logs/jmsServers
This directory contains one subdirectory for each JMS server in the Oracle WebLogic Server instance. Each such subdirectory contains the logs for that JMS server. The name of the subdirectory is the name of the JMS server.
servers/server-name/security
This directory holds security-related files that can be or must be different for each Oracle WebLogic Server instance. The file boot.properties
is an example of a file that resides here because it can differ from one server to the next. This directory also maintains files related to SSL keys.
servers/server-name/tmp
This directory holds temporary directories and files that are created while a server instance is running. For example, a JMS paging directory is automatically created here unless another location is specified. Files in this directory must be left alone while the server is running, but may be freely deleted when the server instance is shut down.
A Server's Root Directory
All instances of Oracle WebLogic Server use a root directory to store their working copy of the domain's configuration files, to store run-time data, and to provide the context for any relative pathnames in the server's configuration.
An Administration Server always uses the domain directory as its root directory. A Managed Server can use the domain directory but can also use any other directory that you define.
For example, if you start a Managed Server on a computer that does not share a file system with the computer that hosts the Administration Server, the Managed Server creates its own root directory. The server copies data from the domain directory to this root directory and writes run-time data in this directory.
Note:
To create a Managed Server instance in a directory that is outside the domain directory, Oracle recommends using the pack
command with the -managed=true
option, or the Configuration Wizard. However, if you create a Managed Server manually by starting it in an empty directory outside the domain directory, you must first copy the security
directory, and its contents, from the Administration Server directory to your Managed Server directory.
You can specify the path and name of the server root directory for each server instance. You can specify a common server root directory for multiple server instances hosted on a single computer or you can specify a different server root directory for each server. A domain has one or more server root directories.
Specifying a Server Root Directory
You can specify the path for the server root directory by one of the following means:
-
Use the
-Dweblogic.RootDirectory=
path
option when starting a Oracle WebLogic Server instance from command line. For example, the following command starts an Oracle WebLogic Server instance and usesc:\MyServerRootDirectory
as the server root directory:java -Dweblogic.RootDirectory=c:\MyServerRootDirectory weblogic.Server
-
If you use Node Manager to start an Oracle WebLogic Server instance, you can specify a server root directory with the Root Directory attribute in the WebLogic Server Administration Console on the Server Start page. Click Environment Servers, click server_name, click Configuration, and then click Server Start to open the Server Start page.
If you do not use one of the above means to specify a server root directory, the path and name of the server root directory depend on whether a server instance is a Managed Server or the Administration Server and whether or not you use Node Manager to start the server instance. These variations are discussed in the next sections.
Server Root Directory for an Administration Server
An Administration Server uses its server root directory as a repository for the domain's configuration data (such as config.xml
) and security resources (such as the default, embedded LDAP server).
To determine the root directory for an Administration Server, Oracle WebLogic Server does the following:
-
If the server's startup command includes the
-Dweblogic.RootDirectory=
path
option, then the value ofpath
is the server root directory. -
If
-Dweblogic.RootDirectory=
path
is not specified, then the working directory is the server root directory.
If Oracle WebLogic Server cannot find a config.xml
file, then it offers to create one. You can use this method to create a new domain. See Using the weblogic.Server Command Line to Create a Domain in the Command Reference for Oracle WebLogic Server.
Server Root Directory for a Managed Server Started with Node Manager
If you use the Node Manager to start a Managed Server, the root directory is located on the computer that hosts the Node Manager process. To determine the location of the server's root directory, Oracle WebLogic Server does the following:
-
If you specified a root directory in the WebLogic Server Administration Console on the Environment > Servers > server-name > Configuration > Server Start page, then the directory you specified is the server root directory.
-
If you did not specify a root directory in the WebLogic Server Administration Console, then the server root directory is:
ORACLE_HOME
\user_projects\domains\domain-name\servers\managed-server-name
where
ORACLE_HOME
is the directory in which you installed Oracle WebLogic Server on the Node Manager's host computer.
Server Root Directory for a Managed Server Not Started with Node Manager
If you do not use the Node Manager to start a Managed Server (and therefore use the java weblogic.Server
command or a script that calls that command), Oracle WebLogic Server does the following to determine the root directory:
-
If the server's startup command includes the
-Dweblogic.RootDirectory=
path
option, then the value ofpath
is the server's root directory. -
If
-Dweblogic.RootDirectory=
path
is not specified, then the working (current) directory is the root directory. For example, if you run theweblogic.Server
command fromc:\config\MyManagedServer
, thenc:\config\MyManagedServer
is the root directory.
To make it easier to maintain your domain configurations and applications across upgrades of Oracle WebLogic Server software, it is recommended that the server root directory not be the same as the installation directory for the Oracle WebLogic Server software.