Sunday 23 February 2020

WebSphere ND Migration 7.0 to 8.0 / 9.0 on Same Machine.

Prequesties check:
1. Check O.S prerequisites.
2. Source WAS 7.0 should be completely stopped.
3. Disk space needs to be there. 
4. Targeted WAS 8.0 / 9.0 needs to be installed on a machine.
5. Increase the number of open files limits on the O.S level (ulimit -a).

Tools for Migration
a) Migration 9 GUI based (WCT tool).
b) Command-line (i) WASPreUpgrade (ii) WASPostUpgrade

I have three profiles in existing WAS 7.0(in my scenario), 
a) Dmgr01
b) Custom01
c) Custom02

NOTE: Before proceeding always take config or profile backup.

Commands for backup.

a) Dmgr01 backup

./ /app/WAS7-APP-ND/IBM/WebSphere/AppServer/profiles/   
-profileName Dmgr01 

 b) Custom01 backup

./ /app/WAS7-APP-ND/IBM/WebSphere/AppServer/profiles/   
-profileName Custom01 


  • Install New instance of WAS 8.0 / 9.0 on Machine.
  • IMP NOTE: Before proceeding, need to create the same profiles in WAS 8.0 / 9.0  with having the same nodeName, cell namehostname, servers instances & no applications.


A) create the same profile "Dmgr01" in WAS 8.0 having same nodeName, cellName,  hostname , server instance & with no applications.

/app/WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ -create   
-profileName Dmgr01 
-profilePath /app/WAS8-APP-ND/IBM/WebSphere/AppServer/profiles/Dmgr01   
-templatePath /app/WAS8-APP-ND/IBM/WebSphere/AppServer/profileTemplates/management   
-nodeName Dmgr01Node  -cellName Dmgr01NodeCell -hostName MBox  -defaultPorts 
-enableAdminSecurity true -adminUserName was -adminPassword was123

B) create the same profile "Custom01" in WAS 8.0 / 9.0 having the same nodeName, cellName,  hostname, server instance & with no applications installed.

/app/WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ -create  
-profileName Custom01 -defaultPorts  
-profilePath /app/WAS8-APP-ND/IBM/WebSphere/AppServer/profiles/Custom01  
-templatePath /app/WAS8-APP-ND/IBM/WebSphere/AppServer/profileTemplates/managed  
-nodeName Custom01Node  -cellName Custom01Cell  -hostName MBox -federateLater true


Create a folder on targeted WAS 8.0, to place WASPreUpgrade migration command files.

mkdir -p /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Dmgr01
mkdir -p /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom01
mkdir -p /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom02


  • NOTE: Stop all the WAS services on 7.0.
  • Run WASPreUpgrade command from WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ for "Dmgr01" profile.

-traceString Migration.Flow=finer:Migration.*=fine   
-traceFile /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Dmgr01_WASPreUpgrade.trace  
-oldProfile Dmgr01   -username was   -password was123 

Reference URL :

********************************************************************************* backupDirectory 
                 [-traceString trace_spec [-traceFile file_name ]]
                 [-machineChange true | false]
                 [-oldProfile profile_name]
                 [-workspaceRoot profile1=user_workspace_folder_name_1;profile2=user_workspace_folder_name_2]
                 [-username < user name >]
                 [-password < password >]
                 [-javaoption < -Xms...m > -javaoption < -Xmx...m > ]
                 [-requireEmbeddedDBMigration true | false]
                 [-keepDmgrEnabled true | false]


  • Run WASPreUpgrade command from WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ for "Custom01" profile.

-traceString Migration.Flow=finer:Migration.*=fine   
-traceFile /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom01_WASPreUpgrade.trace  -oldProfile Custom01   -username was   -password was123 



  • Run WASPostUpgrade command from WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ for "Dmgr01" profile.

-oldProfile Dmgr01  -profileName Dmgr01 -scriptCompatibility true   
-replacePorts false  -includeApps true  -keepAppDirectory false  
-traceString Migration.Flow=finer:Migration.*=fine 
-traceFile /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Dmgr01_WASPostUpgrade.trace 
-username was   -password was123

***************************************************************************************************** backupDirectory
                     [-username userID]
                     [-password password]
                     [-oldProfile profile_name]
                     [-profileName profile_name]
                     [-scriptCompatibility true | false]
                     [-portBlock port_starting_number]
                     [-backupConfig true | false]
                     [-replacePorts true | false]
                     [-includeApps true | false | script]
                     [-keepDmgrEnabled true | false]
                     [-requestTimeout seconds]
                     [-javaoption -Xms...m -javaoption -Xmx...m]
                     [[-appInstallDirectory user_specified_directory] | 
                      [-keepAppDirectory true | false]]
                     [-traceString trace_spec [-traceFile file_name]]

Start the Dmgr01 profile, and force delete the already federate nodes in dmgr from DMGR console.
Since it contains WAS 7.0 node agents.

  • Run WASPostUpgrade command from WAS8-APP-ND/IBM/WebSphere/AppServer/bin/ for "Custom01" profile.

-oldProfile Custom01  -profileName Custom01 -scriptCompatibility true   -replacePorts false  
-includeApps true  -keepAppDirectory false  
-traceString Migration.Flow=finer:Migration.*=fine 
-traceFile /app/WAS8-APP-ND/IBM/WebSphere/WASMigration/Custom01_WASPostUpgrade.trace -username was   -password was123

NOTE: The above command will automatically federate the node, with the running Dmgr01 profile.

For understanding.
  1. stop WAS 7.0 services & profiles completely.
  2. take existing WAS 7.0 Backup.
  3. install WAS 8.0 and create same profiles on new WAS 8.0 /9.0 , having same nodeName, cellName,  hostname, server instance & with no applications.
  4. Run $WAS8_HOME/bin/WASPreUpgrade command, & save the pre upgrades migration files.
  5. Run $WAS8_HOME/bin/WASPostUpgrade command & for Dmgr01.
  6. Start WAS 8.0 Dmgr01 and force delete the nodes of WAS7.0
  7. Run $WAS8_HOME/bin/WASPostUpgrade command for Custom01, (it will automatically federate the nodes with WAS8.0 dmgr01)
  8. Do the same for Custom02 also.
  9. Clear all profiles wstemp, temp, tranlog & logs files.
  10. federate the nodes with dmgr and start node & servers instances.

Reference links: 

Thanks :-)

Friday 21 February 2020

WebSphere Application Server 7.0.0.X & FIXPACK install / Update on the non-default location.

Step 1: Download the WAS 7 binaries.

Step 2: Extract the above binaries.

Step 3: Use the "install" command for silent installation on the WAS7/WAS folder.

Step 4: Use below command for WebSphere Application Server installation.

NOTE: Create an installation folder.


./install  -silent -OPT silentInstallLicenseAcceptance="true" -OPT allowNonRootSilentInstall="false"  -OPT disableOSPrereqChecking="true" -OPT disableNonBlockingPrereqChecking="true" -OPT checkFilePermissions="true" -OPT installType="installNew" -OPT profileType="none" -OPT feature="samplesSelected" -OPT feature="languagepack.console.all" -OPT feature="languagepack.server.all" -OPT installLocation="/app/WAS7-APP/IBM/WebSphere/AppServer"

Step 5: Create a default (application-server) profile using "manageprofiles" command.


./ -create -profileName AppSrv01 -profilePath "/app/WAS7-APP/IBM/WebSphere/AppServer/profiles/AppSrv01" -templatePath "/app/WAS7-APP/IBM/WebSphere/AppServer/profileTemplates/default" -enableAdminSecurity false

Step 6: Install UpdateInstaller setup tool.

NOTE: UpdateInstaller is used for FIXPACK upgrade (install) & FIXPACK downgrade (uninstall).


./install -silent -OPT silentInstallLicenseAcceptance="true" -OPT -OPT allowNonRootSilentInstall="false" -OPT disableOSPrereqChecking="true" -OPT disableEarlyPrereqChecking="true" -OPT installLocation="/opt/IBM/WebSphere/UpdateInstaller" -OPT traceFormat=ALL

Step 7: SDK install "7.0.0-WS-WASSDK-LinuxX64-FP0000043.pak" on the WAS application server.

Copy the downloaded "7.0.0-WS-WASSDK-LinuxX64-FP0000043.pak"  to "/opt/IBM/WebSphere/UpdateInstaller/maintenance" folder.

NOTE:  Take reference from file  "/opt/IBM/WebSphere/UpdateInstaller/responsefiles/install.txt"


./  -silent -OPT checkFilePermissions="true" -W maintenance.package=/opt/IBM/WebSphere/UpdateInstaller/maintenance/7.0.0-WS-WASSDK-LinuxX64-FP0000043.pak -OPT disableNonBlockingPrereqChecking="true" -W product.location=/app/WAS7-APP/IBM/WebSphere/AppServer -W update.type="install"


/opt/IBM/WebSphere/UpdateInstaller/java/jre/bin/java -cp /opt/IBM/WebSphere/UpdateInstaller/update.jar -Xms256m -Xmx512m run -silent -OPT checkFilePermissions=true -W maintenance.package=/opt/IBM/WebSphere/UpdateInstaller/maintenance/7.0.0-WS-WASSDK-LinuxX64-FP0000043.pak -OPT disableNonBlockingPrereqChecking=true -W product.location=/app/WAS7-APP/IBM/WebSphere/AppServer -W update.type=install

Step 8: FIXPACK Update "7.0.0-WS-WAS-LinuxX64-FP0000043.pak" on the WAS application server.

Copy the downloaded "7.0.0-WS-WAS-LinuxX64-FP0000043.pak" to "/opt/IBM/WebSphere/UpdateInstaller/maintenance" folder.

