Three tools to monitor your Websphere MQ environment

The value propositions of monitoring a Websphere MQ environment (or the Queue Manager network) are mentioned below:

1. Provide business service visibility i.e. how many cross sell offers (messages) were processed?

2. Precise measurement of the Queue Manager throughput for capacity and performance planning and architecture fine tuning.

3. Helps in troubleshooting issues related to Queue Manager.

This posting discusses three tools that can monitor a Websphere MQ environment. Unlike Java application performance management tools, these tools try to be different from each other.

1. QPasa from MQSoftware is arguably the market leader in this segment and probably the first MQ monitoring solution. QPasa supports monitoring metrics of two kinds, real time and historical. QPasa is based on “publish and subscribe” architecture, thereby enabling parallel processing of performance messages. This architecture makes QPasa an appropriate choice for monitoring high volume MQ environments. QPasa offers rich features such as custom dashboard reporting providing business visibility into messages processed and configuration management. However, it requires agents to be deployed on the servers hosting the queue manager in order to instrument them. On the downside, QPasa requires a high learning curve.

2. QFlex from Netflix uses a simple architecture of near real time metrics collection based on Websphere MQ’s reset statistics. QFlex is agent-less requiring no configuration or deployment overhead. One can start using the tool in less than an hour. QFlex offers features such as change management, queue browse utility that can be used to move messages from one queue to the other or in maintaining poison messages. Netflexity provides excellent technical support. However, QFlex does not offer report customization.

3. Statwatch originally from Reconda Software, was later acquired by MQSoftware, provides historical monitoring of message traffic, message tracking thereby enabling measurement of time taken for message traversal across queues. Statwatch relies on Websphere MQ API exits that are deployed as agents on the queue managers that need to be monitored.

If you have used any other product please share your thoughts/experience in the comments.

Keynote and SOASTA, cloud offerings to test your web site performance

A load test, when conducted before a web site goes live, helps in detecting and responding to scalability and performance problems much before the user is aware of such issues. Executing a load test from the cloud offers the following benefits:

1. Zero administration costs that would have otherwise incurred due to setting up an infrastructure for performance monitoring and load test generation.

2. A sub optimal performance infrastructure skews the results of a load test. However, when using cloud test tools, such issues don’t arise.

3. Measure the perceived end user’s response time of the application across DSL, cable, dial up, 3G and T1/T3 connections.

The Tools

SOASTA CloudTest provides load testing as a service. CloudTest is available in two forms a) as a service and b) as an appliance. Both these offerings can be used to test an application hosted in an enterprise behind a firewall or a web application hosted in a cloud (such as Amazon EC2).

Monitoring is done in two modes, using an agent or in agent-less mode. In agent mode, an installation of the agent (called a conductor in CloudTest Terminology) on the target server is required which would collect the data and transfer to the CloudTest Appliance or Service over HTTPS connection. While CloudTest enables easy creation and execution of load tests, it also provides visually appealing reports of the test results. The test results can be searched by message or error or by value, simplifying the post mortem analysis on performance bottlenecks. If your web application is hosted in San Francisco area how do you know what is the response time perceived by a user accessing in Beijing, China? CloudTest does not help in such situations. Here’s where testing tools from Keynote Systems help.

Keynote Systems has various products that are offered as a Service, from generation of tests, monitoring, diagnosing transactions to reliable alerting. Keynote Systems provides visually appealing reports, easy creation and tear down of load tests. However the value proposition is from their unique offerings,

1. The ability to execute a load test on a web application from a location in their global network which, includes approximately 240 cities across the globe with more than 2400 computers, obviously such a test would paint a real picture of the end user’s experience across various geographic locations.

2. Combine the above with the ability to measure application response time across various connection channels such DSL, 3G and T1/T3 among others, provides a comprehensive coverage of the end user’s experience across various channels.

Keynote KITE offers a free version that will allow you to execute tests from five different cities. However, testing from more locations would involve licensing.

Other articles of possible interest:

The Platform as a Service (PaaS) landscape

What does Oracle cloud offering mean to the enterprise

A list of on demand message queue (MQ) providers

