WebLogic‎ > ‎Domain Creation‎ > ‎

Creating Domain by pack and unpack

The WebLogic provides two compressing and uncompressing the domain for reusing to another remote machine or it can be used as backup for the existing domain.
 
Which requires the PATH need to set to <WL_HOME>/common/bin
 
export PATH=/export/home/wlsuser/bea/weblogic92/common/bin:$PATH
 

Pack Process

Syntax:
 
pack -domain=domain -template=template -template_name=“template_name”
[-template_author=“author”][-template_desc=“description”]
[-managed={true|false}][-log=log_file] [-log_priority=log_priority]
 
 
Example

bash-3.00$ pack.sh -domain="/export/home/wlsuser/domains/wlscldom"
-template="/export/home/wlsuser/templates/wlscltemp.jar" -template_name="WLS
CLUSTER DOMAIN" -log=/export/home/wlsuser/logs/wlscldompack.log -log_priority=INFO
 
<< read domain from "/export/home/wlsuser/domains/wlscldom"
>>  succeed: read domain from "/export/home/wlsuser/domains/wlscldom"
<< write template to "/export/home/wlsuser/templates/wlscltemp.jar"
.................................................................................
...................
>>  succeed: write template to "/export/home/wlsuser/templates/wlscltemp.jar"
<< close template
>>  succeed: close template
 
To confirm that domain created in the current directory check with ls command.
bash-3.00$ ls -l
total 30
drwxr-xr-x   8 wlsuser   wlproj512 Dec 19 07:58 bea
drwxr-xr-x   3 wlsuser   wlproj512 Dec 24 10:48 domains
bash-3.00$ cd logs
bash-3.00$ ls -l
total 130
-rw-r--r--   1 wlsuser   wlproj948 Dec 24 12:06 wlscldompack.log
 
To View the logged info related to pack process.
bash-3.00$ tail -100 wlscldompack.log
2008-12-24 12:06:43,569 INFO  [runScript]
com.bea.plateng.domain.script.ScriptExecutor - read domain from
"/export/home/wlsuser/domains/wlscldom"
2008-12-24 12:06:52,643 INFO  [runScript]
com.bea.plateng.domain.script.ScriptExecutor - succeed: read domain from
"/export/home/wlsuser/domains/wlscldom"
2008-12-24 12:06:52,648 INFO  [runScript]
com.bea.plateng.domain.script.ScriptExecutor - write template to
"/export/home/wlsuser/templates/wlscltemp.jar"
2008-12-24 12:06:56,785 INFO  [Thread-1] com.bea.plateng.domain.TemplateGenerator
- Template Generation Successfull!
2008-12-24 12:06:56,847 INFO  [runScript]
com.bea.plateng.domain.script.ScriptExecutor - succeed: write template to
"/export/home/wlsuser/templates/wlscltemp.jar"
2008-12-24 12:06:56,852 INFO  [runScript]
com.bea.plateng.domain.script.ScriptExecutor - close template
2008-12-24 12:06:56,856 INFO  [runScript]
com.bea.plateng.domain.script.ScriptExecutor - succeed: close template

bash-3.00$ cd templates
bash-3.00$ ls -l
total 46
-rw-r--r--   1 wlsuser   wlproj   23188 Dec 24 12:06 wlscltemp.jar
 
To pack the managed servers only then we need to use the option '-managed=true'. by default it is set to false.
bash-3.00$ pack.sh -managed=true -domain="/export/home/wlsuser/domains/wlscldom"
-template="/export/home/wlsuser/templates/wlscltemp.jar" -template_name="WLS
CLUSTER DOMAIN" -log=/export/home/wlsuser/logs/wlscldompack.log -log_priority=INFO

UNPACK Process

To run this we must already run the pack command on a domain which is already existing. The domain template jar must be copied to the destination machine.
 
Syntax:
unpack -template=template -domain=domain [-user_name=username]
[-password=password] [-app_dir=application_directory]
[-java_home=java_home_directory] [-server_start_mode={dev|prod}]
[-log=log_file] [-log_priority=log_priority]
 
Example
 
bash-3.00$ unpack.sh -template=wlscltemp.jar -domain=domains/wlscldom
-log=wlscldomunpack.log -log_priority=INFO

<< read template from "/appdata/wkst/wlsuser/wlscltemp.jar"
>>  succeed: read template from "/appdata/wkst/wlsuser/wlscltemp.jar"
<< write Domain to "/appdata/wkst/wlsuser/domains/wlscldom"
.................................................................................
..............
>>  succeed: write Domain to "/appdata/wkst/wlsuser/domains/wlscldom"
<< close template
>>  succeed: close template
bash-3.00$ ls -l
total 1188090
drwxr-xr-x   7 wlsuser   wlproj    1024 Dec 24 09:13 bea
drwxr-xr-x   3 wlsuser   wlproj 96 Dec 24 12:20 domains 
 
 
To unpack managed server also it will work in the same manner.
 

Troubleshooting

 

To create a WebLogic domain template we can use pack command line utility.


Issue: unable to execute the pack command to create a domain template


[ ~/Oracle/Middleware/wlserver_10.3/common/bin]$ pack -domain=/sunil/domains/nmdomain -template=/sunil/domains/templates/nmdomain_tmplt.jar -template_name="nodemgrdomain_template" -template_autho="Sunil" -log=/sunil/domains/templates/nodemgrdomain_template.log -log_priority=info
pack: illegal option -- d
pack: illegal option -- o
pack: illegal option -- m
pack: illegal option -- a
pack: illegal option -- i
pack: illegal option -- n
pack: illegal option -- =
pack: illegal option -- /
pack: illegal option -- a
pack: illegal option -- p


.

.

issue is same with the case of unpack.sh while using 'unpack' instead of 'unpack.sh'

 

Investigation

First: I checked is there any UNIX command already exist with the same?


$ pack

usage: pack [-f] [-] file...

Yes it is true there is a command exists that makes ambibuty between our WebLogic command. So it is looking for its options whatever I passed arguments that doesn't matches to it.


Secondly: As there is a conflict with unix pack command and weblogic's pack command, to know the file type of the weblogic's pack command, I have listed the files in WL_HOME/common/bin and found that the command is pack.sh which is a shell script and it needs to be executed as a regular shell script.



Solution: Use pack.sh to resolve the above issue

Explantion: as per the oracle documentation pack and unpack were mentioned as commands, but in the unix environment when give pack and rest of the parameters it throws error as shown in the screen shot. The reason is unix is unable to recognize the command as it is a shell script.

 
Creating WL Domain Using WLST | Cluster domain |==> Secure Cluster domain
Comments