d8888 888 888      88888888888 888      d8b                                 888       888          888       .d8888b.           888                               
      d88888 888 888          888     888      Y8P                                 888   o   888          888      d88P  Y88b          888                               
     d88P888 888 888          888     888                                          888  d8b  888          888      Y88b.               888                               
    d88P 888 888 888          888     88888b.  888 88888b.   .d88b.  .d8888b       888 d888b 888  .d88b.  88888b.   "Y888b.   88888b.  88888b.   .d88b.  888d888 .d88b.  
   d88P  888 888 888          888     888 "88b 888 888 "88b d88P"88b 88K           888d88888b888 d8P  Y8b 888 "88b     "Y88b. 888 "88b 888 "88b d8P  Y8b 888P"  d8P  Y8b 
  d88P   888 888 888          888     888  888 888 888  888 888  888 "Y8888b.      88888P Y88888 88888888 888  888       "888 888  888 888  888 88888888 888    88888888 
 d8888888888 888 888          888     888  888 888 888  888 Y88b 888      X88      8888P   Y8888 Y8b.     888 d88P Y88b  d88P 888 d88P 888  888 Y8b.     888    Y8b.     
d88P     888 888 888          888     888  888 888 888  888  "Y88888  88888P'      888P     Y888  "Y8888  88888P"   "Y8888P"  88888P"  888  888  "Y8888  888     "Y8888  
                                                                 888                                                          888                                        
                                                            Y8b d88P                                                          888                                        
                                                             "Y88P"                                                           888   

All Things WebSphere

Concerns and issues relating to all versions of WebSphere Application Server

Tuesday, September 27, 2011


WebSphere Application Server is now OUT

In case you missed it WebSphere Application Server V8.0 Fix Pack 1 NOW AVAILABLE!

This is an absolute MUST-HAVE if you are deploying your application to WAS 8.
List of fixes is found http://www-01.ibm.com/support/docview.wss?uid=swg27022958

There are a lot of fixes and enhancements in multiple component areas.
This is absolutely critical if you are having any issues with your WAS install

Some of the fixes to skip directory and zip archive scanning will speedup app deploy and reduce footprint.
There are a lot of enhancements and ease of use fixes like these in

Go get it today!



WebSphere Application Server SIBus tuning for production deployments



Increasing memory for wsadmin task

Customers use the wsadmin task (ant XML or programatically) to execute the WebSphere command-line administration tool with the specified arguments.

To use this task, add the following to your Ant build.xml  
<taskdef name="wsadmin" classname="com.ibm.websphere.ant.tasks.WsAdmin"/>

WsAdmin ant task supported arbitrary -X arguments to the task's forked JVM  by directly adding them to the build.xml :
<wsadmin script="${basedir}/script.py"> ...
   <arg value="blah" />
   <jvmarg value="-XX:MaxPermSize=128m"/>

You can also do this programatically directly by using  WsAdmin task. You will need to setup classpath similar to how it is set for the wsadmin ant task. Modify WAS_HOME/bin/ws_ant.bat/sh script to setup the classpath for your custom task.

