Wednesday, March 4, 2015

Migrating a User Domain from WebLogic Server 11g to 12c



I had been running WebLogic Server 11g (i.e. 10.3.6) as a development server for a while. Recently I decided to upgrade to WebLogic Server 12c (i.e.12.1.2). The installation was easy. I however had a user domain with a couple of dozen services (e.g. data sources). It is quite tedious to manually recreate them in a newly created domain.

At first I just tried to copy the whole domain directory in WebLogic Server 11g to WebLogic Server 12c. It does not work. Then I tried to create a domain template from my WebLogic Server 11g and create a new domain in WebLogic Server 12c using that domain template. It does not work either. It turned out that domain templates from WebLogic Servers of different versions are not compatible. The way to make the “domain upgrade” is to use the WebLogic WLST tool. In short, I “exported” the server configuration from my WebLogic Server 11g, and “imported” it into my WebLogic Server 12c. The detail follows.

All examples in this article are pertinent for Windows under the following assumptions:
  • The home directory of the existing domain for WebLogic Server 11g is “C:\wl11gdomains\mydomain
  • The home directory of the new domain for WebLogic Server 12c is “C:\wl12cdomains\mydomain
  • Environment variable WL_HOME denotes the home directory of WebLogic Server 11g
  • Environment variable MW_HOME denotes the home directory of WebLogic Server 12c

“Export” Server Configuration Using WLST


Open a command window, run command:
%WL_HOME%\common\bin\wlst.cmd

It starts WLST, with prompt:
wls:/offline>

In the WLST shell, run command:
configToScript(‘C:/wl11gdomains/mydomain’,  'C:/wlconfig/config.py',  'true', 'C:/wlconfig/config.properties', 'false')

It will create 4 files under C:\wlconfig
  1. config.py  
  2. config.properties
  3. c2sConfigemdevdomain
  4. c2sSecretemdevdomain


In order to import the configuration into WebLogic 12c, we need to overwrite part of the generated config.properties file (assuming the default weblogic username and password are “weblogic” and “password”):
  1. Replace “userName=” with “userName=weblogic”
  2. Replace “userName=” with “userName=weblogic”
  3. Replace “passWord=” with “passWord=password”
  4. Replace “domainDir=WLSTConfigToScriptDomain” with “domainDir=mydomain” 


If you want, you can also change the following properties:

  • adminServerName
  • domName


Install WebLogic Server 12c

Donwload the installation zip file, unzip it. The home directory will be referred to as %MW_HOME%
If not yet, install JDK 7, and set environment variable JAVA_HOME to the home of JDK 7. (WebLogic 12c required Java 7). Also set environment variable MW_HOME to the home of WebLogic 12c.

Open a command window. In the %MW_HOME%, run command:
configure.cmd

The installation is done.

Create New WebLogic Server 12c Domain

Open a command window. cd into C:\wl12cdomains. Run command:
%MW_HOME%\wlserver\server\bin\setWLSEnv.cmd

Then run command:
%MW_HOME%\oracle_common\common\bin\config.cmd

It starts the Configuration Wizard. Use the Configuration Wizard to create a new domain and server with exactly the same name for the domain (and server) as the existing ones.
The domain is created.

At this point, you may want to add some third-party jar files (eg. JDBC drivers) to C:\wl12cdomains\mydomain\lib. You may also want to modify C:\wl12cdomains\mydomain\bin\setDomainEnv.cmd and C:\wl12cdomains\mydomain\bin\startWebLogic.cmd to set various Java options (e.g. debug port)

 “Import” Server Configuration Using WLST

Start the server with this domain. (It is optional, but better)
Open a command window. cd into directory C:\wl12cdomains. Run command:
%MW_HOME%\wlserver\server\bin\setWLSEnv.cmd

Then run command:
%MW_HOME%\oracle_common\common\bin\wlst.cmd

It starts WLST, with prompt:
wls:/offline>

In the WLST shell, run command:
execfile('C:/wlconfig/config.py')

It will configure the new domain with all configuration of the old domain.

 

Appendix - Use Configuration Wizard to Create a New Domain 













No comments: