IBM Web Server Plug-in Analyzer for WebSphere Application Server

Posted by Sagar Patil

What is IBM Web Server Plug-in Analyzer for WebSphere Application Server?
Plug-in Analyzer for helps discover potential problems with trace and configuration files during use of WebSphere Application Server. The tool parses both plug-in configuration and corresponding trace files and then applies pattern recognition algorithms in order to alert users of possible inconsistencies.

The tool provides a list of HTTP return codes, URI and graphical presentations of available clusters, and server topologies from the configuration and trace files.

The primary automatic capabilities of this tool are as follows:

  • detection of incorrect or potentially problematic configurations that could cause service interruption or performance degradation
  • identification of request failure or response failure
  • HTTP return code tracking
  • URI failure tracking
  • graphical presentation of WebSphere Application Server and cluster topology
  • cluster and cluster member tracking.

How does it work?
The tool parses WebSphere Application Server plug-in configuration files and trace files. Based on results obtained from a pattern recognition engine, IBM Web Server Plug-in Analyzer provides information about any potential problems within the configuration.
The pattern recognition engine maintains various patterns of configurations that are not usually recommended and provides warnings if these same patterns are detected in the configuration files.

The tool takes the following approach:

  1. It parses configuration files.
  2. It provides warnings or clues to information when configurations appear to be set inappropriately.
  3. It collects WebSphere Application Server cluster and member topology information within the configuration file.
  4. It displays a visual mapping of the cluster and member topology.
  5. It parses the plug-in trace files and creating models based on HTTP request/response header/body information, HTTP return code, URI, start/end time, cluster name, and server name.
  6. It displays the requested trace information based on query. The trace information has HTTP return code analysis and HTTP request/response header/body analysis.

Download Plug-in Analyzer from  here : Unzip in a directory and run as ” java -jar wspa35.jar”

Installing Tivoli Common Agent Services Agent/Manager

Posted by Sagar Patil

Overview of Tivoli Common Agent Services

The Tivoli Common Agent Services component provides a way to deploy agent code across multiple end-user machines or application servers throughout an enterprise. The agents collect data from and perform operations on managed resources for Fabric Manager.

The Tivoli Common Agent Services agent manager provides authentication and authorization and maintains a registry of configuration information about the agents and resource managers in your environment. The resource managers (Fabric Manager, for example) are the server components of products that manage agents deployed on the common agent. Management applications use the services of the agent manager to communicate securely with and to obtain information about the computer systems running the Tivoli common agent software, referred to in this document as the agent.

Tivoli Common Agent Services also provides common agents to act as containers to host product agents and common services. The common agent provides remote deployment capability, shared machine resources, and secure connectivity.

Tivoli Common Agent Services is comprised of two subcomponents:

Agent manager
The agent manager handles the registration of managers and agents, security (such as the issuing of certificates and keys and the performing of authentication). It also provides query APIs for use by other products. One agent manager instance can manage multiple resource managers and agents. The agent manager can be on same machine as Fabric Manager or on a separate machine.
Common agent
The common agent resides on the agent machines of other Tivoli products. One common agent can manage multiple product agents on the same machine. It provides monitoring capabilities and can be used to install and update product agents.
Installing Agent


DMGR HA: How to backup websphere deployment manager for a Disaster Recovery

Posted by Sagar Patil

By its very nature, WebSphere Application Server Network Deployment is a distributed system ranging across many machines. While few things are more stressful and frustrating than an unplanned outage, there are ways you can lessen the impact. The goal of this article is to show how you can harness deployment manger system and make recovery a quick and simple task.

So why do you want to backup DMGR(deployment manger) configuration?

In an ideal world this is not necessary but I have massive distributed environments. Although I have admin access to systems, there are other teams with access to Monitor, Control websphere processes. Often I came across issues where something was changed and DMGR breaks next time I recycled services, thanks to websphers’s XML repository approach. It breaks not when you make change but next time services recycled.

I ended up writing backup-dmgr_sh to backup DMGR on my RHEL boxes , but it does it with a twist.

What is a twist?

To make sure I have a working configuration for a reliable backup , I shutdown DMGR services and restart them. I then use RHEL wget command to receive valid response from DMGR port before making a DMGR backup.  This way I know backup is valid and don’t contain a rogue configuration.

Attached is a sample log file

#! /bin/bash
# This shell script will backup profile at a websphere node
# Script tested successfully on 15-Dec-2010
# Script generate logfiles taking hardware clock than unix date format

set -x
## Every shell command will be expanded and printed.

TEE=/usr/bin/tee
[[ ! -x $TEE ]] && TEE=/bin/tee
if [[ ! -x $TEE ]]
then
echo $0 will not work without ‘tee(1)’ command!
exit 1
fi
TEE=”$TEE -a”

# Shell’s internal field separator
# The default value should be <space><tab><new-line>
IFS=$’ \t’ # == <space><tab>

# Current date and time
# OS clock
# DATE=`/bin/date +%Y%m%d-%H%M%S`
# Hardware RT chip
# DATE=`/sbin/hwclock –show`
# DATE=`echo $DATE | awk ‘{print $2 “-” $3 “-” $4 “-” $5}’`
# Use following to get well-formatted RT chip’s date and time
DATE=$(hwclock –show | cut -d ‘ ‘ -f 1,2,3,4,5,6,7)
DATE=$(date -d “$DATE” “+%Y%m%d-%H%M%S”)

# Log file name for tee(1)
# We may have LOG_FILE been empty string or unset/commented at all.
LOG_FILE=/home/was61/`/bin/basename $0`-${DATE}.log

# TMPDIR If set, Bash uses its value as the name of a directory in  which
#    Bash creates temporary files for the shell’s use.
#    But we need to assure it exists and has write permissions.
#    The same directory as backup destination, as a last resort.
test -d ${TMPDIR:=/tmp} && test -w $TMPDIR || TMPDIR=/var/tmp
test -d $TMPDIR && test -w $TMPDIR || TMPDIR=`/usr/bin/dirname $LOG_FILE`
# Temp file for wget output
TMP_WGET=${TMPDIR}/$$.wget.tmp

# Diagnostic messages level
# 0 == be silent
# 1 == normal messages
# 2 == additional debug messages
# 3 == yet more messages
DEBUG=3

DMGR=dmgr
# Regexp to look by “ps|grep” for dmgr process
DMGR_REGEXP=’java.*ibm.*websphere.*dmgr’
####DMGR_REGEXP=’bin.*httpd’

STOP_COMMAND=/opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/bin/stopServer.sh
START_COMMAND=/opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/bin/startServer.sh

WGET_URL=’https://websphere_node:9043/ibm/console/logon.jsp’
# –spider
#    Wget will not download the pages, just check that they are there
# -T seconds, –timeout=seconds
#    Set the network timeout to seconds seconds.  This is equivalent to
#    specifying –dns-timeout, –connect-timeout, and –read-timeout,
#    all at the same time
# –retry-connrefused
#    Consider “connection refused” a transient error and try again
# -t number, –tries=number
#    Set number of retries to number
# -w seconds, –wait=seconds
#    Wait the specified number of seconds between the retrievals
WGET_OPT=”–spider –timeout=10 –retry-connrefused –tries=3 –wait=5 –no-check-certificate”
if [[ $DEBUG -eq 0 ]]
then
# -q, –quiet
#    Turn off Wget’s output
WGET_OPT=”–quiet “$WGET_OPT
elif [[ $DEBUG -eq 1 ]]
then
# -nv, –no-verbose
#    Turn off verbose without being completely quiet (use -q for that),
#    which means that error messages and basic information still get
#    printed
WGET_OPT=”–no-verbose “$WGET_OPT
elif [[ $DEBUG -ge 2 ]] # 2+
then
# -v, –verbose
#    Turn on verbose output, with all the available data.
#    The default output is verbose
# -S, –server-response
#    Print the headers sent by HTTP servers and
#     responses sent by FTP servers
WGET_OPT=”–verbose –server-response “$WGET_OPT
fi

# Array declaration: sources for backup,
# may be several files and/or directories
typeset -a BACKUP_SRC=( /opt/IBM/WebSphere/AppServer/profiles/Profile01 )
####typeset -a BACKUP_SRC=(/home/spk/src1 /home/spk/src2)

# Array declaration: backup exclusion patterns
# May be emty list.
# May contain shell regexp patterns or plain strings,
# entire directory(-ies) exclusion is also possible..
####### Read “info tar”, section 6.5 describes tar patterns in details. ########
#    A PATTERN should be written according to shell syntax, using wildcard
# characters to effect globbing.  Most characters in the pattern stand
# for themselves in the matched string, and case is significant: `a’ will
# match only `a’, and not `A’.  The character `?’ in the pattern matches
# any single character in the matched string.  The character `*’ in the
# pattern matches zero, one, or more single characters in the matched
# string.  The character `\’ says to take the following character of the
# pattern _literally_; it is useful when one needs to match the `?’, `*’,
# `[‘ or `\’ characters, themselves.
#    Periods (`.’) or forward slashes (`/’) are not considered special
# for wildcard matches.  However, if a pattern completely matches a
# directory prefix of a matched string, then it matches the full matched
# string: excluding a directory also excludes all the files beneath it.
###############################################################################
# Log files are often very big so I added them in exclude list
typeset -a BACKUP_EXCLUDE=(/opt/IBM/WebSphere/AppServer/profiles/Profile01/Node/logs  /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/logs/dmgr)
####typeset -a BACKUP_EXCLUDE=(*.o *.a Makefile Makefile.am README)

# Backup destination file name (.tgz suffix and timestamp will be appended)
BACKUP_DST=/home/was61/dmgr_bkup

if [[ $DEBUG -ge 2 ]]
then
TAR_VERBOSE=”–verbose”
fi

#start log file (deleting previous one, if any)
echo ” *************  DMGR & profile backup started (at `date “+%d-%m-%Y %H:%M”`) Per OS Date ********** ” | $TEE $LOG_FILE
echo “———-> The Hardware Clock is (`/sbin/hwclock`) <———- ” | $TEE $LOG_FILE

################################################################################

found=`ps -ef | /bin/grep –invert-match grep\
| /bin/grep –ignore-case $DMGR_REGEXP`

if [[ -n $found ]]
then # dmgr is running
if [[ $DEBUG -ge 1 ]]
then
echo Running \”$DMGR\” found. | $TEE $LOG_FILE
if [[ $DEBUG -ge 2 ]]
then
count=`echo $found | wc -l`
if [[ $count -ge 2 ]]
then
echo Warning: found $count matching processes.\
| $TEE $LOG_FILE
if [[ $DEBUG -ge 3 ]]
then
echo $’\n’$found$’\n’ | $TEE $LOG_FILE
fi
fi
fi
echo Stopping \”$DMGR\” server… | $TEE $LOG_FILE
fi

if ! $STOP_COMMAND $DMGR
then
if [[ $DEBUG -ge 1 ]]
then
echo Can not stop \”$DMGR\ server. | $TEE $LOG_FILE
fi
exit 1
fi
else    # dmgr is not running
if [[ $DEBUG -ge 1 ]]
then
echo \”$DMGR\” is not running. | $TEE $LOG_FILE
fi
fi

if [[ $DEBUG -ge 1 ]]
then echo Starting \”$DMGR\” server… | $TEE $LOG_FILE
fi

if ! $START_COMMAND $DMGR
then
if [[ $DEBUG -ge 1 ]]
then
echo Can not start \”$DMGR\” server. | $TEE $LOG_FILE
fi
exit 1
fi

#——————————————————————————-

/usr/bin/wget $WGET_OPT $WGET_URL > $TMP_WGET 2>&1
res=$?
/bin/cat $TMP_WGET | $TEE $LOG_FILE
/bin/rm -f $TMP_WGET
if [[ $res -ne 0 ]]
then
if [[ $DEBUG -ge 1 ]]
then
echo wget returned $res | $TEE $LOG_FILE
echo Can not connect to \”$WGET_URL\” | $TEE $LOG_FILE
fi
exit 1
fi

#——————————————————————————-

if [[ $DEBUG -ge 1 ]]
then
echo Starting backup… | $TEE $LOG_FILE
fi

# Separate temporary output files for tar, gzip, exclusion list…
TMP_TAR=${TMPDIR}/$$.tar.tmp
TMP_GZIP=${TMPDIR}/$$.gzip.tmp
echo -n “gzip: ” > $TMP_GZIP

if [[ -n $BACKUP_EXCLUDE ]]
then # Build exclusions’ file
TMP_EXCLUDE=${TMPDIR}/$$.exclude.tmp
TAR_EXCLUDE=’–exclude-from’
echo -n > $TMP_EXCLUDE
for f in ${BACKUP_EXCLUDE[@]}
do
echo $f >> $TMP_EXCLUDE
done
fi

# Do we need absolute names to be stored in tar?
# Tar complains and strips leading slashes.
# -P , –absolute-names
#    Don’t strip leading ‘/’s from file names
/bin/tar c $TAR_VERBOSE $TAR_EXCLUDE $TMP_EXCLUDE –file – ${BACKUP_SRC[@]} \
2>$TMP_TAR | /usr/bin/gzip -v9 > $BACKUP_DST-$DATE.tgz 2>>$TMP_GZIP

res=$? # $res will be exit code of last program in the pipe, i. e. gzip.
/bin/cat $TMP_TAR | $TEE $LOG_FILE
/bin/cat $TMP_GZIP | $TEE $LOG_FILE
/bin/rm -f $TMP_TAR
/bin/rm -f $TMP_GZIP
/bin/rm -f $TMP_EXCLUDE

if [[ $res -ne 0 ]]
then
if [[ $DEBUG -ge 1 ]]
then
echo Backup failed. | $TEE $LOG_FILE
fi
exit 1
else
if [[ $DEBUG -ge 1 ]]
then
echo Backup succeeded. | $TEE $LOG_FILE
fi
exit 0
fi

#——————————————————————————-

exit 255

Jython Script to list websphere ports

Posted by Sagar Patil

Following Jython script will return port listings as below.

WASX7357I: By request, this scripting client is not connected to any server process.
Certain configuration and application operations will be available in local mode.
Server name: dmgr
 Node name: Server1_Manager
Port#|EndPoint Name
-----+-------------
 7277|CELL_DISCOVERY_ADDRESS
 9352|DCS_UNICAST_ADDRESS
 9043|WC_adminhost_secure
 9909|BOOTSTRAP_ADDRESS
 8879|SOAP_CONNECTOR_ADDRESS
 9100|ORB_LISTENER_ADDRESS
 9401|SAS_SSL_SERVERAUTH_LISTENER_ADDRESS
 9402|CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS
 9403|CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS
 9060|WC_adminhost

Server name: ihs
 Node name: Server1_Node01

Port#|EndPoint Name
-----+-------------
 90|WEBSERVER_ADDRESS
 9008|WEBSERVER_ADMIN_ADDRESS
#-------------------------------------------------------------------------------
# Name: ListPorts()
# From: WebSphere Application Server Administration using Jython
# Role: Display the Port Numbers configured for each AppServer
# History:
#   date   ver who what
# -------- --- --- ----------------------------------------------------
# 10/11/01 0.3 rag Fix - configIdAsDict()
# 10/10/30 0.2 rag Include showAsDict() so it doesn't need to be imported.
# 09/01/08 0.1 rag Minor cleanup for book
# 04/30/08 0.0 rag New - written for presentation at IMPACT 2008
#-------------------------------------------------------------------------------

import re;
import sys;

try :
 if 'AdminConfig' not in dir() :
 import AdminConfig;
except :
 print 'WebSphere Application Server scripting object unavailable: AdminConfig';
 sys.exit()

#-------------------------------------------------------------------------------
# Name: ListPorts()
# Role: Display all of the configured ports by named EndPoint for each server
#-------------------------------------------------------------------------------
def ListPorts() :
 SEs = AdminConfig.list( 'ServerEntry' ).splitlines();
 #-----------------------------------------------------------------------------
 # for each ServerEntry configuration ID
 #-----------------------------------------------------------------------------
 for SE in SEs :
 seDict = configIdAsDict( SE );
 SEname = seDict[ 'Name' ];
 SEnode = seDict[ 'nodes' ];
 print '''
Server name: %s
 Node name: %s\n
Port#|EndPoint Name
-----+-------------''' % ( SEname, SEnode );
 #---------------------------------------------------------------------------
 # For the given server (SE) get the list of NamedEndPoints
 # Then, for each NamedEndPoint, display the port # and endPointName values
 #---------------------------------------------------------------------------
 for NEP in AdminConfig.list( 'NamedEndPoint', SE ).splitlines() :
 NEPdict = showAsDict( NEP )
 EPdict  = showAsDict( NEPdict[ 'endPoint' ] )
 print '%5d|%s' % ( EPdict[ 'port' ], NEPdict[ 'endPointName' ] )

#-------------------------------------------------------------------------------
# Name: configIdAsDict()
# Role: Convert a configID into a dictionary
#  Fix: "name" can include a hyphen.
#-------------------------------------------------------------------------------
def configIdAsDict( configId ) :
 'configIdAsDict( configId ) - Given a configID, return a dictionary of the name/value components.'
 result  = {};                        # Result is a dictionary
 hier    = [];                        # Initialize to simplifiy checks
 try :                                # Be prepared for an error
 #-----------------------------------------------------------------
 # Does the specified configID match our RegExp pattern?
 # Note: mo == Match Object, if mo != None, a match was found
 #-----------------------------------------------------------------
 if ( configId[ 0 ] == '"' ) and ( configId[ -1 ] == '"' ) and ( configId.count( '"' ) == 2 ) :
 configId = configId[ 1:-1 ];
 mo = re.compile( r'^([-\w ]+)\(([^|]+)\|[^)]+\)$' ).match( configId );
 if mo :
 Name = mo.group( 1 );
 hier = mo.group( 2 ).split( '/' );
 if mo and ( len( hier ) % 2 == 0 ) :
 #---------------------------------------------------------------
 # hier == Extracted config hierarchy string
 #---------------------------------------------------------------
 for i in range( 0, len( hier ), 2 ) :
 name, value = hier[ i ], hier[ i + 1 ];
 result[ name ]  = value;
 if result.has_key( 'Name' ) :
 print '''%s: Unexpected situation - "Name" attribute conflict,
 Name = "%s", Name prefix ignored: "%s"''' % ( funName, result[ 'Name' ], Name );
 else :
 result[ 'Name' ] = Name;
 else :
 print '''configIdAsDict:
 Warning: The specified configId doesn\'t match the expected pattern,
 and is ignored.
 configId: "%(configId)s"''' % locals();
 except :
 ( kind, value ) = sys.exc_info()[ :2 ];
 print '''configIdAsDict: Unexpected exception.\n
 Exception  type: %(kind)s
 Exception value: %(value)s''' % locals();
 return result;

#-------------------------------------------------------------------------------
# Name: showAsDict()
# Role: Convert result of AdminConfig.show( configID ) to a dictionary
#-------------------------------------------------------------------------------
def showAsDict( configID ) :
 'Convert result of AdminConfig.show( configID ) to a dictionary & return it.'
 result = {}
 try :
 #---------------------------------------------------------------------------
 # The result of the AdminConfig.show() should be a string containing many
 # lines.  Each line of which starts and ends with brackets.  The "name"
 # portion should be separated from the associated value by a space.
 #---------------------------------------------------------------------------
 for item in AdminConfig.show( configID ).splitlines() :
 if ( item[ 0 ] == '[' ) and ( item[ -1 ] == ']' ) :
 ( key, value ) = item[ 1:-1 ].split( ' ', 1 )
 result[ key ] = value
 except NameError, e :
 print 'Name not found: ' + str( e )
 except :
 ( kind, value ) = sys.exc_info()[ :2 ]
 print 'Exception  type: ' + str( kind )
 print 'Exception value: ' + str( value )
 return result

#-------------------------------------------------------------------------------
# main entry point
#-------------------------------------------------------------------------------
if ( __name__ == '__main__' ) or ( __name__ == 'main' ) :
 ListPorts();
else :
 print 'This script should be executed, not imported.';

Adding Another IBM Http Server Instance at Websphere

Posted by Sagar Patil

While integrating SSO (Single Sign on) we decided to separate internal & external users. The idea was to use 2 separate URLs (internal/external) with different virtualhosts but I wanted independent control on HTTP server instances so went ahead with adding 2 separate HTTP servers. One at port 80 for internal users and another at port 8000 for external users.
I have HTTP server running at port 80 working with 2 JVMs on Websphere 6.1 vertical cluster.  I will now explain process to create & link new instance of IBM HTTP server at port 8000 with existing websphere JVMs.

Copy /opt/IBM/HTTPServer/conf/httpd.conf  as  /opt/IBM/HTTPServer/conf/httpd_opensso.conf

[spatil@Server1conf]$ netstat -an | grep 8000
Returned nothing so good to go

Edit httpd_opensso.conf  and change following references

< PidFile logs/httpd.pid
> PidFile logs/httpd_sso.pid

< Listen Server1.oracledbasupport.co.uk:80
< Listen Server1.oracledbasupport.co.uk:443
To
> Listen Server1.oracledbasupport.co.uk:8000
> Listen Server1.oracledbasupport.co.uk:4443

< #ErrorLog logs/error_log
To
> ErrorLog logs/error_sso_log

< LogLevel error
To
> LogLevel debug

< CustomLog “|/opt/IBM/HTTPServer/bin/rotatelogs /opt/IBM/HTTPServer/logs/access_log.log 86400” common
To
> CustomLog “|/opt/IBM/HTTPServer/bin/rotatelogs /opt/IBM/HTTPServer/logs/access_sso_log.log 86400” common

< <VirtualHost Server1.oracledbasupport.co.uk:443>
To
> <VirtualHost Server1.oracledbasupport.co.uk:4443>

<   LogLevel debug
To
>  LogLevel debug

<   CustomLog “|/opt/IBM/HTTPServer/bin/rotatelogs /opt/IBM/HTTPServer/logs/ssl_access.log 86400” SSL
to
>   CustomLog “|/opt/IBM/HTTPServer/bin/rotatelogs /opt/IBM/HTTPServer/logs/ssl_sso_access.log 86400” SSL

<   ErrorLog  “|/opt/IBM/HTTPServer/bin/rotatelogs /opt/IBM/HTTPServer/logs/ssl_error.log 86400”
To
>   ErrorLog  “|/opt/IBM/HTTPServer/bin/rotatelogs /opt/IBM/HTTPServer/logs/ssl_sso_error.log 86400”

Copy /opt/IBM/HTTPServer/Plugins/config/IHS  as /opt/IBM/HTTPServer/Plugins/config/openSSO.

Please change plugin logfile name at  “plugin-cfg.xml” – > Name=”/opt/IBM/WebSphere/Plugins/logs/IHS/http_plugin.log” to  http_sso_plugin.log

Update Pointers

WebSpherePluginConfig /opt/IBM/HTTPServer/Plugins/config/IHS/plugin-cfg.xml
to
WebSpherePluginConfig /opt/IBM/HTTPServer/Plugins/config/openSSO/plugin-cfg.xml

Update openSSO/plugin-cfg.xml  for log location

<Log LogLevel=”Debug” Name=”/opt/IBM/WebSphere/Plugins/logs/IHS/http_sso_plugin.log“/>

I have enabled DEBUG under plugin-cfg.xml to track any errors received . If you don’t want to do so please change LogLevel from “Debug” to “Error“

Login at deployment manager as Administrator and link the new instance of http server

The new server is added at DMGR, If you try and start new server thru DMGR it will return an error. The reason being, it is pointing to http.conf file and not httpd_sso.conf.

Link httpd_sso.conf to this new server.

Update Access & Error log files to view log messages from Deployment console


Go at shell prompt and start new HTTP server 8000 using

$sudo /opt/IBM/HTTPServer/bin/apachectl -k stop -f /opt/IBM/HTTPServer/conf/httpd_sso.conf
$sudo /opt/IBM/HTTPServer/bin/apachectl -k start -f /opt/IBM/HTTPServer/conf/httpd_sso.conf

Existing httpd server could be restarted using

$sudo /opt/IBM/HTTPServer/bin/apachectl -k stop
$ sudo /opt/IBM/HTTPServer/bin/apachectl -k start

See the httpd server is listening to both ports 80 & 8000

[spatil@Server1conf]$ netstat -an | grep 8000
tcp        0      0 172.30.9.31:8000            0.0.0.0:*                   LISTEN

[spatil@Server1conf]$ netstat -an | grep 80
tcp        0      0 172.30.9.31:8000            0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:780                 0.0.0.0:*                   LISTEN
tcp        0      0 172.30.9.31:80              0.0.0.0:*                   LISTEN

Now try and login at the front page using port http://Server1:8000 and it should return same result as port 80

The next thing to do is configure “Virtual Hosts” to connect on the new ports 8000 and SSL port 4443

Click on Default_Host & select Host Aliases

Now add ports 8000 & SSL port 4443 as listed below


Verify that Plug-in files have been updated by looking at “WebSpherePluginConfig : /opt/IBM/HTTPServer/Plugins/config/openSSO/plugin-cfg.xml
“ & WebSpherePluginConfig : /opt/IBM/HTTPServer/Plugins/config/IHS/plugin-cfg.xml


Check your plugin update interval  i.e. Web Servers > %Server_name%> Plug-in properties
If it’s not set to “Auto generate & propagate “, do -> Navigate to new Http server and Generate Plug-in & Propagate Plug-in

  • Refresh configuration interval

Specifies the time interval, in seconds, at which the plug-in should check the configuration file to see if updates or changes have occurred. The plug-in checks the file for any modifications that have occurred since the last time the plug-in configuration was loaded.

  • Automatically generate plug-in configuration file

To automatically generate a plug-in configuration file to a remote Web server:

  • This field must be checked.
  • The plug-in configuration service must be enabled

When the plug-in configuration service is enabled, a plug-in configuration file is automatically generated for a Web server whenever:

  • The WebSphere Application Server administrator defines new Web server.
  • An application is deployed to an Application Server.
  • An application is uninstalled.
  • A virtual host definition is updated and saved.

By default, this field is checked. Clear the check box if you want to manually generate a plug-in configuration file for this Web server.

  • Automatically propagate plug-in configuration file

Specifies whether or not you want the application server to automatically propagate a copy of a changed plug-in configuration file to a Web server:

  • This field must be checked.
  • The plug-in configuration service must be enabled
  • A WebSphere Application Server node agent must be on the node that hosts the Web server associated with the changed plug-in configuration file.

By default, this field is checked.

Note: The plug-in configuration file can only be automatically propagated to a remote Web server if that Web server is an IBM HTTP Server V6.1 Web server and its administration server is running.

Because the plug-in configuration service runs in the background and is not tied to the administrative console, the administrative console cannot show the results of the automatic propagation.


Verify pointers to new configuration files by looking at following details

Once done bounce Websphere & Httpd services to pick up new settings.
Check /opt/IBM/HTTPServer/Plugins/logs/openSSO/http_plugin.log to see the requests are being served successfully.

IBM ISA MustGather : Using IBM Support Assistant Lite (ISA Lite)

Posted by Sagar Patil

If you are fortunate enough to have IBM support , often you will be raising a PMR – Problem Record (IBM).

IBM uses a tool called  ISA lite very similar to Oracle RDA.  ISA(IBM support Assistant) can be used as client application on server itself or as a client-server application where client is nothing but ISA agents installed on IBM platform.  Here is what I did for my websphere 6.x ND server.

Download IBM Support Assistant Lite (ISA Lite)/Assistant Workbench from MustGather: Application Server, dmgr, and nodeagent start and stop problems

I downloaded “ISALiteForWebSphere_Unix_09162010.tar” for my Linux WAS ND 6.x.

Installing the Tool

In all cases, installation of the IBM Support Assistant Lite tool is simply a matter of extracting the files from the archived .zip file that you generated and transferred from the Workbench system. The files can be extracted to any file system location you choose on the system where you will be running the tool. This will create a subdirectory ISALite under your target directory.

Tool Usage

Setting the JAVA_HOME Environment Variable
Regardless of whether you will be using the IBM Support Assistant Lite tool in GUI mode or in command-line console mode, you use the same procedure to start it: you invoke the appropriate launch script from a command line.  In the case of a Windows system, these launch scripts are batch files.  For the other environments, they are shell scripts.

Since the tool is implemented as a Java application, it is necessary that Java can be located before the tool can start. If Java is not
available on the PATH, you will have to set the JAVA_HOME environment variable manually.
The IBM Support Assistant Lite tool requires a JRE at the level 1.4.2 or higher (1.5 or higher on Windows 7 64 bit), so you must first make sure that a suitable JRE is installed on the system where the tool will be running. If it is, then you will need to issue an operating-system-specific command to set the JAVA_HOME variable to point to this JRE. The Microsoft JVM/JDK and gij (GNU libgcj) are not supported.

For example, if on a Windows platform you have jre1.4.2 installed at c:\jre1.4.2, you would set JAVA_HOME using the following command:

SET JAVA_HOME=c:\jre1.4.2

NOTE: Do not use quotes in the value of the SET command, even if your value has whitespace characters.

On a Linux,, if you have the JRE installed in /opt/jre142, you would set JAVA_HOME using the following command:

was61@ jre]$ export JAVA_HOME=/opt/IBM/WebSphere/AppServer/java/jre
[was61@ jre]$ pwd
/opt/IBM/WebSphere/AppServer/java/jre
[was61@ jre]$ cd bin/
[was61@ bin]$ ./java -version
java version “1.5.0”
Java(TM) 2 Runtime Environment, Standard Edition (build pxa64devifx-20080908 (SR8a + IZ29767 + IZ30684 + IZ31214 + IZ31213))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux amd64-64 j9vmxa6423ifx-20080811 (JIT enabled)
J9VM – 20080809_21892_LHdSMr
JIT  – 20080620_1845_r8
GC   – 200806_19)
JCL  – 20080908a

Starting the Tool in Swing GUI Mode

You will need to issue the following launch script:

– For the Windows environment, it will be the runISALite.bat script in the tool’s \ISALite directory.
– For the Linux, AIX, HP-UX, and Solaris environments, it will be the runISALite.sh script in the tool’s /ISALite directory. Make sure that the runISALite.sh script has execute permission; you can use the
following command to give the file execute permission: chmod 755 runISALite.sh

The GUI mode is not supported in the iSeries and zSeries environments: see the section immediately following this one for information on how to start the tool in command-line console mode on iSeries and zSeries.

Starting the Tool in Command-Line Console Mode
If a GUI is not available, the tool should start in command line mode automatically.  If console mode is desired even if a GUI is available, specify “-console” on the command line.  In some instances, it will not be possible to determine that a GUI is not available and the tool will not start.  In these instances, the tool will need to be restarted using “-console”.

Files are written to the installation directory
By default, the ISA Lite installation directory is used for storing files created during execution.  On some systems, the ISA Lite installation directory will be read only.  In this instance, use the -useHome parameter.  This parameter will cause temporary files to be written to the systems temporary directory and persistent files written to the user home directory.

On how I used this tool see details at ISA Log.

If you explode zip file, you will see something similar as below collected by this tool.

C:\IBM Support Asst >tree /f
Folder PATH listing

C:.
├───autopdzip
│   │   autopd-collection-info.xml
│   │
│   └───autopd
│       │   inventory_rcf.xml
│       │
│       ├───log
│       │       autopdsetupinstance2011.01.24-13.48.59.615+0000.log
│       │       isalite-error0.xml
│       │       isalite-error1.xml
│       │       isalite-error2.xml
│       │       isalite-trace0.xml
│       │       isalite-trace1.xml
│       │       isalite-trace2.xml
│       │       Log_Viewer.xml
│       │       Trace_Viewer.xml
│       │       Viewer_Translations.js
│       │
│       └───wasexporter
│               Dmgr.websphere.configuration
│               Dmgr.websphere.log

├───Dmgr
│   ├───Server1_Cell
│   │   │   cell.xml
│   │   │   resources-cei.xml
│   │   │   resources-pme.xml
│   │   │   resources-pme502.xml
│   │   │   resources.xml
│   │   │   security.xml
│   │   │   variables.xml
│   │   │   virtualhosts.xml
│   │   │   ws-security.xml
│   │   │
│   │   └───Server1_Manager
│   │       │   node-metadata.properties
│   │       │   node.xml
│   │       │   serverindex.xml
│   │       │
│   │       └───dmgr
│   │               server-cei.xml
│   │               server-pme.xml
│   │               server-pme51.xml
│   │               server.xml
│   │
│   ├───logs
│   │   │   activity.log
│   │   │   wsadmin.traceout
│   │   │   wsadmin.valout
│   │   │
│   │   ├───dmgr
│   │   │       native_stderr.log
│   │   │       native_stdout.log
│   │   │       startServer.log
│   │   │       stopServer.log
│   │   │       SystemErr.log
│   │   │       SystemOut.log
│   │   │       SystemOut_11.01.21_22.15.08.log
│   │   │
│   │   └───ffdc
│   │           dmgr_0000000a_11.01.24_14.04.17_0.txt
│   │           dmgr_exception.log
│   │
│   ├───properties
│   │       sas.stdclient.properties
│   │       sas.tools.properties
│   │       sslbitsizes.properties
│   │       wsadmin.properties
│   │       wsjaas.conf
│   │       wsjaas_client.conf
│   │
│   └───tranlog
│       └───Server1_Cell
│           └───Server1_Manager
│               └───dmgr
│                   └───transaction
│                       ├───partnerlog
│                       │       log1
│                       │       log2
│                       │
│                       └───tranlog
│                               log1
│                               log2

└───WAS_General_Problem
│   aim-meta-data.html
│   aim-meta-data.xml
│   autopd-collection-environment-v2.xml
│   collector.jar
│   historyReport.html
│   levelreport.html
│   SizeOfCollection.txt
│   versionReport.html

├───Debug
│   ├───config
│   │       user_settings.txt
│   │       was-server-status-filled.jacl
│   │       was-start-status.txt
│   │       was-status.txt
│   │
│   └───jacl
│           was-filled-trace-restore.jacl
│           was-filled-trace.jacl
│           was-user-defaults-filled.jacl

└───PortChecker
profilePortChecker.html_PASS.html

Websphere : Using Collector.sh Tool for uploading details to IBM Support

Posted by Sagar Patil

The collector tool gathers information about your WebSphere Application Server installation and packages it in a Java archive (JAR) file that you can send to IBM Customer Support to assist in determining and analyzing your problem. Information in the JAR file includes logs, property files, configuration files, operating system and Java data, and the presence and level of each software prerequisite.

How to run it?

IBM Doc says, run the tool not from APPSERVER_INST_PATH/bin, but run from working directory.

mkdir -p /tmp/collector
/opt/IBM/WebSphere/AppServer/profiles/Profile61/Dmgr/bin/collector.sh

[was61@collector]$ ls -lrt
total 2560
-rw-r–r– 1 was61 web 2616675 Nov 30 12:07 Server1-Server1_Cell-Server1_Manager-Dmgr-WASenv.jar

Copy the Jar file created above on your windows desktop using winscp.

Use any utility to unjar contents of JAR file, I have used IZarc.

ger-Dmgr-WASenv>tree   ( Will list directories Created by IZarc )
Folder PATH listing
Volume serial number is 0070002E 4CEF:3F39
C:.
+---Server1
¦   +---debug
¦   +---Java
¦   +---MQ
¦   +---OS
¦   +---root
¦   ¦   +---etc
¦   ¦   +---opt
¦   ¦   ¦   +---IBM
¦   ¦   ¦       +---WebSphere
¦   ¦   ¦           +---AppServer
¦   ¦   ¦               +---bin
¦   ¦   ¦               +---configuration
¦   ¦   ¦               +---logs
¦   ¦   ¦               ¦   +---install
¦   ¦   ¦               ¦   +---manageprofiles
¦   ¦   ¦               ¦   ¦   +---Dmgr
¦   ¦   ¦               ¦   ¦   +---Node
¦   ¦   ¦               ¦   +---update
¦   ¦   ¦               ¦       +---6.1.0-WS-WAS-LinuxX64-FP0000021.install
¦   ¦   ¦               ¦       +---6.1.0-WS-WAS-LinuxX64-FP0000031.install
¦   ¦   ¦               ¦       +---6.1.0-WS-WASSDK-LinuxX64-FP0000021.install
¦   ¦   ¦               +---profiles
¦   ¦   ¦               ¦   +---Profile61
¦   ¦   ¦               ¦       +---Dmgr
¦   ¦   ¦               ¦           +---bin
¦   ¦   ¦               ¦           +---config
¦   ¦   ¦               ¦           ¦   +---cells
¦   ¦   ¦               ¦           ¦   ¦   +---Server1_Cell
¦   ¦   ¦               ¦           ¦   ¦       +---buses
¦   ¦   ¦               ¦           ¦   ¦       +---nodes
¦   ¦   ¦               ¦           ¦   ¦       +---wim
¦   ¦   ¦               ¦           ¦   +---templates
¦   ¦   ¦               ¦           ¦       +---buses
¦   ¦   ¦               ¦           ¦       ¦   +---default
¦   ¦   ¦               ¦           ¦       +---chains
¦   ¦   ¦               ¦           ¦       +---clusters
¦   ¦   ¦               ¦           ¦       +---default
¦   ¦   ¦               ¦           ¦       +---servertypes
¦   ¦   ¦               ¦           ¦       +---system
¦   ¦   ¦               ¦           ¦           +---nodes
¦   ¦   ¦               ¦           +---configuration
¦   ¦   ¦               ¦           +---logs
¦   ¦   ¦               ¦           ¦   +---Dmg
¦   ¦   ¦               ¦           ¦   +---Dmgr
¦   ¦   ¦               ¦           ¦   +---ffdc
¦   ¦   ¦               ¦           +---properties
¦   ¦   ¦               ¦               +---version
¦   ¦   ¦               +---properties
¦   ¦   ¦                   +---fsdb
¦   ¦   ¦                   ¦   +---_was_profile_default
¦   ¦   ¦                   +---version
¦   ¦   ¦                       +---history
¦   ¦   +---tmp
¦   ¦       +---collector
¦   +---WAS
+---META-INF
ger-Dmgr-WASenv>tree /f  ( Will list files created by IZarc )
Folder PATH listing
Volume serial number is 0070002E 4CEF:3F39
C:.
+---sagar-pc
¦   +---debug
¦   ¦       commands
¦   ¦       dmesg
¦   ¦       files
¦   ¦       getconf
¦   ¦       network
¦   ¦       system
¦   ¦
¦   +---Java
¦   ¦       Properties
¦   ¦
¦   +---MQ
¦   ¦       DspMq
¦   ¦       PubSub
¦   ¦       Ver
¦   ¦
¦   +---OS
¦   ¦       commands
¦   ¦       dmesg
¦   ¦       getconf
¦   ¦       installed
¦   ¦       network
¦   ¦       patches
¦   ¦       processes
¦   ¦       software
¦   ¦       system
¦   ¦       user
¦   ¦
¦   +---root
¦   ¦   +---etc
¦   ¦   ¦       hosts
¦   ¦   ¦       nsswitch.conf
¦   ¦   ¦
¦   ¦   +---opt
¦   ¦   ¦   +---IBM
¦   ¦   ¦       +---WebSphere
¦   ¦   ¦           +---AppServer
¦   ¦   ¦               +---bin
¦   ¦   ¦               ¦       setupCmdLine.sh
¦   ¦   ¦               ¦
¦   ¦   ¦               +---configuration
¦   ¦   ¦               ¦       config.ini
¦   ¦   ¦               ¦
¦   ¦   ¦               +---logs
¦   ¦   ¦               ¦   ¦   ModifyCloudscapePermission.log
¦   ¦   ¦               ¦   ¦   product_StartMenu.log
¦   ¦   ¦               ¦   ¦
¦   ¦   ¦               ¦   +---install
¦   ¦   ¦               ¦   ¦       installconfig.log.gz
¦   ¦   ¦               ¦   ¦       log.txt
¦   ¦   ¦               ¦   ¦       trace.txt.gz
¦   ¦   ¦               ¦   ¦       trace.xml.gz
¦   ¦   ¦               ¦   ¦
¦   ¦   ¦               ¦   +---manageprofiles
¦   ¦   ¦               ¦   ¦   ¦   create.log
¦   ¦   ¦               ¦   ¦   ¦   Dmgr_create.log
¦   ¦   ¦               ¦   ¦   ¦   Dmgr_getPath.log
¦   ¦   ¦               ¦   ¦   ¦   listProfiles.log
¦   ¦   ¦               ¦   ¦   ¦   Node_create.log
¦   ¦   ¦               ¦   ¦   ¦   Node_getPath.log
¦   ¦   ¦               ¦   ¦   ¦   validateRegistry.log
¦   ¦   ¦               ¦   ¦   ¦
¦   ¦   ¦               ¦   ¦   +---Dmgr
¦   ¦   ¦               ¦   ¦   ¦       clear_class_cache.log
¦   ¦   ¦               ¦   ¦   ¦       collect_metadata.log
¦   ¦   ¦               ¦   ¦   ¦       collect_node_metadata.log
¦   ¦   ¦               ¦   ¦   ¦       copyFiles.log
¦   ¦   ¦               ¦   ¦   ¦       createDefaultLibraries.log
¦   ¦   ¦               ¦   ¦   ¦       createDefaultServer.log
¦   ¦   ¦               ¦   ¦   ¦       createShortcutForProfile.log
¦   ¦   ¦               ¦   ¦   ¦       createVirtualHost.log
¦   ¦   ¦               ¦   ¦   ¦       createWebServer.log
¦   ¦   ¦               ¦   ¦   ¦       defaultapp_config.log
¦   ¦   ¦               ¦   ¦   ¦       defaultapp_deploy.log
¦   ¦   ¦               ¦   ¦   ¦       deploy_config.log
¦   ¦   ¦               ¦   ¦   ¦       filetransfer_config.log
¦   ¦   ¦               ¦   ¦   ¦       hamanager_config.log
¦   ¦   ¦               ¦   ¦   ¦       keyGeneration.log
¦   ¦   ¦               ¦   ¦   ¦       mejb_config.log
¦   ¦   ¦               ¦   ¦   ¦       SetSecurity.log
¦   ¦   ¦               ¦   ¦   ¦       SIBDefineChains.log
¦   ¦   ¦               ¦   ¦   ¦       SIBDeployRA.log
¦   ¦   ¦               ¦   ¦   ¦       webui_config.log
¦   ¦   ¦               ¦   ¦   ¦       wsadminListener.log
¦   ¦   ¦               ¦   ¦   ¦
¦   ¦   ¦               ¦   ¦   +---Node
¦   ¦   ¦               ¦   ¦           clear_class_cache.log
¦   ¦   ¦               ¦   ¦           collect_metadata.log
¦   ¦   ¦               ¦   ¦           copyFiles.log
¦   ¦   ¦               ¦   ¦           createShortcutForProfile.log
¦   ¦   ¦               ¦   ¦           createVirtualHost.log
¦   ¦   ¦               ¦   ¦           hamanager_config.log
¦   ¦   ¦               ¦   ¦           keyGeneration.log
¦   ¦   ¦               ¦   ¦           SetSecurity.log
¦   ¦   ¦               ¦   ¦           wsadminListener.log
¦   ¦   ¦               ¦   ¦
¦   ¦   ¦               ¦   +---update
¦   ¦   ¦               ¦       ¦   update.lock
¦   ¦   ¦               ¦       ¦
¦   ¦   ¦               ¦       +---6.1.0-WS-WAS-LinuxX64-FP0000021.install
¦   ¦   ¦               ¦       ¦       relabel.stderr.gz
¦   ¦   ¦               ¦       ¦       relabel.stdout.gz
¦   ¦   ¦               ¦       ¦       updateconfig.log.gz
¦   ¦   ¦               ¦       ¦       updatelog.txt
¦   ¦   ¦               ¦       ¦       updatetrace.log.gz
¦   ¦   ¦               ¦       ¦
¦   ¦   ¦               ¦       +---6.1.0-WS-WAS-LinuxX64-FP0000031.install
¦   ¦   ¦               ¦       ¦       relabel.stderr.gz
¦   ¦   ¦               ¦       ¦       relabel.stdout.gz
¦   ¦   ¦               ¦       ¦       updateconfig.log.gz
¦   ¦   ¦               ¦       ¦       updatelog.txt
¦   ¦   ¦               ¦       ¦       updatetrace.log.gz
¦   ¦   ¦               ¦       ¦
¦   ¦   ¦               ¦       +---6.1.0-WS-WASSDK-LinuxX64-FP0000021.install
¦   ¦   ¦               ¦               relabel.stderr.gz
¦   ¦   ¦               ¦               relabel.stdout.gz
¦   ¦   ¦               ¦               updatelog.txt
¦   ¦   ¦               ¦
¦   ¦   ¦               +---profiles
¦   ¦   ¦               ¦   +---Profile61
¦   ¦   ¦               ¦       +---Dmgr
¦   ¦   ¦               ¦           +---bin
¦   ¦   ¦               ¦           ¦       setupCmdLine.sh
¦   ¦   ¦               ¦           ¦
¦   ¦   ¦               ¦           +---config
¦   ¦   ¦               ¦           ¦   +---cells
¦   ¦   ¦               ¦           ¦   ¦   ¦   plugin-cfg.xml
¦   ¦   ¦               ¦           ¦   ¦   ¦
¦   ¦   ¦               ¦           ¦   ¦   +---sagar-pc_Cell
¦   ¦   ¦               ¦           ¦   ¦       ¦   admin-authz.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   cell.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   fileRegistry.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   filter.policy
¦   ¦   ¦               ¦           ¦   ¦       ¦   multibroker.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   namestore.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   naming-authz.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   pmirm.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   resources-cei.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   resources-pme.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   resources.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   security.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   variables.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   virtualhosts.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦   ws-security.xml
¦   ¦   ¦               ¦           ¦   ¦       ¦
¦   ¦   ¦               ¦           ¦   ¦       +---buses
¦   ¦   ¦               ¦           ¦   ¦       +---nodes
¦   ¦   ¦               ¦           ¦   ¦       +---wim
¦   ¦   ¦               ¦           ¦   +---templates
¦   ¦   ¦               ¦           ¦       +---buses
¦   ¦   ¦               ¦           ¦       ¦   +---default
¦   ¦   ¦               ¦           ¦       +---chains
¦   ¦   ¦               ¦           ¦       ¦       hamanager-chains.xml
¦   ¦   ¦               ¦           ¦       ¦       orb-chains.xml
¦   ¦   ¦               ¦           ¦       ¦       proxy-chains.xml
¦   ¦   ¦               ¦           ¦       ¦       sibservice-chains.xml
¦   ¦   ¦               ¦           ¦       ¦       sipcontainer-chains.xml
¦   ¦   ¦               ¦           ¦       ¦       sipproxy-chains.xml
¦   ¦   ¦               ¦           ¦       ¦       webcontainer-chains.xml
¦   ¦   ¦               ¦           ¦       ¦
¦   ¦   ¦               ¦           ¦       +---clusters
¦   ¦   ¦               ¦           ¦       +---default
¦   ¦   ¦               ¦           ¦       ¦       admin-authz.xml
¦   ¦   ¦               ¦           ¦       ¦       cluster-components.xml
¦   ¦   ¦               ¦           ¦       ¦       coregroup-template.xml
¦   ¦   ¦               ¦           ¦       ¦       resource-templates.xml
¦   ¦   ¦               ¦           ¦       ¦       virtualhosts.xml
¦   ¦   ¦               ¦           ¦       ¦
¦   ¦   ¦               ¦           ¦       +---servertypes
¦   ¦   ¦               ¦           ¦       +---system
¦   ¦   ¦               ¦           ¦           ¦   multibroker.xml
¦   ¦   ¦               ¦           ¦           ¦   sibjmsresources-ra.xml
¦   ¦   ¦               ¦           ¦           ¦
¦   ¦   ¦               ¦           ¦           +---nodes
¦   ¦   ¦               ¦           +---configuration
¦   ¦   ¦               ¦           ¦       .lastTouched
¦   ¦   ¦               ¦           ¦
¦   ¦   ¦               ¦           +---logs
¦   ¦   ¦               ¦           ¦   ¦   AboutThisProfile.txt
¦   ¦   ¦               ¦           ¦   ¦   activity.log
¦   ¦   ¦               ¦           ¦   ¦   iscinstall.log
¦   ¦   ¦               ¦           ¦   ¦   UpdatePK91844.log
¦   ¦   ¦               ¦           ¦   ¦   wsadmin.traceout
¦   ¦   ¦               ¦           ¦   ¦   wsadmin.valout
¦   ¦   ¦               ¦           ¦   ¦
¦   ¦   ¦               ¦           ¦   +---Dmg
¦   ¦   ¦               ¦           ¦   ¦       stopServer.log
¦   ¦   ¦               ¦           ¦   ¦
¦   ¦   ¦               ¦           ¦   +---Dmgr
¦   ¦   ¦               ¦           ¦   ¦       Dmgr.pid
¦   ¦   ¦               ¦           ¦   ¦       fileRepositoryCellLevel.epoch
¦   ¦   ¦               ¦           ¦   ¦       native_stderr.log
¦   ¦   ¦               ¦           ¦   ¦       native_stdout.log
¦   ¦   ¦               ¦           ¦   ¦       startServer.log
¦   ¦   ¦               ¦           ¦   ¦       stopServer.log
¦   ¦   ¦               ¦           ¦   ¦       SystemErr.log
¦   ¦   ¦               ¦           ¦   ¦       SystemOut.log
¦   ¦   ¦               ¦           ¦   ¦       SystemOut_10.11.18_16.56.13.log
¦   ¦   ¦               ¦           ¦   ¦
¦   ¦   ¦               ¦           ¦   +---ffdc
¦   ¦   ¦               ¦           ¦           Dmgr_0000000a_10.11.30_09.52.19_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000000a_10.11.30_10.16.49_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000000a_10.11.30_10.27.16_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000000e_10.11.30_09.52.28_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000000e_10.11.30_10.16.55_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000000f_10.11.30_10.27.21_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_1.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_10.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_2.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_3.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_4.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_5.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_6.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_7.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_8.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000001e_10.11.30_10.27.43_9.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.33_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.33_1.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.33_2.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.33_3.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.33_4.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.33_5.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.34_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.34_1.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.34_2.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.34_3.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_09.53.34_4.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_1.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_10.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_2.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_3.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_4.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_5.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_6.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_7.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_8.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000020_10.11.30_10.17.12_9.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000028_10.11.30_09.39.17_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000028_10.11.30_09.39.17_1.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000028_10.11.30_09.39.17_2.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000028_10.11.30_09.39.17_3.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000028_10.11.30_09.39.17_4.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000028_10.11.30_09.39.17_5.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000028_10.11.30_09.39.17_6.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000002a_10.11.30_10.06.38_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000002a_10.11.30_10.06.38_1.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000002a_10.11.30_10.06.38_2.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000002a_10.11.30_10.06.38_3.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000002a_10.11.30_10.06.38_4.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000002a_10.11.30_10.06.38_5.txt
¦   ¦   ¦               ¦           ¦           Dmgr_0000002a_10.11.30_10.06.38_6.txt
¦   ¦   ¦               ¦           ¦           Dmgr_00000032_10.11.30_10.21.45_0.txt
¦   ¦   ¦               ¦           ¦           Dmgr_exception.log
¦   ¦   ¦               ¦           ¦           Dmgr_exception_10.11.30_3.58.27.log
¦   ¦   ¦               ¦           ¦
¦   ¦   ¦               ¦           +---properties
¦   ¦   ¦               ¦               ¦   client.policy
¦   ¦   ¦               ¦               ¦   nodeportdef.props
¦   ¦   ¦               ¦               ¦   portdef.props
¦   ¦   ¦               ¦               ¦   sas.client.props
¦   ¦   ¦               ¦               ¦   sas.server.props.P
¦   ¦   ¦               ¦               ¦   sas.stdclient.properties
¦   ¦   ¦               ¦               ¦   sas.tools.properties
¦   ¦   ¦               ¦               ¦   server.policy
¦   ¦   ¦               ¦               ¦   soap.client.props
¦   ¦   ¦               ¦               ¦   ssl.client.props.P
¦   ¦   ¦               ¦               ¦   sslbitsizes.properties
¦   ¦   ¦               ¦               ¦   was.policy
¦   ¦   ¦               ¦               ¦   wsadmin.properties
¦   ¦   ¦               ¦               ¦   wsjaas.conf
¦   ¦   ¦               ¦               ¦   wsjaas_client.conf
¦   ¦   ¦               ¦               ¦
¦   ¦   ¦               ¦               +---version
¦   ¦   ¦               ¦                       profile.version
¦   ¦   ¦               ¦
¦   ¦   ¦               +---properties
¦   ¦   ¦                   ¦   converter.properties
¦   ¦   ¦                   ¦   dfltbndngs.dtd
¦   ¦   ¦                   ¦   dynaedge-cfg.xml
¦   ¦   ¦                   ¦   encoding.properties
¦   ¦   ¦                   ¦   ffdcRun.properties
¦   ¦   ¦                   ¦   ffdcStart.properties
¦   ¦   ¦                   ¦   ffdcStop.properties
¦   ¦   ¦                   ¦   jmx.properties
¦   ¦   ¦                   ¦   profileRegistry.xml
¦   ¦   ¦                   ¦   TraceSettings.properties
¦   ¦   ¦                   ¦   was.license
¦   ¦   ¦                   ¦   wasprofile.properties
¦   ¦   ¦                   ¦
¦   ¦   ¦                   +---fsdb
¦   ¦   ¦                   ¦   ¦   Dmgr.sh
¦   ¦   ¦                   ¦   ¦   Node.sh
¦   ¦   ¦                   ¦   ¦
¦   ¦   ¦                   ¦   +---_was_profile_default
¦   ¦   ¦                   ¦           default.sh
¦   ¦   ¦                   ¦
¦   ¦   ¦                   +---version
¦   ¦   ¦                       ¦   WAS.product
¦   ¦   ¦                       ¦
¦   ¦   ¦                       +---history
¦   ¦   ¦                               6.1.0-WS-WAS-LinuxX64-FP0000021.ptfApplied
¦   ¦   ¦                               6.1.0-WS-WAS-LinuxX64-FP0000021.ptfDriver
¦   ¦   ¦                               6.1.0-WS-WASSDK-LinuxX64-FP0000021.ptfApplied
¦   ¦   ¦                               6.1.0-WS-WASSDK-LinuxX64-FP0000021.ptfDriver
¦   ¦   ¦                               event.history
¦   ¦   ¦                               sdk.FP61021.ptfApplied
¦   ¦   ¦                               sdk.FP61021.ptfDriver
¦   ¦   ¦                               was.embed.common.FP61021.ptfApplied
¦   ¦   ¦                               was.embed.common.FP61021.ptfDriver
¦   ¦   ¦                               was.embed.FP61021.ptfApplied
¦   ¦   ¦                               was.embed.FP61021.ptfDriver
¦   ¦   ¦                               was.itlm.nd.FP61021.ptfApplied
¦   ¦   ¦                               was.itlm.nd.FP61021.ptfDriver
¦   ¦   ¦                               was.license.FP61021.ptfApplied
¦   ¦   ¦                               was.license.FP61021.ptfDriver
¦   ¦   ¦                               was.ndonly.common.FP61021.ptfApplied
¦   ¦   ¦                               was.ndonly.common.FP61021.ptfDriver
¦   ¦   ¦                               was.ndonly.FP61021.ptfApplied
¦   ¦   ¦                               was.ndonly.FP61021.ptfDriver
¦   ¦   ¦                               was.server.common.FP61021.ptfApplied
¦   ¦   ¦                               was.server.common.FP61021.ptfDriver
¦   ¦   ¦                               was.server.FP61021.ptfApplied
¦   ¦   ¦                               was.server.FP61021.ptfDriver
¦   ¦   ¦
¦   ¦   +---tmp
¦   ¦       +---collector
¦   ¦               Collector.log
¦   ¦
¦   +---WAS
¦           filedir
¦           filefull
¦           fileperm
¦
+---META-INF
 MANIFEST.MF