WsAdmin task = new WsAdmin();
if (forceConnType != null) {
    System.out.println("forcing connection type to: "+forceConnType);
} else {
if (com.ibm.ws.ant.utils.OsUtils.isSolaris()
           || com.ibm.ws.ant.utils.OsUtils.isHPUX()) {
     //increase permgen space on solaris/hp-ux


Friday, September 16, 2011


FFDC browser tool by David Cohen


Provides greater accessibility to FFDC logs in an organized and easy to use fashion.

Simplifies the process of locating, accessing and displaying FFDC log contents.
 Works in both distributed and zOS environments.
 Works in Base, ND, Clustered and Secure topologies.
 Direct access from any web browser, provides remote access to the WAS log files-
  • No need to incur the overhead of more heavyweight tools to view logs, e.g. admin console
Realtime tool: dynamically accesses content from live WAS system
 Very small application footprint: solely servlet based
  • Can be run during stress with minimal or no impact
Developed out of a need to get to FFDC and system log files without the use of the admin console, FTP clients or complicated file system navigation.



Dynacache Utility script to clear cache instances

I have uploaded an utility Dynacache management script to github that runs on the Deployment Manager, and for each application server on each node, calls clearCache for a set of cache instances. This script can probably run at midnight when you want to flush your entire cache.

Kevin Grigorenko from the WAS SWAT team wrote this script. Thanks Kevin!


Wednesday, September 14, 2011


Good documentation on Installing/Configuring the sample applications for WAS8.0

Accessing the samples -->

The samples currently available in the Samples section of the WAS V8 Information Center demonstrate the following technologies: Service Component Architecture (SCA), Communications Enabled Applications (CEA), OSGi applications, XML, and Internationalization service

For instance servlet 3.0 sample can be found here

Samples available

Here is a nice article by Philippa Rhodes that gives an overview of the v8 samples: 

Here is the v8.0 link to samples (you can access this by the above link as well):



Sample code for exercising Dynacache DistributedMap

A lot of times customers ask me for sample code to drive a Dynacache DistributedMap.

I have put up one such sample on github that illustrates the common and basic operations with Dynacache DistributedMap i.e. the WebSphere Application Server's default POJO cache.

Configuring a Dynacache distributed map is covered under Using the DistributedMap and DistributedObjectCache interfaces for the dynamic cache

Best practices and tuning of Dynacache and DRS for replication have been covered in a previous blog post here http://wasdynacache.blogspot.com/2011/07/tuning-dynacache-and-drs.html


Tuesday, September 13, 2011


IBM WebSphere security questions

Today's blog post is a gem from WAS Senior Software Engineer Fred Rowe. We often get questions related to malicious data source access. Some these include how  users with wadmin can access be prevented from gathering or pulling datasource credentials for database access. How to  segment the access from intentional and un-intential access to customer data.

There are two primary ways to secure WebSphere datasources, each method has a user name and password associated with it.  In both cases, if displayed from either the admin console or wsadmin, the password value is either:
  • obscured by dots
  • obscured by asterisks
  • displayed in encoded form
1. Using datasource custom properties: 
This method is vendor-specific based on the JDBC provider associated with the datasource.  Typically, JDBC drivers support the custom properties userand password. If a custom property named password is created, it's value will be obscured in the WAS admin console Data sources > datasource_name > Custom properties list page as follows:

Note that the property named pwd is not obscured.  Similarly, on the  WAS admin console Data sources > datasource_name > Custom properties > password details page, the XOR-encoded version of the password is displayed:

And finally, if the password property is examined from wsadmin, the XOR-encoded version of the password is displayed:
wsadmin>pwd = AdminConfig.getid("/DataSource:datasource_name/J2EEResourcePropertySet:/J2EEResourceProperty:password/")
wsadmin>print AdminConfig.showAttribute(pwd, "value")

2. Using JAAS - J2C authentication aliases:
If a JAAS auth alias is created for the datasource, the password of the alias is obscured on the WAS admin console Data sources >  datasource_name > JAAS - J2C authentication data > myAlias details page:

Similarly, if the value of the password attribute of an auth alias object is examined from wsadmin:
wsadmin>print AdminConfig.getid("/JAASAuthData:/")
wsadmin>print AdminConfig.showAttribute(authAlias, "password")


Tuesday, September 6, 2011


Resource Workload Routing in WebSphere Application Server 8

WebSphere Application Server V8 adds improved high availability (HA) support in several scenarios, including:
  • Resource failover and retry logic for relational data sources and JCA connection factories, where the administrator can tailor the data sources and connection factory configuration based on application need to specify:
    • Number of connection retries.
    • Alternate/fail-over resource.
    • Pre-population of alternate/fail-over resource connection pool.
Resource Workload Routing is a new feature exclusive to the WebSphere Application Server that enables applications to easily recover from resource outages, such as database failures, without requiring you to embed alternate resource and configuration information.

Resource workload routing includes data source and connection factory fail over and subsequent fail back from a predefined alternate or backup resource. You can tailor the resource fail over and failback flexible configuration options to meet your environment-specific and application needs.new

On distributed systems, you can enable resource routing by configuring an alternate resource.
A data source and connection factory can fail over and fail back automatically when a specified or default failure threshold value is reached. When fail over occurs, the application switches from using the primary resource to using the alternate resource. Fail back occurs when the application switches back from the alternate resource to the primary resource.

Implementers of Resource Adapters take note - Fail over works with non-relational resource adapters that have a ManagedConnection object that implements a testConnection method.

Instead of rolling your own architecture and policy for outbound resource fail over please leverage this  in-built resource routing High Availability function to prevent disruption to end users. 


Friday, September 2, 2011


WebSphere Application Server- Windows native memory leak

Please look at this excellent WSTE session by Kevin Grigorenko that covers native memory issues for WebSphere Application Server, particularly native OutOfMemoryErrors and leaks on Windows.

It covers theory, detecting and monitoring, isolating and avoiding, and finally analyzing leaks with UMDH, LeakDiag, DebugDiag, VMMap and windbg.

Windows Native Memory Problem Determination Techniques and Tools for WebSphere Application Server - http://www-01.ibm.com/support/docview.wss?uid=swg27021906

To replay the recording of this 46 minutes Webcast, click on Download Audio (5.0MB - audio in MP3 format) then open the PDF file



WebSphere Application Server - How to display SQL statements executed from J2EE applications using minimal tracing

Is there a minimal trace string to view SQL statements being executed by an application running on WebSphere Application Server?


If the application uses java.sql.PreparedStatement objects, then there is a relatively lightweight way to obtain the SQL statements being executed. PreparedStatement objects are often used in applications because of their performance over regular java.sql.Statement objects.

To view the SQL statements being executed using a PreparedStatement object, enable WebSphere tracing for the class that implements java.sql.PreparedStatement:com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement. The corresponding trace specification is: com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement=all

Consider the following sample SQL INSERT statement being executed from the application using a java.sql.PreparedStatement:

String insertCoffeeSaleString
PreparedStatement insertCoffeeSale
= connection.prepareStatement(insertCoffeeSaleString);

With com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement=all trace enabled, the following output can be seen when the Prepared Statement is initialized:

Trace: 2011/04/07 14:37:12.100 01 t=6C9020 c=UNK key=P8 (13007002)
   ThreadId: 0000002b
   SourceId: com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement
   Category: FINER
   ExtendedMessage: Entry; org.apache.derby.impl.jdbc.EmbedPreparedStatement30@401c401c, com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@3
 c4a3c4a, HOLD CURSORS OVER COMMIT (1), PSTMT: INSERT INTO SALES (ITEM_NAME,QUANTITY,PRICE) values('Coffee',5,1.25) 1003 1007 1 0 0



December 2006   September 2008   January 2009   February 2009   March 2009   September 2009   October 2009   November 2009   December 2009   January 2010   February 2010   March 2010   April 2010   October 2010   January 2011   February 2011   April 2011   May 2011   June 2011   July 2011   August 2011   September 2011   October 2011   November 2011   December 2011   January 2012   February 2012   March 2012   April 2012   May 2012   June 2012   July 2012   August 2012   September 2012   October 2012   November 2012   January 2013   May 2013   June 2013   July 2013   September 2013   October 2013   June 2014   August 2014  

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]