ServiceNow, a SaaS offering of ITIL

VMware and Citrix want to be enterprise cloud enablers

Top five Java application performance management tools

Will cloud computing be a commodity business ?

The ever so interesting Tim O’Reilly does an interesting analysis on the future of cloud computing (as understood in the context of IaaS), whether it would evolve into an outsize profit business as envisioned by Hugh Mcleod in his post titled “The cloud’s best kept secret”. Some interesting points from the post are mentioned below:

1. Presents an interesting discussion on three kinds of cloud computing models. Summing up, they are:

a.Utility Computing (aka IaaS): Providing computation power that is billed based on consumption. Examples: Amazon EC2, GoGrid and AppNexus among others.  The bottom line that these services are targeted to a developer audience rather than end users limits the network benefits of data. Thus IaaS would be a commodity business.

b.Platform as a Service (PaaS): PaaS is a hosted application stack enabling applications to be built and deployed over it. In other words, PaaS provides a much higher level abstraction of an infrastructure than IaaS. Examples in this category include Google App Engine, Mosso, open source offering 3Gen and Salesforce’s Force.com among others. However Tim asks an interesting question of what is value add to developers in one of these platforms from other developers on the same platform? None except Salesforce.com which seems to provide some benefits to developers.

c.Cloud based end user applications (aka Cloud Services): Any web application is a cloud application. For example Google, twitter, Facebook, Amazon etc. This type of cloud computing has network effects and has the potential of growing into an outsize profit business. Salesforce’s force.com platform is in alignment with this model through the developer ecosystems that it provides.

2.The Law of Conservation of Attractive Profits

“When attractive profits disappear at one stage in the value chain because a product becomes modular and commoditized, the opportunity to earn attractive profits with proprietary products will usually emerge at an adjacent stage.”

Example: When IBM began building its PC from off the shelf parts it drained value from the hardware business turning it into a commodity (low margin) business. However the profits didn’t go away, instead, they migrated to software i.e. from IBM to Microsoft.

3. Applies the above mentioned law to Larry Ellison’s point, that cloud computing is not a profitable business model, and argues that Larry “is dangerously wrong for the strategic future of Oracle”. Why? Because “it’s not the database software that matters, but the data that it holds, and the services that can be built against the data”.

The bottom line is that neither would IaaS or SaaS alone can grow into a huge business, however, PaaS can.

Other articles of possible interest:

1. The Platform as a Service (PaaS) landscape

2. What does Oracle cloud offering mean to the enterprise

3. A list of on demand message queue (MQ) providers

4. ServiceNow, a SaaS offering of ITIL

5. VMware and Citrix want to be enterprise cloud enablers

What cloud services can a small IT firm provide?

In the cloud computing Google group, there was this interesting question asked: what cloud services can a small IT firm provide? This firm specializes in consulting, development and management. I replied to this question however I’m posting it on my blog as well.

An IT services firm can offer turnkey solutions involving business modeling, requirements gathering, analysis/design, development, deployment and management for applications/services using compute clouds (such as Amazon EC2, GoGrid, AppNexus etc). While business modeling and requirements gathering remain mostly unchanged from the traditional (non cloud) application development or hosting, however, the differences from traditional practices are mentioned below:

a. Application design would include architectural strategy and heuristics. For example, when to use components such as Amazon’s SQS for business benefits etc.

b. Application deployment or delivery can include packaging techniques such as a virtual appliance. This can further be extended to a full-fledged cloud service. For example a utility component in the application can be provisioned as a service.

c. Integration among various services such as using any of the SaaS integrators or online message queue service providers. SaaS integration would involve configuration, however, message queuing would involve coding.

One important thing to note is to make sure that any cloud service that you would use satisfies a business need or improves the efficiency of a business process.

Top six performance tuning tips for a Java enterprise application

1.Follow the performance queue theory when tuning. The bottom line here is to efficiently balance the availability of system resources vs. the work to be done for optimal application response time. The rule of thumb followed is the amount of requests that can be processed at the Web Server tier must be higher than the requests that can be processed at the Application Server’s Web Container level. Further, the number of requests that can be processed at the EJB container must be less than the Web container level however this number must be greater than the number of requests that can be processed at the JDBC connection pool or other enterprise integration endpoints.

2.Size the JVM appropriately. This is the most difficult task in the application performance tuning exercise. However keep in mind that large heap memory does not necessarily mean better performance. Sizing of the JVM also involves choosing the appropriate garbage collection algorithm. Typically parallel garbage collection algorithms perform better.

3.Tune the Web Server with appropriate thread pool size, this number (across all web servers) should be large enough to accommodate all your requests per your traffic needs and make them wait at the Web Server tier when busy or greater than the anticipated number of requests.

4.Size the JDBC connection pool appropriately. The idea is to reduce the time/resources required when creating a connection. For example, Websphere and Weblogic application servers provide initial and maximum connection pool size, by setting the initial size to a number greater than zero will help. However such numbers are application architecture specific and must be found from stress testing. Enable caching of prepared statements on the JDBC Connection Pool.

5.If your application utilizes point to point (PTP) messaging and order of message processing is important then obviously Message Driven Beans (MDB) for processing inbound messages limits scalability. For example if the messaging provider is Websphere MQ, such scalability issues can be alleviated by using simple POJO’s based on file system look up for MQ objects.

6.If your application is data intensive then consider having a caching layer, for example Gigaspaces IMDB. Such decisions are better off when made during the application architecture design phase, rather than, retrofit it when performance problems are observed.

The above mentioned are some of the tuning tips applicable to a Java enterprise application however is not comprehensive list. Some of the other important components of an enterprise application tuning involve tuning of network, operating system, database, messaging platform and edge tier components such as Content Delivery Network and H/W load balancers. These must be tuned as well for best results.

Other articles/postings of possible interest:

1. Top five Java application performance management tools

2. To scale out or not using Gigaspaces

3. AdventNet, one product for all performance/service management needs

4. Gnip, Online Message Oriented Middleware (MoM)

IT Cloud Services survey findings

IDC recently published the findings from a survey on IT cloud services (cloud computing). The survey was conducted on 244 IT executives/CIOs and their colleagues about their companies’ use of, and views about, IT Cloud Services. Summary of top three findings from this survey is mentioned below in two categories:

Benefits:

1) 63.9% find the number one benefit of cloud services in easy and fast deployment

2) 61.5% of the respondents find the pay only for what you use as benefit #2.

3) 57% responded agreeing the #3 benefit of using cloud services is, less in house IT staff and cost.

Challenges:

1) 74.6% find security as the number one challenge

2) 63.1% find performance as number two challenge. Not sure how performance is #2 concern. Isn’t cloud computing about providing servers on demand?

3) 63.1% find availability as #3 challenge

The blog post providing more details on this survey is available here.

The misunderstood Guaranteed Delivery EAI pattern

Guaranteed delivery pattern is about delivering of messages by the sender when the target messaging system has failed.

This pattern is one of the most misunderstood patterns especially when the EAI application is hosted in Weblogic Server and when IBM Websphere MQ (WMQ) is used as the underlying messaging platform.

In Weblogic, the inbuilt JMS Server option provides guaranteed message delivery when the WMQ Queue Manager is unavailable. How? The messages are temporarily stored in a file, or in-memory or on a database. When the target WMQ system is made available, then the stored messages are forwarded to the destination queue manager. Though Weblogic server implements this pattern through JMS Server/ MQ Bridge, however, it is not recommended. Because this would decrease the economies of scale.

WMQ provides scalable and simple solutions to such problems. Both these solutions are mentioned below:
a) Mount the in-memory persistent queues on a SAN that is configured in High Availability (HA) mode.

b) Configure the queue managers in HA mode and load balance the workload across them.

Configuring the queue managers in HA mode usually involves clustering of queue managers when Message Queuing (MQ) intercommunication is based on WMQ Server to Server.

However in the situations of using WMQ client or connecting to WMQ through HTTP/REST (available straight out of box in WMQ v7.0), the HA mode can be configured through a load balancer of choice. Note this method of messaging is applicable to applications that are integrated in asynchronous mode, where order of message processing is unimportant.