3 Creating WebLogic Domains Using WLST Offline

WLST enables you to create a new WebLogic domain or update an existing WebLogic domain without connecting to a running WebLogic Server (that is, using WLST offline)—supporting the same functionality as the Configuration Wizard.

The following sections describe how to create and configure WebLogic domains using WLST offline:

For information about sample scripts that you can use to create WebLogic domains, see WLST Offline Sample Scripts.

For more information about the Configuration Wizard, see Creating Domains Using the Configuration Wizard.

Creating and Using a Domain Template (Offline)

A domain template is a JAR file that contains domain configuration documents, applications, security data, startup scripts, and other information needed to create a WebLogic domain. To create and use a domain template, perform the steps described in Table 3-1.

Note:

If you notice that it takes a long time to create or update a domain using WLST, set the CONFIG_JVM_ARGS environment variable to the following value to resolve this issue:

-Djava.security.egd=file:/dev/./urandom

Table 3-1 Steps for Creating a Domain Template (Offline)

To... Use this command... For more information, see...

Open an existing WebLogic domain or template

readDomain(domainDirName)

readTemplate(templateFileName)

"readDomain" and "readTemplate" in WebLogic Scripting Tool Command Reference

(Optional) Modify the WebLogic domain

Browsing and editing commands

Browsing Information About the Configuration Hierarchy (Offline)

Editing a WebLogic Domain (Offline).

Set the password for the default user, if it is not already set

The default username and password must be set before you can write the domain template.

cd('/Security/domainname/User/username')

cmo.setPassword('password')

WLST Offline Sample Scripts.

Write the domain configuration information to a domain template

writeTemplate(templateName)

"writeTemplate" in WebLogic Scripting Tool Command Reference

Use the template to create a domain

createDomain(domainTemplate,

domainDir, user, password)

Note: The Configuration Wizard can also use the domain template. See Creating Domains Using the Configuration Wizard.

"createDomain" in WebLogic Scripting Tool Command Reference


Browsing Information About the Configuration Hierarchy (Offline)

WLST offline provides read and write access to the configuration data that is persisted in the WebLogic domain's config directory or in a domain template JAR created using Template Builder. This data is a collection of XML documents and expresses a hierarchy of management objects. The schemas that define a WebLogic domain's configuration document are in the following locations:

WLST represents this hierarchy as a file system. The root of the file system is the management object that represents the WebLogic domain. Below the domain directory is a collection of directories for managed-object types; each instance of the type is a subdirectory under the type directory; and each management attribute and operation is a file within a directory. The name of an instance directory matches the value of the management object's Name attribute. If the management object does not have a Name attribute, WLST generates a directory name using the following pattern: NO_NAME_number, where number starts at 0 (zero) and increments by 1 for each additional instance.

To navigate the hierarchy, you use such WLST commands as cd, ls, and pwd in a similar way that you would navigate a file system in a UNIX or Windows command shell (see Table 3-2).

Note:

As a performance optimization, WebLogic Server does not store most of its default values in the domain's configuration files. In some cases, this optimization prevents entire management objects from being displayed by WLST offline (because WebLogic Server has never written the corresponding XML elements to the domain's configuration files). For example, if you never modify the default logging severity level for a WebLogic domain while the domain is active, WLST offline will not display the domain's Log management object.

If you want to change the default value of attributes whose management object is not displayed by WLST offline, you must first use the create command to create the management object. Then you can cd to the management object and change the attribute value. See "create" in WebLogic Scripting Tool Command Reference.

Table 3-2 Displaying WebLogic Domain Configuration Information (Offline)

To... Use this command... For more information, see this section in WebLogic Scripting Tool Command Reference

Navigate the hierarchy of management objects

cd(path)

"cd"

List child attributes or management objects for the current management object

ls(['a' | 'c'])

"ls"

Toggle the display of the management object navigation path information at the prompt

prompt(['off'|'on'])

"prompt"

Display the current location in the configuration hierarchy

pwd()

"pwd"

Display all variables used by WLST

dumpVariables()

"dumpVariables"

Display the stack trace from the last exception that occurred while performing a WLST action

dumpStack()

"dumpStack"


Editing a WebLogic Domain (Offline)

To edit a WebLogic domain using WLST offline, you can perform any of the tasks defined in the following table.

Note:

If you notice that it takes a long time to create or update a domain using WLST, set the CONFIG_JVM_ARGS environment variable to the following value to resolve this issue:

-Djava.security.egd=file:/dev/./urandom

Table 3-3 Editing a WebLogic Domain

To... Use this command... For more information, see this section in WebLogic Scripting Tool Command Reference

Add an application to a WebLogic domain

addTemplate(templateFileName)

"addTemplate"

Assign resources to one or more destinations (such as assigning servers to clusters)

assign(sourceType, sourceName, destinationType, destinationName)

"assign"

Unassign resources

unassign(sourceType, sourceName, destinationType, destinationName)

"unassign"

Create and delete management objects

create(name, childMBeanType)
delete(name, childMBeanType)

"create"

"delete"

Get and set attribute values

get(attrName)
set(attrName, value)

"get"

"set"

Set configuration options

setOption(optionName, value)

"setOption"

Load SQL files into a database

loadDB(dbVersion, connectionPoolName)

"loadDB"


Alternative: Using the configToScript Command

WLST includes a command, configToScript, that reads an existing WebLogic domain and outputs a WLST script that can recreate the WebLogic domain. See "configToScript" in WebLogic Scripting Tool Command Reference.

Unlike creating and using a domain template, the configToScript command creates multiple files that must be used together. (A domain template is a single JAR file.) In addition, the script that the configToScript command creates:

  • Can only be run by WLST.

    A domain template can be used by WLST or the Configuration Wizard.

  • Requires a WebLogic Server instance to be running. If a server isn't running, the script starts one.

    WLST offline or the Configuration Wizard can use domain templates to create WebLogic domains without starting a server instance.

  • Contains only references to applications and other resources. When you run the generated script, the applications and resources must be accessible to the WebLogic domain through the file system.

    A domain template is a JAR file that contains all applications and resources needed to create a WebLogic domain. Because the domain template is self-contained, you can use it to create WebLogic domains on separate systems that do not share file systems.

Considerations for Clusters, JDBC, and JMS Resources

When using WLST offline to create or extend a clustered WebLogic domain with a template that has applications containing application-scoped JDBC and/or JMS resources, you may need to perform additional steps (after the domain is created or extended) to make sure that the application and its application-scoped resources are targeted and deployed properly in a clustered environment. For more information on the targeting and deployment of application-scoped modules, see "Deploying Applications and Modules with weblogic.deployer" in Deploying Applications to Oracle WebLogic Server.

If you want to use JDBC resources to connect to a database, modify the environment as the database vendor requires. Usually this entails adding driver classes to the CLASSPATH variable and vendor-specific directories to the PATH variable. To set the environment that the sample Derby database requires as well as add an SDK to the PATH variable and the WebLogic Server classes to the CLASSPATH variable, invoke the following script:

WL_HOME\samples\domains\wl_server\setExamplesEnv.cmd (on Windows)

WL_HOME/samples/domains/wl_server/setExamplesEnv.sh (on UNIX)