take reference from file  "/opt/IBM/WebSphere/UpdateInstaller/responsefiles/install.txt"


/opt/IBM/WebSphere/UpdateInstaller/java/jre/bin/java -cp /opt/IBM/WebSphere/UpdateInstaller/update.jar -Xms256m -Xmx512m run -silent -OPT checkFilePermissions=true -W maintenance.package=/opt/IBM/WebSphere/UpdateInstaller/maintenance/7.0.0-WS-WAS-LinuxX64-FP0000043.pak -OPT disableNonBlockingPrereqChecking=true -W product.location=/app/WAS7-APP/IBM/WebSphere/AppServer -W update.type=install

Thanks :-)

Sunday 9 February 2020

Openssl Self-Signed SAN's certificate

Step 1: Create a file san.cnf file and add below content to it.

########################Create a file san.cnf file################

[ req ]
default_bits        = 2048
distinguished_name  = subject
x509_extensions     = x509_ext
string_mask         = utf8only

# The Subject DN can be formed using X501 or RFC 4514 (see RFC 4519 for a description).
#   Its sort of a mashup. For example, RFC 4514 does not provide emailAddress.
[ subject ]
countryName         = Country Name (2 letter code)
countryName_default = IN

stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = MAH

localityName          = Locality Name (eg, city)
localityName_default  = MUM

organizationName         = Organization Name (eg, company)
organizationName_default = MBOX

# Use a friendly name here because it's presented to the user. The server's DNS

commonName          = Common Name (e.g. server FQDN or YOUR name)
commonName_default  =
emailAddress         =

# Section x509_ext is used when generating a self-signed certificate. I.e., openssl req -x509 ...
[ x509_ext ]

subjectKeyIdentifier    = hash
authorityKeyIdentifier = keyid:always,issuer:always
basicConstraints       = CA:TRUE

#   omit keyEncipherment because that's key transport.
keyUsage          = digitalSignature, keyEncipherment
subjectAltName    = @alternate_names
nsComment         = "OpenSSL Generated Certificate"

[ alternate_names ]

DNS.1       =
DNS.2       =
DNS.3       =


Step 2: Use below the below command.

export OPENSSL_CONF=/etc/httpd/conf.d/san.cnf

Step 3: Below command and press enter till exit.

openssl req -x509 -sha256 -nodes -days 1365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

Step 4: Add these generated  Keyfile & certificate location  in apache-web (ssl.conf) file.

Step 5: Check from browser

Installation Manager (IM) on non-Administrator user.

What is IM?
Installation Manager is a tool that you can use to install and maintain your IBM software packages. 
The following steps can perform the install, modify, update, rollback, or uninstall your IBM products.

Step 1: Extract IM setup.

Step 2: Locate to $IM_SETUP/userinstc script for Installation using for command method.

Step 3: NOTE: Create a folder for "IM_installed" &  "IM_logs" on the installation path.


./userinstc -acceptLicense  
-installationDirectory /IBM_WAS/IBM/IM_installed  
-record /IBM_WAS/IBM/IM_installed/install.xml  
-dataLocation /IBM_WAS/IBM/IM_logs 

userinstc: To install silently (non-administrator) script for installation.
installationDirectory: Installation directory location.
record: To record installed steps.
dataLocation: For IMP installation Manager logs.
showProgress : For installation status.

Step 4: To check the installation location.

Step 5:  Locate to IM logs location, to check the logs file.

Step 6: command-line arguments actually passed.

Thanks :-)

Sunday 2 February 2020

httpd (Apache) Error: systemd-tty-ask-password-agent tool!

[root@MBox conf.d]# httpd -k start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using Set the 'ServerName' directive globally to suppress this message

Broadcast message from root@MBox (Sun 2020-02-02 22:37:10 IST):

Password entry required for 'Enter SSL pass phrase for (RSA) :' (PID 4854).
Please enter password with the systemd-tty-ask-password-agent tool!


[root@MBox conf.d]# httpd -v
Server version: Apache/2.4.6 (Red Hat Enterprise Linux)

Option 1:

Step1: OpenSSL command to remove the passphrase (password)  form private key.

    openssl rsa -in privatekey-old.key -out privatekey-new.key

Step 2:
Comment below the line in "ssl.conf"

###SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog

Step 3: Add new privatekey-new certifiacte in ssl.conf file.

Step 4: start the httpd(Apache) services.

httpd -k start

Option 2: 

Step 1: Open ssl.conf file.

Step 2: Edit file "/usr/libexec/httpd-ssl-pass-dialog" for  SSLPassPhraseDialog 

Step 3: Comment below a line  &  Add   echo "123456"

######exec /bin/systemd-ask-password "Enter SSL pass phrase for $1 ($2) : "

123456 is a password for private key.

Step 4: Start the httpd(Apache) services.

httpd -k start

Thanks :-)