# Deployit Oracle WebLogic Server (WLS) Plugin Manual

# Preface

This manual describes the Deployit Tomcat Plugin.

# Introduction

The Oracle WebLogic Server (WLS) Plugin supports the deployment, re-deployment and undeployment of a deployment package to a WLS servlet container.

# Tomcat Plugin Requirements

In addition to the requirements for Deployit, the WLS Plugin has the following additional requirements:

- the user account used to access the WLS server must have permission to perform the following actions:
  - run the WLS, wlst.sh script (or wlst.bat on Windows)

The target middleware needs to be set up so that the administrative interfaces of the target middleware can be accessed by running it on the machine on which the administrative server of the software is installed. Deployit does not support a setup in which the administrative client is installed on a different machine.

For WebLogic Server this means that Deployit will use SSH to log in to the machine on which the "admin server" is running, upload any Python files and other files needed to a temporary directory and then invoke the `wlst.sh` command. Afterwards any temporary files will be removed.

# Supported WLS Versions

The WLS plugin supports the following versions of WLS:

- 10.3.x

# Supported WLS Features

The WLS Plugin supports the following features:

Concept | Remarks
--- | ---
EAR/WAR/EJB-Jar | Deploy and undeploy EAR, WAR and EJB-Jar's.
LibraryJar |
Apache Httpd Wls Plugin Configuration | Create and destroy Apache HTTPD Server configuration.
DataSource | Create and destroy datasources.
Foreign Jms Connection Factory | Create and destroy JMS Connection factories.
Foreign Jms Destination | Create and destroy JMS destinations.
Foreign Jms Server | Create and destroy JMS Servers.
Maximum Threads Constraint | Configure maximum thread constraints in the server.
Shared Library Jar | Deploy and undeploy sharedl library jars.
Work Manager | Configure the work manager in the server instances.

# WLS Runbook

When the WLS runbook is triggered, the plugin populates the steplist with steps based on the executed task. First, the WLS runbook determines which servers are affected by the pending task. These are all the WLS servers that are a target of one of the deployed items in the deployment or the WLS server that a deployed application is running on in case of an undeploy.

The WLS runbook adds steps in the following order:

- Undeploy EAR/WAR/EJB-Jar
- Undeploy library Jars
- Activate changes
- Delete queues and topics
- Delete connection factories
- Delete datasources
- Unconfigure work managers
- Unconfigure maximum threads constraint
- Delete configuration files on host
- Copy configuration files to host
- Copy and configure libraries
- Modify servers and clusters
- Modify Queues
- Activate changes
- Copy and execute SQL scripts against databases
- Create queues and topics
- Create datasources
- Configure maximum threads constraint
- Configure work managers
- Deploy EAR/WAR/EJB-Jar
- Start applications

# WLS Configuration Items (CIs)

The WLS Plugin defines configuration items (CIs) needed to deploy to Tomcat middleware. To get more information about these CIs, use Deployit's command line interface (CLI). See the Deployit Command Line Interface (CLI) Manual for more information.

## ApacheHttpdWlsPluginConfiguration

An abstraction of Apache Weblogic Plugin Configuration. It is used to generate the configuration file which is included in the Apache main httpd.conf file

Type: com.xebialabs.deployit.plugin.wls.ci.ApacheHttpdWlsPluginConfiguration

Properties:

- name(STRING): configuration name
- errorPage(STRING): Error Page
- mimeMatchExpressions(STRING): Comma separated list of match expression to proxy requests by MIME type
- pathExpressions(STRING): Comma separated list of path to be used for proxing requests by path

## ApacheHttpdWlsPluginConfigurationMapping

Description unavailable