The collector summary option produces version information for the WebSphere Application Server product and the operating system as well as other information. It stores the information in the Collector_Summary.txt file and writes it to the console.

[was61@Server1collector]$ /opt/IBM/WebSphere/AppServer/profiles/Profile61/Dmgr/bin/collector.sh -summary
en_US.UTF-8
2010/11/30 11:42:39 URL is: jar:file:/opt/IBM/WebSphere/AppServer/plugins/com.ibm.ws.runtime_6.1.0.jar!/com/ibm/websphere/rastools/collector/Collector.class

The Collector program should be run as user id root because some of
the commands to be executed require root authority.  However, if you
proceed, much of what Collector does will work just fine.

Press Enter to continue or type "exit" to quit.

Hostname: Server1  Nodename: Server1_Manager
--------------------------------------------------------------------------------
IBM WebSphere Application Server Product Installation Status Report
--------------------------------------------------------------------------------
Report at date and time November 30, 2009 11:42:41 AM GMT
Installation
--------------------------------------------------------------------------------
Product Directory        /opt/IBM/WebSphere/AppServer
Version Directory        /opt/IBM/WebSphere/AppServer/properties/version
DTD Directory            /opt/IBM/WebSphere/AppServer/properties/version/dtd
Log Directory            /opt/IBM/WebSphere/AppServer/logs
Backup Directory         /opt/IBM/WebSphere/AppServer/properties/version/nif/backup
TMP Directory            /tmp
Product List
--------------------------------------------------------------------------------
ND                       installed
Installed Product
--------------------------------------------------------------------------------
Name                     IBM WebSphere Application Server - ND
Version                  6.1.0.31
ID                       ND
Build Level              cf311015.02
Build Date               4/15/10
--------------------------------------------------------------------------------
End Installation Status Report
--------------------------------------------------------------------------------
Java Full Version:
J2RE 1.5.0 IBM J9 2.3 Linux amd64-64 j9vmxa6423ifx-20080811 (JIT enabled)
J9VM - 20080809_21892_LHdSMr
JIT  - 20080620_1845_r8
GC   - 200806_19
Operating System: Linux, 2.6.18-194.8.1.el5

Websphere : Plug-in Workload Management Failover

Posted by Sagar Patil

We have a 2 node clustered websphere 6.x vertical cluster . Number of times we see the system going down and coming back up in less than 5 mins.

Investigation:

Websphere  uses SESSIONID to divert user sessions to relevant JVMs . Plug-in polling interval keeps track of status of JVMs (up/down/hung).  Under situation we had, HTTP plug-in should direct user session to another JVM (JVM2 here) . But I think it didn’t .  To do so, we need to configure parameter “ConnectTimeout”  to force it to look for another server.

“ConnectTimeout” makes plug-in use a non-smoking connect.
Setting ConnectTimeout to a value of zero (default here) is equal to not specifying ConnectTimeout attribute, that is, the plug-in performs a blocking connect and waits until the operating system times out  (For Linux it can take up to 5-10 minutes for the Socket to time-out).

ConnectTimeout

The ConnectTimeout attribute of a Server element enables the HTTP plug-in to perform non-blocking connections with a backend cluster member. Non-blocking connections are beneficial when the HTTP plug-in is unable to contact the destination to determine if the port is available or unavailable for a particular cluster member.

If no ConnectTimeout value is specified, the HTTP plug-in performs a blocking connect in which the HTTP plug-in sits until an operating system TCP timeout occurs (as long as 2 minutes depending on the platform) and allows the HTTP plug-in to mark the cluster member unavailable. A value of 0 causes the HTTP plug-in to perform a blocking connect. A value greater than 0 specifies the number of seconds you want the HTTP plug-in to wait for a successful connection. If a connection does not occur after that time interval, the HTTP plug-in marks the cluster member unavailable and fails over to one of the other cluster members defined in the cluster. 

Caution: In an environment with busy workload or a slow network connection, setting this value too low could make the HTTP plug-in mark a cluster member down falsely. Therefore, caution should be used whenever choosing a value for ConnectTimeout.

Set attribute “ConnectTimeout” to an integer value greater than zero to determine how long plug-in should wait for a response when attempting to connect to a server.  A setting of 15 means that the plug-in waits for 15 seconds to time out than 5-10 minutes thru OS settings.

<Server CloneID="10k66djk2" ConnectTimeout="10" ExtendedHandshake="false" LoadBalanceWeight="1000" MaxConnections="0" Name="Server1_WebSphere_Appserver" WaitForContinue="false">
<Transport Hostname="server1.domain.com" Port="9091" Protocol="http"/>
</Server>

Jython script to Display Websphere Topology

Posted by Sagar Patil

Following Script will display attributes for each configuration item/element displayed at each “level”

def show( hier, here = 0, scope = None ) :
if here < len( hier ) :
pad, Type = here * ‘  ‘, hier[ here ];
for e in AdminConfig.list( Type, scope ).splitlines() :
name  = AdminConfig.showAttribute( e, ‘name’ );
print ‘%s%s : %s ‘ % ( pad, Type, name );
if here < len( hier ) :
show( hier, here + 1, e );
show( [ ‘Cell’, ‘Node’, ‘Server’ ] );

wsadmin>show( [ ‘Cell’, ‘Node’, ‘Server’ ] );
Cell : Server1_Cell
Node : Server1_Manager
Server : dmgr
Node : Server1_Node01
Server : ihs
Server : nodeagent
Server : IHS2
Server : server_member1
Server : server_member2

Websphere : Installing default Applications

Posted by Sagar Patil

After successful websphere install one will see “first steps” page as below.

Click on “Samples Gallery” which should pop up an html page with list of application samples

Naviagte to $WAS_HOME/samples and run install.bat (Windows) else install.sh (linux).

This script will install number of default applications listed below

“Startup” applications by selecting application & clicking on “start” option at Deployment Manager. Once done visit following URL and explore apps you wish

Websphere: Purging first failure data capture log files

Posted by Sagar Patil

The first failure data capture (FFDC) feature preserves the information that is generated from a processing failure and returns control to the affected engines. The captured data is saved in a log file for analyzing the problem. FFDC is intended primarily for use by IBM Service.

Use following steps to configure number of days between FFDC log file purges. The value is in days.

The FFDC file management function removes the FFDC log files that have reached the maximum age and generates a message in the SystemOut.log file.

Procedure :

  1. Open the ffdcRun.properties file. The file is located in the $WAS_ROOT/properties  directory
  2. Change the value for the ExceptionFileMaximumAge property to the number of days between the FFDC log file purges. The value of the ExceptionFileMaximumAge property must be a positive number. The default is seven days. For example, ExceptionFileMaximumAge = 3 sets the default time to three days. The FFDC log file is purged after three days
  3. Save the ffdcRun.properties file and exit
  4. Repeat the previous steps to modify the ffdcStart.properties and ffdcStop.properties files

Websphere : Web Server Plug-In Retry Interval

Posted by Sagar Patil

When stopping and restarting application servers, it is important to consider the correlation with the Web server plug-in retry interval. This is especially important in an environment with only a few application servers. You need to understand the rate between starting and stopping application servers in a cluster and the retry interval so that you do not get HTTP request failures when you stop application servers in a cluster.

The retry interval tells the Web server plug-in how long to wait before retrying an HTTP request against a specific application server. If you stop and start application servers in a cluster faster than the retry rate, then a situation can occur where the plug-in assumes that two or more application server are down, when in fact they are not.

Here is an example of this situation. Let us assume following:

  • The retry interval is set to 60 seconds (which is the default)
  • There are two application servers in the cluster
  • We are running a servlet application
  • We alternate taking the two servers down. We take them down and restart them in a 45 second interval.

The Web server plug-in sends a request to a specific application server and if that server is unavailable, it marks it as down.

The request is then sent to the next application server in the cluster. The plug-in does not retry the marked down server until the retry interval has passed.

In our example, because the retry interval is longer than the recycle time, there are time slots where one server’s retry count has not yet expired. So, the plug-in does not retry that server (even though it might be back up), and the other server is down. Thus, there might be a time slot where the Web server plug-in thinks that both servers are down.

Figure illustrates this example

In an environment with two application servers per cluster, the plug-in cannot forward the request to any application server and, thus, returns an HTTP request failure. If there are more than two application servers in the cluster, the plug-in routes the request to the remaining active servers in the cluster. However, depending on the difference between the retry interval and the application server recycle time, there might be more than two application servers that are perceived to be unavailable at any given time.
To avoid this problem, increase the recycle rate to be at least as long in duration as the retry interval. If your retry interval is 60 seconds, then delay at least 60 seconds between starting one application server and stopping another application server.

You can verify the retry interval setting either by using the Administrative Console

(Servers → Web servers → WebServer_Name → Plug-in properties → Request Routing)    or

by looking at the plugin_cfg.xml file

If it is not possible to add an appropriate delay between recycling servers, then ensure that your remaining application server environment has the capacity to handle requests for the application assuming that two (or more) of the application servers are unavailable at the same time. So, there are two maxims to remember:

  1. Do not stop an application server in a shorter duration than the retry interval.
  2. If you stop an application server in a shorter duration than the retry interval, ensure that the set of remaining active servers can handle the capacity of having two application servers unavailable for a period of time equal to the retry interval.

Jython Scripts for Websphere Administration

Posted by Sagar Patil

Download them from  http://www.ibm.com/developerworks/websphere/library/samples/SampleScripts.html

ex1.py  – Create and modify a server, load an application onto the server, and start the server.
ex2.py  – Reverse of ex1.p1 Stop a server on a given node, uninstalls the given application, and removes the server from the configuration.
ex3.py  – Creates a cluster and starts the server
ex4.py  – Demonstrate the invocation of some useful problem
determination actions involving traces and thread dumps.
ex5.py  – Demonstrate the invocation of various application install commands.
ex6.py  – Produce a short summary of some configuration and runtime information about the WebSphere installation.
ex7.py  – Create a JDBCProvider object using a template.
ex8.py  – Demonstrate J2C Security configuration, including the installation of a J2CResourceAdapter and creation of a J2CConnectionFactory.
ex9.py  – Demonstrate the creation of a JDBCProvider, DataSource and CMPConnectorFactory objects
ex10.py – Demonstrate the creation and use of a variable that is used in the creation of a URLProvider object.
ex11.py – Demonstrate the setting of various port numbers
ex12.py – Demonstrate methods for updating configuration attributes that are lists

Websphere 6.1 Network Deployment RHEL 5.x – Silent Install

Posted by Sagar Patil

Check if previous version installed by root

If WAS was previously installed as root, it would have created the temp dir /tmp/niflogs, owned by root. When you install as was61, it needs to write to this dir, so remember to chown / chmod this dir, or the install will fail in a very obscure way.

Uninstall WAS

First uninstall WAS if already installed (should be done as the same user account as originally installed it – probably root. Future installs should be installed as an application user, eg was61)

Uninstall app server