Type: com.xebialabs.deployit.plugin.wls.ci.ApacheHttpdWlsPluginConfigurationMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- clusters(Set<com.xebialabs.deployit.plugin.wls.ci.WlsCluster>): Clusters
- sourcePropertyOverrides(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Overrides for properties of the mapping's source. The key is the property name (consult the documentation or run 'describe' in the CLI), the value is the value to set. Only string, integer and enumerable properties can be overridden. Example: Key: redeliveryLimits, Value: 2
- virtualHost(STRING): Virtual Host

## WlsCluster

A WebLogic Cluster, a member of WebLogic Domain. It can have WebLogicServers as it's members

Type: com.xebialabs.deployit.plugin.wls.ci.WlsCluster

Properties:

- domain(com.xebialabs.deployit.plugin.wls.ci.WlsDomain): The domain to which the WebLogic Cluster belongs
- name(STRING): Name of the WebLogic Cluster
- servers(Set<com.xebialabs.deployit.plugin.wls.ci.WlsServer>): Servers in the WebLogic Cluster

## WlsClusterResourceMapping

A mapping of a WebLogic resource for a WlsCluster to a WlsCluster

Type: com.xebialabs.deployit.plugin.wls.ci.WlsClusterResourceMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- sourcePropertyOverrides(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Overrides for properties of the mapping's source. The key is the property name (consult the documentation or run 'describe' in the CLI), the value is the value to set. Only string, integer and enumerable properties can be overridden. Example: Key: redeliveryLimits, Value: 2

## WlsDataSource

A datasource to connect to a database.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsDataSource

Properties:

- driver(STRING): The driver of the datasource, the classname, e.g. oracle.jdbc.xa.client.OracleXADataSource
- init(INTEGER): The initial connectionpool size.
- jndiName(STRING): The JNDI name of the datasource, e.g. jdbc/orderdb
- max(INTEGER): The maximum connectionpool size.
- name(STRING): The name of the datasource in the WebLogic configuration, e.g. Order DataSource
- uri(STRING): The JDBC uri to the database, e.g. jdbc:oracle:thin:@ora-prod:1521:orders
- password(STRING): The password credential for the database, e.g. tiger
- properties(STRING): A comma separated list of name=value pairs.
- userName(STRING): The username credential for the database, e.g. scott

## WlsDeploymentPlan

Deployable Oracle Service bus Custumization File artifact.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsDeploymentPlan

Properties:

- location(STRING): Location of the artifact.
- name(STRING): The technical name of the artifact as it will be used within application servers.

## WlsDomain

A WebLogic Domain.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsDomain

Properties:

- activeHost(com.xebialabs.deployit.ci.Host): The host that runs the admin server
- adminServerName(STRING): The name of the admin server
- name(STRING): Name of the WebLogic Domain
- password(STRING): Password which is used to login to the WebLogic Domain.
- port(INTEGER): Port to be used by the AdminServer for this domain
- startMode(ENUM): Tells how a managed server is start and stop, default is NodeManager, others are Script or Windows Service
  - Values: [NodeManager, Script, WindowsService]
- username(STRING): Username which is used to login to the WebLogic Domain.
- wlHome(STRING): The location of the WebLogic Server installation
- domainHome(STRING): The location of the WebLogic domain. Defaults to '/../user_projects/domains/'
- enableWlstShWorkaround(BOOLEAN): Enable workaround for broken wlst.sh script found in some versions of WLS
- wlsVersion(ENUM): Wls Version
  - Values: [WEBLOGIC_8, WEBLOGIC_9, WEBLOGIC_10, WEBLOGIC_11]

## WlsEarMapping

A mapping of an EAR to a WebLogic target

Type: com.xebialabs.deployit.plugin.wls.ci.WlsEarMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- deploymentPlan(com.xebialabs.deployit.plugin.wls.ci.WlsDeploymentPlan): Deployment Plan
- deploymentPlanStagingDirectory(STRING): Deployment Plan Staging Directory
- deploymentStrategy(ENUM): Deployment Strategy
  - Values: [CLASSIC, STOP_START, SIDE_BY_SIDE]
- keyValuePairs(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Key Value Pairs
- placeholderFormat(ENUM): Placeholder Format
  - Values: [SPRING, WINDOWS_SHELL, STARS, NONE]
- stageMode(ENUM): Deployment staging mode (default is stage)
  - Values: [Stage, NoStage]
- stagingDirectory(STRING): Remote directory where the archives (ear,jar,war) are copied before deploying
- virtualHost(STRING): Virtual Host

## WlsEjbJarMapping

A mapping of an EjbJar to a WebLogic target

Type: com.xebialabs.deployit.plugin.wls.ci.WlsEjbJarMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- deploymentPlan(com.xebialabs.deployit.plugin.wls.ci.WlsDeploymentPlan): Deployment Plan
- deploymentPlanStagingDirectory(STRING): Deployment Plan Staging Directory
- deploymentStrategy(ENUM): Deployment Strategy
  - Values: [CLASSIC, STOP_START, SIDE_BY_SIDE]
- keyValuePairs(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Key Value Pairs
- mdbListenerPortJndiNameBindings(List<com.xebialabs.deployit.ci.mapping.MdbListenerPortBinding>): Bindings of message driven beans JNDI names to the corresponding listener ports present on the target middleware
- placeholderFormat(ENUM): Placeholder Format
  - Values: [SPRING, WINDOWS_SHELL, STARS, NONE]
- stageMode(ENUM): Deployment staging mode (default is stage)
  - Values: [Stage, NoStage]
- stagingDirectory(STRING): Remote directory where the archives (ear,jar,war) are copied before deploying

## WlsForeignJmsConnectionFactory

Foreign connection factory represents a connection factory that resides on another server, and which is accessible via JNDI.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsForeignJmsConnectionFactory

Properties:

- foreignJmsServer(com.xebialabs.deployit.plugin.wls.ci.WlsForeignJmsServer): The foreign server in which the foreign connection factory is included.
- localJndiName(STRING): The name that the remote object will be bound to in the local server's JNDI tree.
- name(STRING): The name of the foreign connection factory.
- remoteJndiName(STRING): The name of the remote object that will be looked up in the remote JNDI directory.

## WlsForeignJmsDestination

A foreign destination (topic or queue) is a destination on a remote server. When this destination is looked up on the local server, a look-up will be performed automatically on the remote JNDI directory, and the object will be returned from that directory

Type: com.xebialabs.deployit.plugin.wls.ci.WlsForeignJmsDestination

Properties:

- foreignJmsServer(com.xebialabs.deployit.plugin.wls.ci.WlsForeignJmsServer): The name of the Foreign JMS Server
- localJndiName(STRING): The name that the remote object will be bound to in the local server's JNDI tree
- name(STRING): The name of this foreign destination
- remoteJndiName(STRING): The name of the remote object that will be looked up in the remote JNDI directory

## WlsForeignJmsServer

A WebLogic foreign server representing a JNDI provider that resides outside a WebLogic Server.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsForeignJmsServer

Properties:

- connectionURL(STRING): The URL that WebLogic Server will use to contact the JNDI provider
- initContextFactory(STRING): The initial context of the foreign connection
- name(STRING): The name of the foreign server

## WlsJmsConnectionFactory

A WebLogic JMS Connection Factory

Type: com.xebialabs.deployit.plugin.wls.ci.WlsJmsConnectionFactory

Properties:

- jndiName(STRING): Jndi Name
- name(STRING): The name of the connection factory.

## WlsJmsQueue

A WebLogic JMS Queue

Type: com.xebialabs.deployit.plugin.wls.ci.WlsJmsQueue

Properties:

- expirationPolicy(ENUM): The message Expiration Policy to use when an expired message is encountered on a destination
  - Values: [DISCARD, LOG, REDIRECT]
- jndiName(STRING): Jndi Name
- name(STRING): The name of the queue
- errorQueue(com.xebialabs.deployit.plugin.wls.ci.WlsJmsQueue): The name of the target error destination for messages that have expired or reached their redelivery limit
- expirationLoggingFormat(STRING): The policy that defines what information about the message is logged when the Expiration Policy is set to Log
- jmsServer(com.xebialabs.deployit.plugin.wls.ci.WlsJmsServer): Jms Server
- redeliveryDelayOverride(INTEGER): The delay, in milliseconds, before rolled back or recovered messages are redelivered, regardless of the RedeliveryDelay specified by the consumer and/or connection factory
- redeliveryLimits(INTEGER): The number of redelivery attempts a message can make before it is moved to the error destination

## WlsJmsServer

WebLogic JMSServer that can run on a WebLogic Server.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsJmsServer

Properties:

- fileStorePath(STRING): Path to the file store that the JMSServer will use to store JMS messages. e.g. /var/jms/store1
- name(STRING): Name of the JMSServer. e.g. JMSServer1

## WlsMaximumThreadsConstraint

Work Manager that defines a set of request classes and thread constraints that manage work performed by WebLogic Server instances.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsMaximumThreadsConstraint

Properties:

- name(STRING): Name of the Work Manager
- threadCount(INTEGER): Thread Count
- notes(STRING): Notes

## WlsServer

A standard Weblogic Server

Type: com.xebialabs.deployit.plugin.wls.ci.WlsServer

Properties:

- domain(com.xebialabs.deployit.plugin.wls.ci.WlsDomain): WebLogic Domain to which this server belongs
- host(com.xebialabs.deployit.ci.Host): Host on which this server is running
- name(STRING): Name of the WebLogic Server
- port(INTEGER): Port for the WebLogic Server
- arguments(STRING): The arguments for this server, including initial heapsize (e.g. -Xms64m), maxheap size (-Xms256m), and bootclasspath (-Xbootclasspath/p:/var/lib/addons.jar)
- classpath(STRING): Classpath entries for this server.
- enableJVMLogRedirection(BOOLEAN): Enable JVM StdOut to Server Log file
- logFileLocation(STRING): Absolute path of log file. Example; /opt/bea/user_projects/domain/managedserver1/ms1.log
- stageMode(ENUM): Deployment staging mode (default is stage)
  - Values: [Stage, NoStage]
- startCommand(STRING): Command that should be executed to start the managed server.
- stopCommand(STRING): Command that should be executed to stop the managed server.

## WlsServerResourceMapping

A mapping of a WebLogic resource for a WlsServer to a WlsServer

Type: com.xebialabs.deployit.plugin.wls.ci.WlsServerResourceMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- sourcePropertyOverrides(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Overrides for properties of the mapping's source. The key is the property name (consult the documentation or run 'describe' in the CLI), the value is the value to set. Only string, integer and enumerable properties can be overridden. Example: Key: redeliveryLimits, Value: 2

## WlsSharedLibraryJar

Deployable WebLogic library JAR artifact.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsSharedLibraryJar

Properties:

- location(STRING): Location of the artifact.
- name(STRING): The technical name of the artifact as it will be used within application servers.

## WlsSharedLibraryJarMapping

A mapping of a JAR library to WebLogic middleware

Type: com.xebialabs.deployit.plugin.wls.ci.WlsSharedLibraryJarMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- deploymentStrategy(ENUM): Deployment Strategy
  - Values: [CLASSIC, STOP_START, SIDE_BY_SIDE]
- keyValuePairs(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Key Value Pairs
- placeholderFormat(ENUM): Placeholder Format
  - Values: [SPRING, WINDOWS_SHELL, STARS, NONE]
- stageMode(ENUM): Deployment staging mode (default is stage
  - Values: [Stage, NoStage]
- stagingDirectory(STRING): Remote directory where the archives (ear, jar, war) are copied before deploying

## WlsWarMapping

A mapping of a WAR to WebLogic middleware

Type: com.xebialabs.deployit.plugin.wls.ci.WlsWarMapping

Properties:

- source(java.io.Serializable): Source
- target(java.io.Serializable): Target
- contextRoot(STRING): Context root to deploy to
- deploymentPlan(com.xebialabs.deployit.plugin.wls.ci.WlsDeploymentPlan): Deployment Plan
- deploymentPlanStagingDirectory(STRING): Deployment Plan Staging Directory
- deploymentStrategy(ENUM): Deployment Strategy
  - Values: [CLASSIC, STOP_START, SIDE_BY_SIDE]
- ejbReferences(List<com.xebialabs.deployit.ci.mapping.EjbReference>): Specifies the mapping from ejb reference jndi names and locals used in the web.xml to bean jndi names available in middleware
- keyValuePairs(List<com.xebialabs.deployit.ci.mapping.KeyValuePair>): Key Value Pairs
- placeholderFormat(ENUM): Placeholder Format
  - Values: [SPRING, WINDOWS_SHELL, STARS, NONE]
- resourceEnvironmentEntryReferences(List<com.xebialabs.deployit.ci.mapping.ResourceReference>): Specifies the mapping from resource environment references jndi names and types used in the web.xml to resource references jndi names available in middleware
- resourceReferences(List<com.xebialabs.deployit.ci.mapping.ResourceReference>): Specifies the mapping from resource references jndi names and types used in the web.xml to resource references jndi names available in middleware
- stageMode(ENUM): Deployment staging mode (default is stage
  - Values: [Stage, NoStage]
- stagingDirectory(STRING): Remote directory where the archives (ear, jar, war) are copied before deploying
- virtualHost(STRING): Virtual host to deploy to

## WlsWorkManager

Work Manager that defines a set of request classes and thread constraints that manage work performed by WebLogic Server instances.

Type: com.xebialabs.deployit.plugin.wls.ci.WlsWorkManager

Properties:

- name(STRING): Name of the Work Manager
- maximumThreadsConstraint(com.xebialabs.deployit.plugin.wls.ci.WlsMaximumThreadsConstraint): Maximum Threads Constraint