cd /opt/IBM/WebSphere/AppServer/uninstall
./uninstall -silent
cd ..
rm -Rf /opt/IBM/WebSphere/AppServer/*

Uninstall http server

cd /opt/IBM/HTTPServer/uninstall
./uninstall -silent
cd ..
rm -Rf /opt/IBM/HTTPServer/*

Uninstall updater

cd /opt/IBM/WebSphere/UpdateInstaller/uninstall
./uninstall -silent

cd ..
rm -Rf /opt/IBM/WebSphere/UpdateInstaller/*

Start installation as user was61

Change perms for http logs , first as root need to change ownerships on log dir: chown was61:web HTTPServer

Install IHS

As user was61: install ihs

cd /opt/IBM/source/webserver/IHS

vi responsefile.txt

-OPT silentInstallLicenseAcceptance=”true”
-OPT allowNonRootSilentInstall=”true”
-OPT disableOSPrereqChecking=”true”
-OPT installLocation=”/opt/IBM/HTTPServer”
-OPT installGSKit=”true”
-OPT httpPort=”80″
-OPT adminPort=”8008″
-OPT createAdminAuth=”false”
-OPT installPlugin=”true”
-OPT webserverDefinition=”ihs”
-OPT washostname=”server1″

Edit to change hostnames, also add non-root silent install  by adding -OPT allowNonRootSilentInstall=”true”

run  $./install -options responsefile.txt -silent

Check log files

cd /opt/IBM/HTTPServer/logs/install

While installation is going on you will see a filename “installconfig.log” and later log.txt

[was61@install]$ tail -f installconfig.log
<method>messageLogged</method>
<thread>11</thread>
<message>Execute:Java13CommandLauncher: Executing ‘/opt/IBM/source/webserver/plugin/install’ with arguments:
‘-silent’
‘-options’
‘/opt/IBM/HTTPServer/properties/version/nif/config/install/null1014430787’
The ‘ characters around the executable and arguments are
not part of the command.</message>
</record>

When log.txt is available search for word “INSTCONFSUCCESS” for successful installation.

(Nov 15, 2008 10:30:19 AM), Process, com.installshield.product.service.product.PureJavaProductServiceImpl, dbg.install, JVM memory after installing LA Files (lafiles): free=25386864 total=50331648
(Nov 15, 2008 10:30:19 AM), Process, com.installshield.product.service.registry.PureJavaRegistryServiceImpl, dbg.registry, writing VPD to /home/was61/vpd.properties
(Nov 15, 2008 10:30:23 AM), Process, com.installshield.wizardx.conditions.PlatformWizardBeanCondition, dbg.platform, target platform: name=”Linux” version=”2.6.18-194.8.1.el5″ arch=”amd64″
(Nov 15, 2008 10:30:23 AM), Process, com.installshield.wizardx.conditions.PlatformWizardBeanCondition, dbg.platform, condition platform: name=”Windows .*” version=”.” arch=”.”
(Nov 15, 2008 10:30:23 AM), Process, com.ibm.ws.install.ni.ismp.actions.SettleNIFRegistryAction, msg1, Current install/uninstall process is successful. Process type is: install
(Nov 15, 2008 10:30:23 AM), Process, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=0
(Nov 15, 2008 10:30:23 AM), Process, com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCESS

Start httpd as root:

[@Server1 ~]$ ps -ef | grep httpd
18709 10653  0 10:37 pts/1    00:00:00 grep httpd
[@Server1 ~]$ sudo /opt/IBM/HTTPServer/bin/apachectl -k start
[@Server1 ~]$ ps -ef | grep httpd
root     18713     1  3 10:37 ?        00:00:00 /opt/IBM/HTTPServer/bin/httpd -d /opt/IBM/HTTPServer -k start
nobody   18714 18713  0 10:37 ?        00:00:00 /opt/IBM/HTTPServer/bin/httpd -d /opt/IBM/HTTPServer -k start
nobody   18715 18713  0 10:37 ?        00:00:00 /opt/IBM/HTTPServer/bin/httpd -d /opt/IBM/HTTPServer -k start
nobody   18717 18713  0 10:37 ?        00:00:00 /opt/IBM/HTTPServer/bin/httpd -d /opt/IBM/HTTPServer -k start

Let’s see if http server is working for us . http://%Server_name%:80 should return

Install WAS as was61 :

cd /opt/IBM/source/websphere/WAS

vi responsefile.nd.txt

-OPT silentInstallLicenseAcceptance=”true”
-OPT allowNonRootSilentInstall=”true”
-OPT disableOSPrereqChecking=”true”
-OPT installType=”installNew”
-OPT feature=”noFeature”
-OPT installLocation=”/opt/IBM/WebSphere/AppServer”
-OPT profileType=”cell”
-OPT PROF_enableAdminSecurity=”true”
-OPT PROF_adminUserName=”Admin”
-OPT PROF_adminPassword=”admin”
-OPT PROF_dmgrProfileName=”dmgr”
-OPT PROF_appServerProfileName=”Node”
-OPT PROF_appServerNodeName=”Server1_Node01″
-OPT PROF_isDefault=”true”
-OPT PROF_hostName=”Server1″
-OPT PROF_nodeName=”Server1_Manager”
-OPT PROF_cellName=”Server1_Cell”
-OPT PROF_defaultPorts=”true”
-OPT PROF_validatePorts=”true”
-OPT PROF_webServerCheck=”true”
-OPT PROF_webServerType=”IHS”
-OPT PROF_webServerOS=”linux”
-OPT PROF_webServerName=”ihs-prpc”
-OPT PROF_webServerHostname=”Server1″
-OPT PROF_webServerPort=”80″
-OPT PROF_webServerInstallPath=”/opt/IBM/HTTPServer”
-OPT PROF_webServerPluginPath=”/opt/IBM/WebSphere/Plugins”
-OPT PROF_profilePath=”/opt/IBM/WebSphere/AppServer/profiles/Profile01″
-OPT PROF_serverName=”dmgr”
-OPT traceFormat=ALL
-OPT traceLevel=INFO

Edit to change hostnames, allow non-root silent installs

./install -options responsefile.nd.txt -silent

Be patient as it will take some time(15 mins in my case)  to start writing install logs.  I often use “df -k” to see how space is being used on /opt while install under progress.

cd /opt/IBM/WebSphere/AppServer/logs/manageprofiles

$ ls -lrt
-rw-rw-r– 1 was61 was61 1614293 Nov 11 11:49 dmgr_create.log
drwxrwxr-x 2 was61 was61    4096 Nov 11 11:49 dmgr
-rw-rw-r– 1 was61 was61 1302614 Nov 11 11:50 Node_create.log
drwxrwxr-x 2 was61 was61    4096 Nov 11 11:50 Node
-rw-rw-r– 1 was61 was61  421608 Nov 11 11:50 create.log

$vi Dmgr_create.log

<class>com.ibm.ws.profile.cli.WSProfileCLICreateProfileInvoker</class>
<method>executeWSProfileAccordingToMode</method>
<thread>10</thread>
<message>INSTCONFSUCCESS: Success: Profile dmgr now exists. Please consult /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/logs/AboutThisProfile.txt for more information about this profile.</message>
</record>

$vi Node_create.log

<logger>com.ibm.ws.install.configmanager.ConfigManager</logger>
<level>INFO</level>
<class>com.ibm.ws.install.configmanager.ConfigManager</class>
<method>launch</method>
<thread>10</thread>
<message>Returning with return code: INSTCONFSUCCESS</message>
</record>

Also have a look at create.log for detailed information.

Install UpdateInstaller

Install UpdateInstaller as user was61:

cd /opt/IBM/source/UpdateInstaller/UpdateInstaller

vi responsefile.updiinstaller.txt

OPT silentInstallLicenseAcceptance=”true”
-OPT allowNonRootSilentInstall=”true”
-OPT disableOSPrereqChecking=”true”
-OPT installLocation=”/opt/IBM/WebSphere/UpdateInstaller”
-OPT traceFormat=text
-OPT traceLevel=INFO

Edit to change hostnames, allow non-root silent installs more responsefile.updiinstaller.txt

./install -options responsefile.updiinstaller.txt -silent

check logs:

cd /opt/IBM/WebSphere/UpdateInstaller/logs/install

$vi log.txt and look for “INSTCONFSUCCESS”

(Nov 11, 2010 12:14:11 PM), Install, com.ibm.ws.install.ni.ismp.actions.SettleNIFRegistryAction, msg1, Current install/uninstall process is successful. Process type is: install
(Nov 11, 2010 12:14:11 PM), Install, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=0
(Nov 11, 2010 12:14:11 PM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCESS

Let’s apply a fix Patch to Websphere Install : Patch as user was61

vi /opt/IBM/source/UpdateInstaller/UpdateInstaller/install.txt

-OPT checkFilePermissions=”true”
-W maintenance.package=”/opt/IBM/source/6.1.0-WS-WAS-LinuxX64-FP0000021.pak”
-OPT disableNonBlockingPrereqChecking=”true”
-W product.location=”/opt/IBM/WebSphere/AppServer”
-W update.type=”install”

Make sure the update pak files are at defined directory

[install]$ ls -lrt /opt/IBM/source/6.1.0-WS-WAS-LinuxX64-FP0000021.pak
-r-xr-xr-x 1 was61 was61 429023884 Jan 16  2009 /opt/IBM/source/6.1.0-WS-WAS-LinuxX64-FP0000021.pak

Let’s run the update installer now

cd /opt/IBM/WebSphere/UpdateInstaller
./update.sh -options “/opt/IBM/source/UpdateInstaller/UpdateInstaller/install.txt” -silent

Check Install log:

cd /opt/IBM/WebSphere/AppServer/logs/update/6.1.0-WS-WAS-LinuxX64-FP0000021.install
vi updatelog.txt

Look for line: com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCESS

Running configuration command: updateLinuxCollector, percent complete: 100%
(Nov 11, 2010 12:34:54 PM), Install, com.ibm.ws.install.ni.ismp.actions.SettleNIFRegistryAction, msg1, Current install/uninstall process is successful. Process type is: maintenance
(Nov 11, 2010 12:34:54 PM), Install, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=0
(Nov 11, 2010 12:34:54 PM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCESS

Stop httpd, patch IHS

stop httpd as root:

sudo /opt/IBM/HTTPServer/bin/apachectl stop

vi /opt/IBM/source/UpdateInstaller/UpdateInstaller/install-fix-ihs.txt

-OPT checkFilePermissions=”true”
-W maintenance.package=”/opt/IBM/source/6.1.0-WS-IHS-LinuxX64-FP0000021.pak”
-OPT disableNonBlockingPrereqChecking=”true”
-W product.location=”/opt/IBM/HTTPServer”
-W update.type=”install”

[UpdateInstaller]$ ls -lrt /opt/IBM/source/6.1.0-WS-IHS-LinuxX64-FP0000021.pak
-rwxr-xr-x 1 was61 was61 12141372 Mar 19  2009 /opt/IBM/source/6.1.0-WS-IHS-LinuxX64-FP0000021.pak

cd /opt/IBM/WebSphere/UpdateInstaller
./update.sh -options “/opt/IBM/source/UpdateInstaller/UpdateInstaller/install-fix-ihs.txt” -silent

Check logs:

cd /opt/IBM/HTTPServer/logs/update/6.1.0-WS-IHS-LinuxX64-FP0000021.install

vi updatelog.txt & look for INSTCONFSUCCESS

, Current install/uninstall process is successful. Process type is: maintenance
(Nov 11, 2010 12:41:11 PM), Install, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=0
(Nov 11, 2010 12:41:11 PM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCESS

Start httpd, finishing patch IHS

As root user: sudo /opt/IBM/HTTPServer/bin/apachectl start

Update SDK As was61 user:

cd /opt/IBM/WebSphere/UpdateInstaller

vi /opt/IBM/source/UpdateInstaller/UpdateInstaller/install-fix-sdk.txt

-OPT checkFilePermissions=”true”
-W maintenance.package=”/opt/IBM/source/6.1.0-WS-WASSDK-LinuxX64-FP0000021.pak”
-OPT disableNonBlockingPrereqChecking=”true”
-W product.location=”/opt/IBM/WebSphere/AppServer”
-W update.type=”install”

[was61@]$ ls -lrt /opt/IBM/source/6.1.0-WS-WASSDK-LinuxX64-FP0000021.pak
-r-xr-xr-x 1 was61 was61 59745892 Jan 16  2009 /opt/IBM/source/6.1.0-WS-WASSDK-LinuxX64-FP0000021.pak

Run ./update.sh -options “/opt/IBM/source/UpdateInstaller/UpdateInstaller/install-fix-sdk.txt” -silent

Check Logs:

vi /opt/IBM/WebSphere/AppServer/logs/update/6.1.0-WS-WASSDK-LinuxX64-FP0000021.install/updatelog.txt & look for line: com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCESS

cd /opt/IBM/WebSphere/AppServer/logs/update/6.1.0-WS-WASSDK-LinuxX64-FP0000021.install

(Nov 11, 2010 12:46:25 PM), Install, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=0
(Nov 11, 2010 12:46:25 PM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCESS

Update plugins as user was61:

cd /opt/IBM/WebSphere/UpdateInstaller

vi “/opt/IBM/source/UpdateInstaller/UpdateInstaller/install-fix-plugin.txt”

-OPT checkFilePermissions=”true”
-W maintenance.package=”/opt/IBM/source/6.1.0-WS-PLG-LinuxX64-FP0000021.pak”
-OPT disableNonBlockingPrereqChecking=”true”
-W product.location=”/opt/IBM/HTTPServer/Plugins/”
-W update.type=”install”

./update.sh -options “/opt/IBM/source/UpdateInstaller/UpdateInstaller/install-fix-plugin.txt” -silent

Install GSKit

Check for GSKit installation:

rpm -qa|grep -i gsk
gsk7bas-7.0-4.14
gsk7bas64-7.0-4.14

if GSKit is not already installed, you will need to install GSKit as root

/opt/IBM/HTTPServer/GSKitImage/gskit.sh

Check versions

Check plugins versions as user was61:

cd /opt/IBM/HTTPServer/Plugins/bin
./versionInfo.sh

WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved. WVER0012I: VersionInfo reporter version 1.15.4.2, dated 6/5/08
IBM WebSphere Application Server Product Installation Status Report

Report at date and time 25 June 2009 16:10:22 BST
Installation
Product Directory /opt/IBM/HTTPServer/Plugins Version Directory /opt/IBM/HTTPServer/Plugins/properties/version DTD Directory /opt/IBM/HTTPServer/Plugins/properties/version/dtd Log Directory /opt/IBM/HTTPServer/Plugins/logs Backup Directory /opt/IBM/HTTPServer/Plugins/properties/version/nif/backup TMP Directory /tmp

Product List
PLG installed

Installed Product
Name Web server plug-ins for IBM WebSphere Application Server Version 6.1.0.21 ID PLG Build Level cf210844.13 Build Date 11/6/08

End Installation Status Report

Check App Server version as user was61:

cd /opt/IBM/WebSphere/AppServer/bin
./versionInfo.sh

WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved. WVER0012I: VersionInfo reporter version 1.15.4.2, dated 6/5/08
IBM WebSphere Application Server Product Installation Status Report
Report at date and time 25 June 2009 16:12:29 BST

Installation
Product Directory /opt/IBM/WebSphere/AppServer Version Directory /opt/IBM/WebSphere/AppServer/properties/version DTD Directory /opt/IBM/WebSphere/AppServer/properties/version/dtd Log Directory /opt/IBM/WebSphere/AppServer/logs Backup Directory /opt/IBM/WebSphere/AppServer/properties/version/nif/backup TMP Directory /tmp

Product List
ND installed

Installed Product
Name IBM WebSphere Application Server – ND Version 6.1.0.21 ID ND Build Level cf210844.13 Build Date 11/6/08

End Installation Status Report

Check java version as user was61:

cd /opt/IBM/WebSphere/AppServer/java/bin
./java -version

[was61@bin]$ cd /opt/IBM/WebSphere/AppServer/java/bin
[was61@bin]$ ./java -version
java version “1.5.0”
Java(TM) 2 Runtime Environment, Standard Edition (build pxa64devifx-20080908 (SR8a + IZ29767 + IZ30684 + IZ31214 + IZ31213))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux amd64-64 j9vmxa6423ifx-20080811 (JIT enabled)
J9VM – 20080809_21892_LHdSMr
JIT – 20080620_1845_r8
GC – 200806_19)
JCL – 20080908a

At end of this install you should able to start the DMGR process

Difference between IBM & SUN JVM/ Porting J2EE applications

Posted by Sagar Patil

IBM’s JVM is written to meet the specs as documented by Sun.  IBM runs the test suit against their JVM to make sure that what should occur does occur.  They (IBM) feel that their code performs the requested functions more efficiently and thus performs better while still providing the same results. IBM may throw one error exception while Sun’s may throw another.

A good discussion on IBM & SUN JVM is at http://forums.anandtech.com/archive/index.php/t-1958785.html

Can I pick up an EAR/WAR file from websphere and install at compatible J2EE application server?
“If” the EAR is compatible, then you can deploy it either on a WebSphere Application Server, or some other J2EE application server.  However, that is a big “if.” Does the application make use of any WebSphere specific settings, or resources?  That might be hard to tell if the application isn’t thoroughly documented.

Having said that JVMs are going to be different. On source it is IBM JVM while at destination (Tomcat/Glassfish) it is SUN JVM.
The WebSphere Application Server environment adds a number of class files to allow applications to access specific resources and capabilities of the WebSphere environment.  This is true even for the Solaris Operating System where the JVM used by WebSphere is a Sun JVM. In addition to these “extra” jar files, are there differences between the JVM’s.

A specific J2EE application server may have its own unique classes that do not exist in other J2EE environments.  So if you developed an application under “J2EE ServerA” and used specific functions/classes that are unique to “J2EE ServerA”, then you can’t just deploy to “J2EE ServerB”.

Are there any utilitiees to test portability of a J2EE application?
The idea behind having a J2EE compliant implementation is so that applications may be easily moved from one environment to another.  So, as long as both the source and target application server environments are J2EE compliant, this “should” be possible.  However, again we are forced to revisit the questions:

But there must be something from these vendors looking for portability of application to grab customers on their platform.

https://migrate2glassfish.dev.java.net/
http://blogs.sun.com/theaquarium/entry/websphere_to_glassfish_migration_example
http://blogs.sun.com/alexismp/entry/glassfish_equivalent_to_websphere_s

IBM do provide a utility to help people migrate their utilities to WebSphere:
http://www.IBM.com/developerworks/websphere/downloads/migration_toolkit.html

Demo is available here

Websphere: startManager.sh doesn't work while startServer.sh does

Posted by Sagar Patil

[Dmgr]$ /opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/bin/startManager.sh

ADMU0116I: Tool information is being logged in file
/opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/logs/dmgr/startServer.log
ADMU0128I: Starting tool with the Dmgr profile
ADMU3100I: Reading configuration for server: dmgr
ADMU0111E: Program exiting with error: java.io.FileNotFoundException:
/opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/config/cells/Cell/nodes/Manager/servers/dmgr/server.xml
(No such file or directory)
ADMU1211I: To obtain a full trace of the failure, use the -trace option.
ADMU0211I: Error details may be seen in the file:
/opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/logs/dmgr/startServer.log

Log /opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/logs/dmgr/startServer.log has tonnes of errors

[10/12/10 7:14:19:045 BST] 0000000a AdminTool     A   ADMU0111E: Program exiting with error: java.io.FileNotFoundException:
/opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/config/cells/Cell/nodes/Manager/servers/dmgr/server.xml (No such file or directory)
at java.io.FileInputStream.<init>(FileInputStream.java:135)
at org.eclipse.emf.ecore.resource.impl.URIConverterImpl.createFileInputStream(URIConverterImpl.java:469)
at org.eclipse.emf.ecore.resource.impl.URIConverterImpl.createInputStream(URIConverterImpl.java:431)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:897)
at org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResourceImpl.load(CompatibilityXMIResourceImpl.java:259)
at com.ibm.websphere.resource.WASResourceImpl.load(WASResourceImpl.java:61)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:249)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:264)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:390)
at com.ibm.websphere.resource.WASResourceSetImpl.getResource(WASResourceSetImpl.java:158)
at com.ibm.websphere.resource.WASResourceSetImpl.getResource(WASResourceSetImpl.java:143)
at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:326)
at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:299)
at com.ibm.ws.runtime.service.ConfigRootImpl.getResource(ConfigRootImpl.java:275)
at com.ibm.ws.management.tools.WsServerLauncher.initializeRepositoryAndLauncher(WsServerLauncher.java:397)
at com.ibm.ws.management.tools.WsServerLauncher.runTool(WsServerLauncher.java:265)
at com.ibm.ws.management.tools.AdminTool.executeUtility(AdminTool.java:264)
at com.ibm.ws.management.tools.WsServerLauncher.main(WsServerLauncher.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:263)

System doesn’t have  “/opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/config/cells/Cell/nodes/Manager/servers/dmgr/server.xml” but have
“/opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/config/cells/Cell/nodes/Manager/servers/Dmgr/server.xml”

StartServer Dmgr command works fine. Note it’s “Dmgr” instead of “dmgr” here

$ /opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/bin/startServer.sh Dmgr
ADMU0116I: Tool information is being logged in file
/opt/IBM/WebSphere/AppServer/profiles/Profile/Dmgr/logs/Dmgr/startServer.log
ADMU0128I: Starting tool with the Dmgr profile
ADMU3100I: Reading configuration for server: Dmgr
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server Dmgr open for e-business; process id is 2264

$pwd
/opt/IBM/WebSphere/AppServer/profiles/Profile

[Profile]$ ls -lrt
drwxr-xr-x 17 was61 web  12288 Sep 27 08:28 Node
drwxr-xr-x 18 was61 web   4096 Jul  4  2011 Dmgr

Solution :

Edit “/opt/IBM/WebSphere/AppServer/bin/startManager.sh” and alter D_DMGR from dmgr to Dmgr

#Common args…
D_DMGR=”dmgr” changed to “Dmgr”
D_ARGS=”-Dws.ext.dirs=”$WAS_EXT_DIRS” $DELIM -Dwas.install.root=”$WAS_HOME” $DELIM -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager $DELIM -Djava.util.logging.configureByServer=true”

Edit “/opt/IBM/WebSphere/AppServer/bin/stopManager.sh” and alter line 126

$SHELL “$CONFIG_ROOT” “$WAS_CELL” “$WAS_NODE” dmgr -dmgr “$@”
to
$SHELL “$CONFIG_ROOT” “$WAS_CELL” “$WAS_NODE” Dmgr -dmgr “$@”

Installing application(EAR/WAR) thru wsadmin

Posted by Sagar Patil

The isAppReady command returns a value of true if the system is ready to start the application, or a value of false if the system is not ready to start the application, as the following examples display:

[was61@waslogs]$ /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/bin/wsadmin.sh -conntype SOAP -lang jython
WASX7209I: Connected to process “dmgr” on node Prod_Node_Manager using SOAP connector;  The type of process is: DeploymentManagerWASX7031I: For help, enter: “print Help.help()”
wsadmin>AdminApp.isAppReady(‘application1’);

ADMA5071I: Distribution status check started for application prpc_j2ee14.
WebSphere:cell=Prod_Node_Cell,node=Prod_Node_Node01,distribution=true,expansion=notprocessing
ADMA5011I: The cleanup of the temp directory for application prpc_j2ee14 is complete.
ADMA5072I: Distribution status check completed for application prpc_j2ee14.
‘true’

getDeployStatus command to display additional information about the binary file expansion status, as the following examples display:

[was61@Prod_Node waslogs]$ /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/bin/wsadmin.sh -conntype SOAP -lang jython
WASX7209I: Connected to process “dmgr” on node Prod_Node_Manager using SOAP connector;  The type of process is: DeploymentManager
wsadmin>AdminApp.getDeployStatus(‘application1’);
ADMA5071I: Distribution status check started for application application.
WebSphere:cell=Prod_Node_Cell,node=Prod_Node_Node01,distribution=true,expansion=notprocessing
ADMA5011I: The cleanup of the temp directory for application application is complete.
ADMA5072I: Distribution status check completed for application application.
‘WebSphere:cell=Prod_Node_Cell,node=Prod_Node_Node01,distribution=true,expansion=notprocessing’

Let’s deploy an Application called “application1″

1. wsadmin>AdminApp.update(‘application1’, ‘app’, ‘[-operation update -contents /tmp/Application1.ear -usedefaultbindings -nodeployejb ]’);

ADMA0073W: Custom permissions are found in the [(com.ibm.websphere.security.WebSphereRuntimePermission AdminPermission), (com.ibm.oti.shared.SharedClassPermission

// One cannot grant permissions to code outside of the deployed application via the WAS policy
ADMA5017I: Uninstallation of Application1 started.
ADMA5104I: The server index entry for WebSphere:cell=server_Cell,node=server_Node01 is updated successfully.
ADMA5106I: Application Application1 uninstalled successfully.
ADMA5016I: Installation of Application1 started.
ADMA5001I: The application binaries are saved in /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/wstemp/Script12b3ee78983/workspace/cells/server_Cell/applications/Application1.ear/Application1.ear
ADMA5005I: The application Application1 is configured in the WebSphere Application Server repository.
SECJ0400I: Successfuly updated the application Application1 with the appContextIDForSecurity information.
ADMA5011I: The cleanup of the temp directory for application Application1 is complete.
ADMA5013I: Application Application1 installed successfully.

2. wsadmin>AdminConfig.save();


wsadmin>AdminApp.update(‘prpc_j2ee14’, ‘app’, ‘[-operation update -contents /tmp/prpc_j2ee14.ear -usedefaultbindings -nodeployejb ]’);
ADMA0073W: Custom permissions are found in the [(com.ibm.websphere.security.WebSphereRuntimePermission AdminPermission), (com.ibm.oti.shared.SharedClassPermission com.pega.pegarules.internal.bootstrap.PRBaseLoader read,write), (com.ibm.oti.shared.SharedClassPermission com.pega.pegarules.bootstrap.loader.PRAppLoader read,write), (com.ibm.oti.shared.SharedClassPermission com.pega.jasper.PegaURLClassLoader read,write), (com.ibm.websphere.security.WebSphereRuntimePermission accessRuntimeClasses)] policy file. Custom permissions can compromise the integrity of Java 2 Security.
WASX7327I: Contents of was.policy file:
// was.policy
// $Id: was.policy,v 1.1.4.1 2008/05/16 19:26:53 olsok Exp $
// ============================================================================
// 16-May-08    olsok           Bug-14175       always enable SharedClassPermission
//                                                                              enable ManagementPermission for JVM memory monitoring
// 08-Jun-07    olsok           Code-323        update for PegaRULES 5.4
// 15-Nov-05    ablal           R-18775         moved moved connectorComponent permissions into ra1-5.xml
//                                                                              after installing WS 6.0.2.3
// 14-Sep-05    GajnJ                                   Add write/delete privileges for the root temp dir
// 15-Aug-05    olsok           R-18694         adapt for WebSphere 6.0.2
// 12-Aug-05    olsok           R-18694         adjusted based on classloader changes
// 11-Aug-05    olsok           R-18694         configure PegaRULES permissions

// The PegaRULES polices coded in this file assume that the PegaRULES
// application is deployed as a standard ear file in the standard WebSphere
// location.
//
// PegaRULES policies use the following variables that should be supplied
// as Java system properties at runtime:
//              java.home                               (Standard Java property)
//              java.io.tmpdir                  (Standard Java property)
//              user.home                               (Standard Java property)
//              was.install.root                (Standard WebSphere property)
//              was.module.path                 (Standard WebSphere embedded symbol)
//              app.installed.path              (Standard WebSphere embedded symbol)
//              pega.tmpdir                             path to writable temp directory that PegaRULES
//                                                              should use (as specified in prconfig.xml), using
//                                                              host-specific path delimiters

// ========================================================================================
// PegaRULES V5.4 configuration follows (08-Jun-2007)
// (assumes use of jdbc drivers supplied by WebSphere)

// Note – with PegaRULES 5.4, must use “application” rather than “jars”.
grant codebase “file:${application}” {
// the following needed to resolve host ip address – these permissions
// are automatically provided by WebSphere even if not listed here
//permission java.net.SocketPermission “localhost:1024-“, “listen,resolve”;
//permission java.net.SocketPermission “*”, “connect,resolve”;

// the following needed to access properties that control startup and configuration
permission java.util.PropertyPermission “*”, “read,write”;

// the following needed for MBean support
permission com.ibm.websphere.security.WebSphereRuntimePermission “AdminPermission”;
permission javax.management.MBeanTrustPermission “register”;
permission javax.management.MBeanServerPermission “findMBeanServer”;
permission javax.management.MBeanPermission “*#*[]”, “queryNames”;
permission javax.management.MBeanPermission “com.pega.*#*[]”, “registerMBean”;
permission javax.management.MBeanPermission “com.pega.*#*[]”, “isInstanceOf”;
permission javax.management.MBeanPermission “com.pega.*#*[]”, “getMBeanInfo”;
permission javax.management.MBeanPermission “com.pega.*#*[]”, “unregisterMBean”;
permission javax.management.MBeanPermission “com.pega.*#*[]”, “addNotificationListener”;

// the following needed to monitor JVM events for low memory alerts / tracebacks
permission java.lang.management.ManagementPermission “control”;

// the following permissions may be granted to PRBaseLoader, PRAppLoader and other URL-based classloaders within PegaRULES to
// avoid a security exception being reported in the console log when the respective classloader constructor is invoked. The
// PRBaseLoader and PRAppLoader are explicitly coded to avoid class sharing via this mechanism in the IBM JVM but there is
// no mechanism provided by IBM for programatically disabling the use of shared classes in a classloader that
// extends URLClassLoader.
permission com.ibm.oti.shared.SharedClassPermission “com.pega.pegarules.internal.bootstrap.PRBaseLoader”, “read,write”;
permission com.ibm.oti.shared.SharedClassPermission “com.pega.pegarules.bootstrap.loader.PRAppLoader”, “read,write”;
// Be sure to grant the permission to the classloader used within Jasper – a new instance of this classloader is
// created for each stream, and the lack of the shared class permission will fill the log file with security exceptions
permission com.ibm.oti.shared.SharedClassPermission “com.pega.jasper.PegaURLClassLoader”, “read,write”;

// the following needed by PRBaseLoader, PRAppLoader and other classloaders within PegaRULES
permission java.lang.reflect.ReflectPermission “suppressAccessChecks”;
permission java.util.logging.LoggingPermission “control”;
permission java.lang.RuntimePermission “createClassLoader”;
permission java.lang.RuntimePermission “accessDeclaredMembers”;
permission java.lang.RuntimePermission “getClassLoader”;
permission java.lang.RuntimePermission “getProtectionDomain”;
permission java.security.SecurityPermission “getPolicy”;
permission java.lang.RuntimePermission “accessClassInPackage.sun.util.logging.resources”;

// the following needed by Jasper and PegaRULES classloaders
permission java.lang.RuntimePermission “setContextClassLoader”;

// the following needed by Jasper
permission java.lang.RuntimePermission “setIO”;

// the following needed by performance timers
permission java.lang.RuntimePermission “accessClassInPackage.sun.misc”;         // when using Java 5 management APIs
permission java.lang.RuntimePermission “sun.misc.Perf.getPerf”;
// (WebSphere will not substitute app.installed.path in a RuntimePermission, only a FilePermission
// so the permission grant to load the library cannot be restricted to the single library we require.)
permission java.lang.RuntimePermission “loadLibrary.*”;
//permission java.lang.RuntimePermission “loadLibrary.${app.installed.path}${/}APP-INF${/}binredist${/}x86${/}pr3native.dll”;
//permission java.lang.RuntimePermission “loadLibrary.${app.installed.path}${/}APP-INF${/}binredist${/}ppc${/}pr3native.so”;
//permission java.lang.RuntimePermission “loadLibrary.${app.installed.path}${/}APP-INF${/}binredist${/}sparc${/}pr3native.so”;

// the following needed by LibraryUtil
permission java.lang.RuntimePermission “accessClassInPackage.sun.reflect”;

// the following needed by Log4J asynch appenders and resource adapter timer thread
permission java.lang.RuntimePermission “modifyThreadGroup”;
permission java.lang.RuntimePermission “modifyThread”;

// the following needed for server identification display
permission com.ibm.websphere.security.WebSphereRuntimePermission “accessRuntimeClasses”;
permission java.io.FilePermission “${was.install.root}”, “read”;
permission java.io.FilePermission “${was.install.root}${/}-“, “read”;

// WebSphere establishes a protection domain based on the jar file in which the
// class performing the operation resides, and does not grant permission to
// read other jar files under the deployment. The following addresses that issue.
permission java.io.FilePermission “${app.installed.path}${/}-“, “read”;                 // IMPLIED by was.install.root read permission

// the following needed to probe for user-specific prconfig/prlogging files
permission java.io.FilePermission “${user.home}${/}*”, “read”;

// the following needed for access to relocated temp and root directories
permission java.io.FilePermission “${pega.tmpdir}”, “read,write,delete”;
permission java.io.FilePermission “${pega.tmpdir}${/}-“, “read,write,delete”;

// the following needed for WebSphere SQL/Server jdbc drivers
permission java.io.FilePermission “${java.io.tmpdir}${/}-“, “read,write,delete”;

// the following needed for the embedded Eclipse compiler — IMPLIED by was.install.root read permission provided that java.home is under was.install.root
//permission java.io.FilePermission “${java.home}”, “read”;
//permission java.io.FilePermission “${java.home}${/}-“, “read”;

// needed when using container managed security
permission javax.security.auth.AuthPermission “getSubject”;

};

// One cannot grant permissions to code outside of the deployed application via the WAS policy
// file. PRClassLoader uses a set of hard-coded permissions for all (assembled/generated) code
// loaded by it.

ADMA5017I: Uninstallation of prpc_j2ee14 started.
ADMA5104I: The server index entry for WebSphere:cell=eugbbopg03lt_Cell,node=eugbbopg03lt_Node01 is updated successfully.
ADMA5102I: The configuration data for prpc_j2ee14 from the configuration repository is deleted successfully.
ADMA5011I: The cleanup of the temp directory for application prpc_j2ee14 is complete.
ADMA5106I: Application prpc_j2ee14 uninstalled successfully.
ADMA5016I: Installation of prpc_j2ee14 started.
ADMA5058I: Application and module versions are validated with versions of deployment targets.
ADMA5005I: The application prpc_j2ee14 is configured in the WebSphere Application Server repository.
ADMA5053I: The library references for the installed optional package are created.
ADMA5005I: The application prpc_j2ee14 is configured in the WebSphere Application Server repository.
ADMA5001I: The application binaries are saved in /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/wstemp/Script12b3ee78983/workspace/cells/eugbbopg03lt_Cell/applications/prpc_j2ee14.ear/prpc_j2ee14.ear
ADMA5005I: The application prpc_j2ee14 is configured in the WebSphere Application Server repository.
SECJ0400I: Successfuly updated the application prpc_j2ee14 with the appContextIDForSecurity information.
ADMA5011I: The cleanup of the temp directory for application prpc_j2ee14 is complete.
ADMA5013I: Application prpc_j2ee14 installed successfully.

wsadmin>AdminConfig.save();

Jython script to pull out stats from websphere

Posted by Sagar Patil

Currently I have number of websphere 6.1 instances under RHEL 5.3 but not a tool like hyperic, wily introscope to monitor them actively. I started using wsadmin scripts to pull out stats thru wsadmin.

I am basically trying to get same details thru wsadmin which I could thru NAGIOS plugin. Here is a sample output from NAGIOS.

Monitor JVM heapSize :
JVM heapsize is provided for the entire server. It is measured as: percent used/maximum configured
To Monitor, check_was -s heapsize -w 80 -c 90 -p <server name=””>
[was61@Server1 check_was-0.3]$ ./check_was -s heapsize -w 80 -c 90 -p server_member1
OK – heapsize: 1048576/2097152 (50.0%)|heapsize=50.0%;80;90;

MonitorLiveSessions :
Live session usage can be monitored for the entire server (all hosts) or with a named host. It is measured as: Number of live sessions

[was61@Server1 check_was-0.3]$ ./check_was -s sessions -w 200 -c 400 -p server_member1
OK – live sessions: total 0, default_hostCTI 0, default_hostprsysmgmt 0, default_hostprweb 0, default_hostprdbutil 0|total=0.0;200;400; default_hostcti=0.0;200;400; default_hostprsysmgmt=0.0;200;400; default_hostprweb=0.0;200;400; default_hostprdbutil=0.0;200;400;

MonitorJdbcConnectionPools:
JDBC connection pool usage can be monitored for the entire server (all connection pools) or with a named connection pool. It is measured as: percent used/maximum configured

[was61@Server1 check_was-0.3]$ ./check_was -s connectionpool -w 80 -c 90 -p server_member
OK – connection pool size: Oracle JDBC Driver 5/100 (5.0%)|oraclejdbcdriver=5.0%;80;90;

MonitorThreadPools :
Thread pool usage can be monitored for the entire server (all thread pools) or with a named thread pool. It is measured as: percent used/maximum configured

[was61@Server1 check_was-0.3]$ ./check_was -s threadpool -w 80 -c 90 -p server_member1
CRITICAL – thread pool size: WebContainer 4/100 (4.0%), SoapConnectorThreadPool 3/5 (60.0%), SIBFAPInboundThreadPool 0/50 (0.0%), HAManager.thread.pool 2/2 (100.0%), MessageListenerThreadPool 0/50 (0.0%), ORB.thread.pool 0/50 (0.0%), SIBFAPThreadPool 2/50 (4.0%), ProcessDiscovery 1/2 (50.0%), TCPChannel.DCS 3/20 (15.0%)|webcontainer=4.0%;80;90; soapconnectorthreadpool=60.0%;80;90; sibfapinboundthreadpool=0.0%;80;90; hamanager_thread_pool=100.0%;80;90; messagelistenerthreadpool=0.0%;80;90; orb_thread_pool=0.0%;80;90; sibfapthreadpool=4.0%;80;90; processdiscovery=50.0%;80;90; tcpchannel_dcs=15.0%;80;90;</server>

Attached is a python script which will return similar results
Purpose: wsadmin script used to display user specified information about
         WebSphere Application Server resources.\n
Version: %(version)s
Updated: %(updated)s\n
  Usage: %(cmdName)s [options]\n
Required switches/options:
  -i | --info       <value> = Type of information being requested
  -s | --serverName <value> = Target serverName\n
Optional switches/options:
  -n | --nodeName   <value> = Target nodeName\n
Information types/values:
  connectionpool - Display Connection Pool details
  heapsize       - Display Heap Size details
  threadpool     - Display Thread Pool details
  sessions       - Display Session Details\n
Notes:
- Long form option values may be separated/delimited from their associated
  identifier using either a space, or an equal sign ('=').\n
- Short form option values may be sepearated from their associated letter
  using an optional space.\n
- Text containing blanks must be enclosed in double quotes.\n
Examples:
  wsadmin -f %(cmdName)s.py -i heapsize -s server1 -n node01\n'''
[was61@Server1 was_scripts]$ /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/bin/wsadmin.sh -f /home/was61/was_scripts/check_was.py -i heapsize -s Server1  server_member2
WASX7209I: Connected to process “dmgr” on node Server1_Manager using SOAP connector;  The type of process is: DeploymentManager
WASX7303I: The following options are passed to the scripting environment and are available as arguments that are stored in the argv variable: “[-i, heapsize, -s, Server1server_member2]”
heapsize: node=Server1_Node01  server=Server1server_member2  used=1027.2 MB (65.69%)  free=536.5 MB
[was61@ was_scripts]$ /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/bin/wsadmin.sh -f /home/was61/was_scripts/check_was.py -i threadpool -s  server_member2
WASX7209I: Connected to process “dmgr” on node Server1_Manager using SOAP connector;  The type of process is: DeploymentManager
WASX7303I: The following options are passed to the scripting environment and are available as arguments that are stored in the argv variable: “[-i, threadpool, -s, server_member2]”
|             Low    High
|           Water  Water  Lower  Upper  Current
Name | integral  Mark   Mark   Bound  Bound  Usage    Ratio
————————+—————————————————–
Message.Listener.Pool |      0.0   10     10     10     50      0      0.00%
ORB.thread.pool |      0.0   10     10     10     50      0      0.00%
SIBFAPInboundThreadPool | 9090637.0    1      4      4     50      3     75.00%
SIBFAPThreadPool | 112975.0    1      4      4     50      2     50.00%
TCPChannel.DCS | 255726.0    1      5      5     20      3     60.00%
WebContainer | 12011409.0    1     10     10     50      7     70.00%
So here  “WebContainer | 12011409.0   1  10  10  50   7  70.00%” means WebContainer currently using 7 processes out of 10 allocated and they can expand upto 50 MAX.

WebSphere Monitoring : Wasstat.sh to parse offline PervServletApp XML output

Posted by Sagar Patil

Please use following process when you have PerfServelet (PervServletApp application ) generated offline XML files.

Objective : I have PervServletApp application to retrieve websphere performance matrix.  The data returned is in XML format (Sample.xml) and I needed something to analyse that RAW data.

While surfing I stumbled at wasstats script https://code.google.com/p/imakerobots/wiki/wasstats

For windows WebSphere Statistic (wsstat) version please visit & scroll down to “Figure 4. The WebSphere Statistic tool” . Download windows batch script

“Currently, this script only processes JVM Runtime, Session Manager, JDBC Connection Pool and Thread Pool statistics

I created a sample.xml file using

“http://%Server_Name%:9080/wasPerfTool/servlet/perfservlet?node=Server1_Node01&server=server_member1&module=connectionPoolModule+jvmRuntimeModule+servletSessionsModule+systemModule+threadPoolModule

Sample.xml XML file used for Analysis

When ran againt RHEL- WAS 6.1 ND with wastats.py I came across some errors :

[was61@Server1 permon]$ /usr/bin/python wasstats.py sample.xml
Processing: sample.xml

INFO|server_member1:Server1_Node01:SuperSnoop#SuperSnoopWeb.war:RangeStatistic:0:0.0:1283788583899:0:0.0:LiveCount:1283528346720:N/A:0
INFO|server_member1:Server1_Node01:perfServletApp#perfServletApp.war:RangeStatistic:0:0.0:1283788583899:0:0.0:LiveCount:1283528346768:N/A:0
INFO|server_member1:Server1_Node01:prsysmgmt_war#prsysmgmt.war:RangeStatistic:0:0.0:1283788583899:0:0.0:LiveCount:1283528346376:N/A:0
CHECK|OK:HeapSize:Server1_Node01:server_member1:JVM Runtime:1048576/2097152:(50%)|1048576:0.0:1283788583896:1048576:1048576:0.0:1283528313727:2097152:1048576:KILOBYTE
INFO|server_member1:Server1_Node01:JVM Runtime:BoundedRangeStatistic:1048576:0.0:1283788583896:1048576:1048576:0.0:HeapSize:1283528313727:KILOBYTE:2097152:1048576
INFO|server_member1:Server1_Node01:JVM Runtime:CountStatistic:688987:1283788583896:UsedMemory:1283528313726:KILOBYTE
INFO|server_member1:Server1_Node01:JVM Runtime:CountStatistic:260270:1283788583896:UpTime:1283528313726:SECOND
INFO|server_member1:Server1_Node01:JVM Runtime:CountStatistic:0:1283788583899:ProcessCpuUsage:1283528313723:N/A
Traceback (most recent call last):
File “wasstats.py”, line 600, in ?
analyze( xmldoc );
File “wasstats.py”, line 202, in analyze
name = pool.getAttribute( ‘name’ );
UnboundLocalError: local variable ‘pool’ referenced before assignment

Here is a revised wasstats.py script tested on WAS 6.1  ND deployment on RHEL 5.5

[was61@Server1 permon]$ /usr/bin/python wasstats.py sample.xml
Processing: sample.xml
INFO|server_member1:Server1_Node01:SuperSnoop#SuperSnoopWeb.war:RangeStatistic:0:0.0:1283788583899:0:0.0:LiveCount:1283528346720:N/A:0
INFO|server_member1:Server1_Node01:perfServletApp#perfServletApp.war:RangeStatistic:0:0.0:1283788583899:0:0.0:LiveCount:1283528346768:N/A:0
CHECK|OK:HeapSize:Server1_Node01:server_member1:JVM Runtime:1048576/2097152:(50%)|1048576:0.0:1283788583896:1048576:1048576:0.0:1283528313727:2097152:1048576:KILOBYTE
INFO|server_member1:Server1_Node01:JVM Runtime:BoundedRangeStatistic:1048576:0.0:1283788583896:1048576:1048576:0.0:HeapSize:1283528313727:KILOBYTE:2097152:1048576
INFO|server_member1:Server1_Node01:JVM Runtime:CountStatistic:688987:1283788583896:UsedMemory:1283528313726:KILOBYTE
INFO|server_member1:Server1_Node01:JVM Runtime:CountStatistic:260270:1283788583896:UpTime:1283528313726:SECOND
INFO|server_member1:Server1_Node01:JVM Runtime:CountStatistic:0:1283788583899:ProcessCpuUsage:1283528313723:N/A
CHECK|OK:PoolSize:Server1_Node01:server_member1:Default:5/100:(5%)|10:1.303999271E9:1283788583899:1:5:5.010175044932727:1283528313697:100:5:N/A
INFO|server_member1:Server1_Node01:Default:BoundedRangeStatistic:10:1.303999271E9:1283788583899:1:5:5.010175044932727:PoolSize:1283528313697:N/A:100:5
CHECK|CRITICAL:PoolSize:Server1_Node01:server_member1:HAManager.thread.pool:2/2:(100%)|2:5.2047867E8:1283788583899:1:2:1.9997628080374719:1283528313697:2:2:N/A
INFO|server_member1:Server1_Node01:HAManager.thread.pool:BoundedRangeStatistic:2:5.2047867E8:1283788583899:1:2:1.9997628080374719:PoolSize:1283528313697:N/A:2:2
CHECK|OK:PoolSize:Server1_Node01:server_member1:Message Listener:0/50:(0%)|10:0.0:1283788583899:10:10:0.0:1283528313697:50:0:N/A
INFO|server_member1:Server1_Node01:Message Listener:BoundedRangeStatistic:10:0.0:1283788583899:10:10:0.0:PoolSize:1283528313697:N/A:50:0
CHECK|OK:PoolSize:Server1_Node01:server_member1:Object Request Broker:0/50:(0%)|10:0.0:1283788583899:10:10:0.0:1283528313697:50:0:N/A
INFO|server_member1:Server1_Node01:Object Request Broker:BoundedRangeStatistic:10:0.0:1283788583899:10:10:0.0:PoolSize:1283528313697:N/A:50:0
CHECK|OK:PoolSize:Server1_Node01:server_member1:ProcessDiscovery:1/2:(50%)|1:2.5928954E8:1283788583899:1:1:0.9966172837551133:1283528414279:2:1:N/A
INFO|server_member1:Server1_Node01:ProcessDiscovery:BoundedRangeStatistic:1:2.5928954E8:1283788583899:1:1:0.9966172837551133:PoolSize:1283528414279:N/A:2:1
CHECK|OK:PoolSize:Server1_Node01:server_member1:SIBFAPInboundThreadPool:2/50:(4%)|4:5.20254968E8:1283788583899:1:4:1.9989522093993581:1283528320064:50:2:N/A
INFO|server_member1:Server1_Node01:SIBFAPInboundThreadPool:BoundedRangeStatistic:4:5.20254968E8:1283788583899:1:4:1.9989522093993581:PoolSize:1283528320064:N/A:50:2
CHECK|OK:PoolSize:Server1_Node01:server_member1:SIBFAPThreadPool:3/50:(6%)|4:7.60451275E8:1283788583899:1:4:2.9233778697579353:1283528456297:50:3:N/A
INFO|server_member1:Server1_Node01:SIBFAPThreadPool:BoundedRangeStatistic:4:7.60451275E8:1283788583899:1:4:2.9233778697579353:PoolSize:1283528456297:N/A:50:3
CHECK|OK:PoolSize:Server1_Node01:server_member1:SoapConnectorThreadPool:2/5:(40%)|3:5.20338761E8:1283788583899:1:3:1.999267779975942:1283528319233:5:2:N/A
INFO|server_member1:Server1_Node01:SoapConnectorThreadPool:BoundedRangeStatistic:3:5.20338761E8:1283788583899:1:3:1.999267779975942:PoolSize:1283528319233:N/A:5:2
CHECK|OK:PoolSize:Server1_Node01:server_member1:TCPChannel.DCS:4/20:(20%)|5:1.041063168E9:1283788583899:1:5:3.999951342641484:1283528314941:20:4:N/A
INFO|server_member1:Server1_Node01:TCPChannel.DCS:BoundedRangeStatistic:5:1.041063168E9:1283788583899:1:5:3.999951342641484:PoolSize:1283528314941:N/A:20:4
CHECK|OK:PoolSize:Server1_Node01:server_member1:WebContainer:8/100:(8%)|10:1.832855037E9:1283788583899:1:10:7.044842168064254:1283528414119:100:8:N/A
INFO|server_member1:Server1_Node01:WebContainer:BoundedRangeStatistic:10:1.832855037E9:1283788583899:1:10:7.044842168064254:PoolSize:1283528414119:N/A:100:8
No statistics found: “DB2 Universal JDBC Driver Provider”
No statistics found: “WebSphere embedded ConnectJDBC driver for MS SQL Server”

Websphere : How to apply a Fix Pack

Posted by Sagar Patil

I will list here steps carried out to patch websphere 6.1. ND deployment (vertical cluster with 2 JVMs ) from 6.1.0.21 to 6.1.0.29

[spatil@~]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)

[spatil@~]$ uname -a
Linux server1.domain.com 2.6.18-194.8.1.el5 #1 SMP Wed Jun 23 10:52:51 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

1. Locate current version of websphere using versioninfo.sh
2. Download upgrade patches certified for above release
3. Shutdown IHS,Websphere Services
4. If needed download & install “IBM Update Installer”
5. Use new installer to apply fix pack to IHS,WAS & PLUG-IN
6. Startup IHS,Websphere services
7. Locate version of websphere using versioninfo.sh, it should show the new release number

While installing AppServer components, you may see that installer freezes at 76% .  To see progress of an installer monitor “Install log”

[was61@Server1 tmp]$ pwd
/opt/IBM/WebSphere/UpdateInstaller/logs/tmp
[was61@Server1 tmp]$ tail -f updatelog.txt
(Aug 21, 2011 10:38:13 AM), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, msg1, Installing component: startupbean, percent complete: 75%
(Aug 21, 2011 10:38:15 AM), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, msg1, Installing component: transaction.impl, percent complete: 76%
(Aug 21, 2011 10:38:19 AM), Install, com.ibm.ws.install.ni.ismp.actions.InstallNIFMaintenance, msg1, Installing component: uddi.bundle, percent complete: 76%

1. Locate current version of Websphere components using $PROFILE/Node/bin/versioninfo.sh , $HTTP_HOME/bin/versioninfo.sh & $HTTP_HOME/Plugins/bin/versioninfo.sh command.

[was61@Server1 bin]$ ./versionInfo.sh
WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.4.2, dated 6/5/08
———————————————————————
IBM WebSphere Application Server Product Installation Status Report
———————————————————————
Report at date and time March 31, 2010 8:29:16 PM GMT
Installation
———————————————————————
Product Directory        /opt/IBM/WebSphere/AppServer
Version Directory        /opt/IBM/WebSphere/AppServer/properties/version
DTD Directory            /opt/IBM/WebSphere/AppServer/properties/version/dtd
Log Directory            /opt/IBM/WebSphere/AppServer/logs
Backup Directory         /opt/IBM/WebSphere/AppServer/properties/version/nif/backup
TMP Directory            /tmp
Product List
———————————————————————
ND                       installed
Installed Product
———————————————————————
Name IBM WebSphere Application Server – ND
Version                  6.1.0.21
ID                       ND
Build Level              cf210844.13
Build Date 11/6/08
———————————————————————
End Installation Status Report
———————————————————————
Image:Fix_pack.jpg

2. Download upgrade patches certified for above release

After download the patches looked like below
-rw-rw-r– 1 was61 was61 439113810 Mar 31 09:44 6.1.0-WS-WAS-LinuxX64-FP0000029.pak
-rw-rw-r– 1 was61 was61  18690237 Mar 31 09:44 6.1.0-WS-PLG-LinuxX64-FP0000029.pak
-rw-rw-r– 1 was61 was61  12795097 Mar 31 09:44 6.1.0-WS-IHS-LinuxX64-FP0000029.pak
-rwxrwxr-x 1 was61 was61 108644602 Mar 31 10:17 7.0.0.9-WS-UPDI-LinuxAMD64.zip

3. Shutdown IHS,Websphere Services

Stop JVM – /opt/IBM/WebSphere/AppServer/profiles/Profile01/Node/bin/stopServer.sh
Stop DMGR- /opt/IBM/WebSphere/AppServer/profiles/Profile01/Node/bin/stopNode.sh
Stop IHS – sudo /opt/IBM/HTTPServer/bin/apachectl -k stop

4. Intall “IBM Update Installer”  : Xwindows GUI Needed
Unzip 7.0.0.9-WS-UPDI-LinuxAMD64.zip
Navigate to UpdateInstaller and run “install”
Follow the screens as listed below

Image:UpdateInstaller_2.jpg

Image:UpdateInstaller_3.jpg

Image:UpdateInstaller_4.jpg

Image:UpdateInstaller_5.jpg

Image:UpdateInstaller_6.jpg

Image:UpdateInstaller_7.jpg

Image:UpdateInstaller_8.jpg

Image:UpdateInstaller_9.jpg

Please make sure “Lauch IBM Update Installer” is selected before you click on FINISH.

5. Use new installer to apply fix pack to IHS, WAS & PLUG-IN

Image:UpdateInstaller_10.jpg

Image:UpdateInstaller_11.jpg

Image:UpdateInstaller_12.jpg

Click on dropdown and then select HTTPServer

Image:UpdateInstaller_13.jpg

Image:UpdateInstaller_14.jpg

Image:UpdateInstaller_15.jpg

Image:UpdateInstaller_16.jpg

Please navigate to directory where fix pack patches have been downloaded.

Image:UpdateInstaller_17.jpg

Image:UpdateInstaller_18.jpg

Image:UpdateInstaller_21.jpg

Click on “RELAUNCH” to invoke updateinstaller again.
We have finished patching IHS but need to carry update for Appserver(WebSphere) and PLUG-IN.
Select Appserver at drop down list box

Image:UpdateInstaller_22.jpg

Image:UpdateInstaller_23.jpg

Image:UpdateInstaller_24.jpg

Image:UpdateInstaller_25.jpg

Image:UpdateInstaller_26.jpg

Image:UpdateInstaller_27.jpg

Image:UpdateInstaller_28.jpg

Finally select PLUG-IN from drop down list box after invoking updateinstaller again

Image:UpdateInstaller_29.jpg

Image:UpdateInstaller_30.jpg

Image:UpdateInstaller_31.jpg

Image:UpdateInstaller_32.jpgWe can safely ignore the warning above
Log files could be located at Directory selected for UpdateInstaller/logs/tmp
[was61@tmp]$ pwd
/opt/IBM/WebSphere/UpdateInstaller/logs/tmp
[was61@ tmp]$ ls -lrt
total 12
-rw-r–r– 1 was61 web 6488 Jun 14 18:38 updatetrace.log
-rw-r–r– 1 was61 web 3552 Jun 14 18:38 updatelog.txt

6. Startup IHS,Websphere services
Start JVM – /opt/IBM/WebSphere/AppServer/profiles/Profile01/Node/bin/startServer.sh
Start DMGR- /opt/IBM/WebSphere/AppServer/profiles/Profile01/Node/bin/startNode.sh
Start IHS – sudo /opt/IBM/HTTPServer/bin/apachectl -k start

7. Locate version of websphere using versioninfo.sh, it should show the new release number

[was61@Server1 bin]$ ./versionInfo.sh
WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.4.3, dated 11/12/08
———————————————————————
IBM WebSphere Application Server Product Installation Status Report
———————————————————————
Report at date and time 14 August 2011 05:09:45 BST
Installation
———————————————————————
Product Directory        /opt/IBM/WebSphere/AppServer
Version Directory        /opt/IBM/WebSphere/AppServer/properties/version
DTD Directory            /opt/IBM/WebSphere/AppServer/properties/version/dtd
Log Directory            /opt/IBM/WebSphere/AppServer/logs
Backup Directory         /opt/IBM/WebSphere/AppServer/properties/version/nif/backup
TMP Directory            /tmp
Product List
———————————————————————
ND                       installed
Installed Product
———————————————————————
Name IBM WebSphere Application Server – ND
Version                  6.1.0.29
ID                       ND
Build Level              cf290949.16
Build Date 12/11/09
———————————————————————
End Installation Status Report
———————————————————————

/opt/IBM/HTTPServer/bin
[was61@Server1 bin]$ ./versionInfo.sh
WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.4.3, dated 11/12/08
———————————————————————
IBM WebSphere Application Server Product Installation Status Report
———————————————————————
Report at date and time 18 August 2011 14:12:27 BST
Installation
——————————————————————————–
Product Directory        /opt/IBM/HTTPServer
Version Directory        /opt/IBM/HTTPServer/properties/version
DTD Directory            /opt/IBM/HTTPServer/properties/version/dtd
Log Directory            /opt/IBM/HTTPServer/logs
Backup Directory         /opt/IBM/HTTPServer/properties/version/nif/backup
TMP Directory            /tmp
Product List
———————————————————————
IHS                      installed
Installed Product
———————————————————————
Name IBM HTTP Server
Version                  6.1.0.29
ID                       IHS
Build Level              cf311015.02
Build Date 4/15/10
———————————————————————
End Installation Status Report
———————————————————————

[was61@Server1 bin]$ ./versionInfo.sh
WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.4.3, dated 11/12/08
———————————————————————
IBM WebSphere Application Server Product Installation Status Report
———————————————————————
Report at date and time 18 August 2011 14:13:41 BST
Installation
———————————————————————

Product Directory        /opt/IBM/HTTPServer/Plugins
Version Directory        /opt/IBM/HTTPServer/Plugins/properties/version
DTD Directory            /opt/IBM/HTTPServer/Plugins/properties/version/dtd
Log Directory            /opt/IBM/HTTPServer/Plugins/logs
Backup Directory         /opt/IBM/HTTPServer/Plugins/properties/version/nif/backup
TMP Directory            /tmp
Product List
———————————————————————
PLG                      installed
Installed Product
———————————————————————
Name                     Web server plug-ins for IBM WebSphere Application Server
Version                  6.1.0.29
ID                       PLG
Build Level              cf311015.02
Build Date 4/15/10
———————————————————————
End Installation Status Report

We can safely ignore the warning above
Log files could be located at Directory selected for UpdateInstaller/logs/tmp
[was61@tmp]$ pwd
/opt/IBM/WebSphere/UpdateInstaller/logs/tmp
[was61@eugbbopg09ld tmp]$ ls -lrt
total 12
-rw-r–r– 1 was61 web 6488 Jun 14 18:38 updatetrace.log
-rw-r–r– 1 was61 web 3552 Jun 14 18:38 updatelog.txt

6. Startup IHS,Websphere services
Start JVM – /opt/IBM/WebSphere/AppServer/profiles/Profile01/Node/bin/startServer.sh
Start DMGR- /opt/IBM/WebSphere/AppServer/profiles/Profile01/Node/bin/startNode.sh
Start IHS – sudo /opt/IBM/HTTPServer/bin/apachectl -k start

7. Locate version of websphere using versioninfo.sh, it should show the new release number
[was61@eugbbopg03lt bin]$ ./versionInfo.sh
WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.4.3, dated 11/12/08
———————————————————————
IBM WebSphere Application Server Product Installation Status Report
———————————————————————
Report at date and time 31 March 2010 12:06:26 BST
Installation
———————————————————————
Product Directory        /opt/IBM/WebSphere/AppServer
Version Directory        /opt/IBM/WebSphere/AppServer/properties/version
DTD Directory            /opt/IBM/WebSphere/AppServer/properties/version/dtd
Log Directory            /opt/IBM/WebSphere/AppServer/logs
Backup Directory         /opt/IBM/WebSphere/AppServer/properties/version/nif/backup
TMP Directory            /tmp
Product List
———————————————————————
ND                       installed
Installed Product
———————————————————————
Name IBM WebSphere Application Server – ND
Version                  6.1.0.29
ID                       ND
Build Level              cf290949.16
Build Date 12/11/09
———————————————————————
End Installation Status Report
———————————————————————

Using the same update process I have updated STG from 6.1.0.29 to 6.1.0.31

[was61@eugbbopg03lt bin]$ ./versionInfo.sh
WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.4.3, dated 11/12/08
———————————————————————
IBM WebSphere Application Server Product Installation Status Report
———————————————————————
Report at date and time 14 August 2011 05:09:45 BST
Installation
———————————————————————
Product Directory        /opt/IBM/WebSphere/AppServer
Version Directory        /opt/IBM/WebSphere/AppServer/properties/version
DTD Directory            /opt/IBM/WebSphere/AppServer/properties/version/dtd
Log Directory            /opt/IBM/WebSphere/AppServer/logs
Backup Directory         /opt/IBM/WebSphere/AppServer/properties/version/nif/backup
TMP Directory            /tmp
Product List
———————————————————————
ND                       installed
Installed Product
———————————————————————
Name IBM WebSphere Application Server – ND
Version                  6.1.0.29
ID                       ND
Build Level              cf290949.16
Build Date 12/11/09
———————————————————————
End Installation Status Report
———————————————————————
/opt/IBM/HTTPServer/bin
[was61@eugbbopg03lt bin]$ ./versionInfo.sh
WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.4.3, dated 11/12/08
———————————————————————
IBM WebSphere Application Server Product Installation Status Report
———————————————————————
Report at date and time 18 August 2011 14:12:27 BST
Installation
——————————————————————————–
Product Directory        /opt/IBM/HTTPServer
Version Directory        /opt/IBM/HTTPServer/properties/version
DTD Directory            /opt/IBM/HTTPServer/properties/version/dtd
Log Directory            /opt/IBM/HTTPServer/logs
Backup Directory         /opt/IBM/HTTPServer/properties/version/nif/backup
TMP Directory            /tmp
Product List
———————————————————————
IHS                      installed
Installed Product
———————————————————————
Name IBM HTTP Server
Version                  6.1.0.31
ID                       IHS
Build Level              cf311015.02
Build Date 4/15/10
———————————————————————
End Installation Status Report
———————————————————————
[was61@eugbbopg03lt bin]$ ./versionInfo.sh
WVER0010I: Copyright (c) IBM Corporation 2002, 2005; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.4.3, dated 11/12/08
———————————————————————
IBM WebSphere Application Server Product Installation Status Report
———————————————————————
Report at date and time 18 August 2011 14:13:41 BST
Installation
———————————————————————Product Directory        /opt/IBM/HTTPServer/Plugins
Version Directory        /opt/IBM/HTTPServer/Plugins/properties/version
DTD Directory            /opt/IBM/HTTPServer/Plugins/properties/version/dtd
Log Directory            /opt/IBM/HTTPServer/Plugins/logs
Backup Directory         /opt/IBM/HTTPServer/Plugins/properties/version/nif/backup
TMP Directory            /tmp
Product List
———————————————————————
PLG                      installed
Installed Product
———————————————————————
Name                     Web server plug-ins for IBM WebSphere Application Server
Version                  6.1.0.31
ID                       PLG
Build Level              cf311015.02
Build Date 4/15/10
———————————————————————
End Installation Status Report

Compare Websphere Configuration Details : Visual Configuration Explorer (VCE)

Posted by Sagar Patil

I have many websphere 6.x ND clustered servers and growing every single week. Lots of them are upgraded from previous websphere installations to ND 6.x now.

We have admin shell scripts written but they are not portable.  There is diff in naming conventions for profile, Cluster name, Application Server name etc. We have some issues and they all point to diff in configuration settings.

Recently I came across tool called “Visual Configuration Explorer (VCE)”.

Here is a forum for discussions related to this tool:
http://www.ibm.com/developerworks/forums/forum.jspa?forumID=1139

Getting Started with Visual Configuration Explorer

Download the Workbench component of ISA Version 4.0 for Windows via the following URL:
http://www.ibm.com/software/support/isa/

You may want to go thru this excellent ppt file about IBM Support assistant

http://www.oracledbasupport.co.uk/wp-content/uploads/2010/09/Headless_Help.txt
http://www.oracledbasupport.co.uk/wp-content/uploads/2010/09/VCEHeadlessRuntimeReadme-1.txt

Websphere : Change application server ports

Posted by Sagar Patil

I have set of JVM ports (9080,9081) accessible thru firewall.  This week when I built new websphere clustered ND environment something went wrong and it picked up ports 9081,9082 instead of usual 9080,9081. Here is a process I used to alter them from 9081->9080 & 9082->9081

Login at deployment manager -> Sselect Servers -> Application Servers -> Server1 -> Scroll down at right  hand pane until Communications and select “Ports”


Click on Details and edit both port numbers 9081/9444


Finally generate and propagate plugin to reflect new port changes at IBM Http server “plugin-cfg.xml”

Old Plugin-cfg.xml Settings :

<ServerCluster CloneSeparatorChange=”false” GetDWLMTable=”false” IgnoreAffinityRequests=”true” LoadBalance=”Round Robin” Name=”cluster” PostBufferSize=”64″ PostSizeLimit=”-1″ RemoveSpecialHeaders=”true” RetryInterval=”60″>
<Server CloneID=”15a4r5p9p” ConnectTimeout=”0″ ExtendedHandshake=”false” LoadBalanceWeight=”2″ MaxConnections=”-1″ Name=”Server1_Node01_server_member1″ ServerIOTimeout=”0″ WaitForContinue=”false”>
<Transport Hostname=”Server1″ Port=”9081” Protocol=”http”/>
<Transport Hostname=”Server1″ Port=”9444” Protocol=”https”>
<Property Name=”keyring” Value=”/opt/IBM/WebSphere/Plugins/config/ihs-prpc/plugin-key.kdb”/>
<Property Name=”stashfile” Value=”/opt/IBM/WebSphere/Plugins/config/ihs-prpc/plugin-key.sth”/>
</Transport>
</Server>

Open /opt/IBM/WebSphere/Plugins/config/ihs-prpc/plugin-cfg.xml and make sure you see the new port changes

<ServerCluster CloneSeparatorChange=”false” GetDWLMTable=”false” IgnoreAffinityRequests=”true” LoadBalance=”Round Robin” Name=”cluster” PostBufferSize=”64″ PostSizeLimit=”-1″ RemoveSpecialHeaders=”true” RetryInterval=”60″>
<Server CloneID=”15a4r5p9p” ConnectTimeout=”0″ ExtendedHandshake=”false” LoadBalanceWeight=”2″ MaxConnections=”-1″ Name=”Server1_Node01_server_member1″ ServerIOTimeout=”0″ WaitForContinue=”false”>
<Transport Hostname=”Server1″ Port=”9080” Protocol=”http”/>
<Transport Hostname=”Server1″ Port=”9443” Protocol=”https”>
<Property Name=”keyring” Value=”/opt/IBM/WebSphere/Plugins/config/ihs-prpc/plugin-key.kdb”/>
<Property Name=”stashfile” Value=”/opt/IBM/WebSphere/Plugins/config/ihs-prpc/plugin-key.sth”/>
</Transport>
</Server>

Protected: GSK_ERROR_BAD_CERT error configuring SSL between Plug-in and Application Server V6.1

Posted by Sagar Patil

This content is password protected. To view it please enter your password below:

Wsadmin Details

Posted by Sagar Patil

To administer the WebSphere Application Server environment, wsadmin includes some specialized administrative objects.

Object Name Description

AdminConfig Object used to view and manipulate configuration elements (xml files).
AdminControl Object used to view and manipulate active application server objects (MBeans)
AdminApp Object used to install and manipulate applications.
AdminTask Object used to execute administrative and server management commands.
Help Object used to provide usage information about the administrative objects.

1. AdminConfig Overview  : Looking at the AdminConfig.help() text, you see that this object can be used to perform several operations on WebSphere Application Server configuration objects. These operations include  the following:
• List
• Create
• Remove
• Display
• Modify

AdminConfig methods:
list()
getid()
getObjectName()
showAttribute()
AdminControl methods:
getAttribute()
getCell()

2. AdminControl Overview  : The AdminControl methods here are grouped together to help you understand their respective roles

The AdminControl Object
getNode()
completeObjectName()
startServer()
stopServer()

3. AdminApp Overview  : The AdminApp object operates on applications. AdminApp.help() provides the complete list of method calls, and the details about each method can be displayed by calling AdminApp.help(‘methodName’ ).

The following types of operations can be performed on an application:
– Information
– Install
-Uninstall
– Modify

$WAS_HOME/Dmgr/bin/wsadmin.sh -conntype none -lang jython

Find out more info on an erorr message WASX7023E

wsadmin>print Help.message(‘WASX7023E’)
Explanation: An error was reported from the connector when trying to establish a connection to the host.
User action: Examine the accompanying exception information and the information in the wsadmin.traceout file to determine the cause of the error.

Locate configured ports for a system

wsadmin>print AdminTask.reportConfiguredPorts()
Ports configured in cell server1_Cell
Node server1_Manager / Server dmgr
Server1:7277 CELL_DISCOVERY_ADDRESS
Server1:9809 BOOTSTRAP_ADDRESS
Server1:8879 SOAP_CONNECTOR_ADDRESS
*:9060 WC_adminhost
*:9352 DCS_UNICAST_ADDRESS
*:9043 WC_adminhost_secure

List Server ports used by WAS, please replace Dmgr with Node Names

wsadmin>print AdminTask.listServerPorts(‘Dmgr’);
[CSIV2_SSL_SERVERAUTH_LISTENER_ADDRESS [ [port 9403] [node localhost_Manager] [host localhost] [server Dmgr] ]]
[WC_adminhost [ [port 9060] [node localhost_Manager] [host *] [server Dmgr] ]]
[DCS_UNICAST_ADDRESS [ [port 9352] [node localhost_Manager] [host *] [server Dmgr] ]]
[BOOTSTRAP_ADDRESS [ [port 9809] [node localhost_Manager] [host localhost] [server Dmgr] ]]
[SAS_SSL_SERVERAUTH_LISTENER_ADDRESS [ [port 9401] [node localhost_Manager] [host localhost] [server Dmgr] ]]
[SOAP_CONNECTOR_ADDRESS [ [port 8879] [node localhost_Manager] [host localhost] [server Dmgr] ]]
[CELL_DISCOVERY_ADDRESS [ [port 7277] [node localhost_Manager] [host localhost] [server Dmgr] ]]
[ORB_LISTENER_ADDRESS [ [port 9100] [node localhost_Manager] [host localhost] [server Dmgr] ]]
[CSIV2_SSL_MUTUALAUTH_LISTENER_ADDRESS [ [port 9402] [node localhost_Manager] [host localhost] [server Dmgr] ]]
[WC_adminhost_secure [ [port 9043] [node localhost_Manager] [host *] [server Dmgr] ]]

Check if the current configuration is correct

wsadmin>print AdminTask.reportConfigInconsistencies();
Configuration consistency report for cell server1_Cell
No consistency problems were found.

Print Server Configuration

wsadmin>print AdminConfig.list(‘Server’);
Dmgr(cells/localhost_Cell/nodes/localhost_Manager/servers/Dmgr|server.xml#Server_1)
ihs-localhost(cells/localhost_Cell/nodes/localhost_Node01/servers/ihs-localhost|server.xml#Server_1264773909852)
nodeagent(cells/localhost_Cell/nodes/localhost_Node01/servers/nodeagent|server.xml#Server_1120677326772)
server_member1(cells/localhost_Cell/nodes/localhost_Node01/servers/server_member1|server.xml#Server_1265379120807)
server_member2(cells/localhost_Cell/nodes/localhost_Node01/servers/server_member2|server.xml#Server_1265379122341)

Disable Application Security

[was61@bin]$ ./opt/IBM/WebSphere/AppServer/profiles/Profile01/Dmgr/bin/wsadmin.sh -conntype NONE

wsadmin>AdminTask.isAppSecurityEnabled();
‘true’
wsadmin>securityoff();

LOCAL OS security is off now but you need to restart server1 to make it affected.
wsadmin> $AdminConfig save;

WebSphere Version

wsadmin>svr = AdminControl.queryNames( ‘type=Server,*’ )

wsadmin>print AdminControl.invoke( svr, ‘getVersionsForAllProducts’ )
WASX7015E: Exception running command: “AdminControl.invoke( svr, ‘getVersionsForAllProducts’ )”; exception information:
com.ibm.ws.scripting.ScriptingException: WASX7025E: Error found in String “WebSphere:name=dmgr,process=dmgr,platform=proxy,node=Server1_Manager,j2eeType=J2EEServer,version=6.1.0.31,type=Server,mbeanIdentifier=cells/Server1_Cell/nodes/Server1_Manager/servers/dmgr/server.xml#Server_1,cell=Server1_Cell,spec=1.0,processType=DeploymentManager
WebSphere:name=nodeagent,process=nodeagent,platform=proxy,node=Server1_Node01,j2eeType=J2EEServer,version=6.1.0.31,type=Server,mbeanIdentifier=cells/Server1_Cell/nodes/Server1_Node01/servers/nodeagent/server.xml#Server_1120677326772,cell=Server1_Cell,spec=1.0,processType=NodeAgent

wsadmin>print AdminControl.invoke( svr, ‘getVersionsForAllProducts’ )
WASX7015E: Exception running command: “AdminControl.invoke( svr, ‘getVersionsForAllProducts’ )”; exception information:
com.ibm.ws.scripting.ScriptingException: WASX7025E: Error found in String “WebSphere:name=dmgr,process=dmgr,platform=proxy,node=eugbbopg03lt_Manager,j2eeType=J2EEServer,version=6.1.0.31,type=Server,mbeanIdentifier=cells/eugbbopg0               3lt_Cell/nodes/eugbbopg03lt_Manager/servers/dmgr/server.xml#Server_1,cell=eugbbopg03lt_Cell,spec=1.0,processType=DeploymentManager
WebSphere:name=nodeagent,process=nodeagent,platform=proxy,node=eugbbopg03lt_Node01,j2eeType=J2EEServer,version=6.1.0.31,type=Server,mbeanIdentifier=cells/eugbbopg03lt_Cell/nodes/eugbbopg03lt_Node01/servers/nodeagent/server.xml#Ser               ver_1120677326772,cell=eugbbopg03lt_Cell,spec=1.0,processType=NodeAgent
WebSphere:name=server_member1,process=server_member1,platform=proxy,node=eugbbopg03lt_Node01,j2eeType=J2EEServer,version=6.1.0.31,type=Server,mbeanIdentifier=cells/eugbbopg03lt_Cell/nodes/eugbbopg03lt_Node01/servers/se               rver_member1/server.xml#Server_1259674425316,cell=eugbbopg03lt_Cell,spec=1.0,processType=ManagedProcess
WebSphere:name=server_member2,process=server_member2,platform=proxy,node=eugbbopg03lt_Node01,j2eeType=J2EEServer,version=6.1.0.31,type=Server,mbeanIdentifier=cells/eugbbopg03lt_Cell/nodes/eugbbopg03lt_Node01/servers/se               rver_member2/server.xml#Server_1259674426040,cell=eugbbopg03lt_Cell,spec=1.0,processType=ManagedProcess”; cannot create ObjectName.

Websphere : How to change HOSTNAME using ws_ant scripts

Posted by Sagar Patil

Today I have a new_server which I need to build to my websphere old_server.  The first thing to do is rename Hostname from old_server to new_server. Here is a script I used  to just do that.

Download “Configuration management scripts for V6 ConfigScripts.zip” from  http://www.ibm.com/developerworks/websphere/library/samples/SampleScripts.html

Sample exportImport.xml attached here http://www.oracledbasupport.co.uk/wp-content/uploads/2010/08/exportImport.xml

[websphere@new_server config_management]$ /opt/IBM/WebSphere/AppServer/bin/ws_ant.sh -profileName dmgr -buildfile exportImport.xml -DstartManager=yes -DoldHostName=old_server -DnewHostName=new_server change  HostName
Buildfile: exportImport.xml

checkRelease:
[wsadmin] WASX7357I: By request, this scripting client is not connected to any server process. Certain configuration and application operations will be available in local mode.
[wsadmin] Executing ValidateRelease.jacl script
[wsadmin] List of Node is new_server_Manager(cells/old_server_Cell/nodes/old_server_Manager|node.xml#Node_1)
[wsadmin] old_server_Node01(cells/old_server_Cell/nodes/old_server_Node01|node.xml#Node_1)

checkNewHost:
checkOldHost:

changeHostName:
[echo] Was Home is /opt/IBM/WebSphere/AppServer
[echo] User Install Root is /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr
[echo] Config Root is /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/config
[echo] Cell name is old_server_Cell
[echo] Node name is old_server_Manager

changeServerIndexConfig:
[echo] Modifying serverindex.xml from old_server to new_server

changeHNServerConfig:
[echo] Modifying server.xml from old_server to new_server

changeWsadminProp:
[echo] Modifying wsadmin.properties from old_server to new_server

startManager:

doStartManager:
[exec] ADMU0116I: Tool information is being logged in file
[exec]            /opt/IBM/WebSphere/AppServer/profiles/Profile01/dmgr/logs/dmgr/startServer.log
[exec] ADMU0128I: Starting tool with the dmgr profile
[exec] ADMU3100I: Reading configuration for server: dmgr
[exec] ADMU3200I: Server launched. Waiting for initialization status.
[exec] ADMU3000I: Server dmgr open for e-business; process id is 22554

BUILD SUCCESSFUL
Total time: 28 seconds
[websphere@new_server config_management]$ ps -ef | grep java

Now let’s connect to the new DMGR using URL  https://new_node:9043/ibm/console/ . I could connect successfully with username /pwd as of old_server

Top of Page

Top menu