Showing posts with label Connectivity. Show all posts
Showing posts with label Connectivity. Show all posts

Thursday, August 30, 2012

Error Handling for Composite IBM DataPower Services

In general, when it comes to error handling i am a big believer in “Defense in Depth”. I prefer a multi-layered approach in which I try to account for the maximum possible conditions at each layer and eventually have a “catch all” net where I catch and process the errors that ‘slipped through the cracks’.

Let’s take a scenario where we have an orchestration service which is tied to a bunch of back-end proxy services. Each of the back-end proxies is tied to corresponding back-end application.

Below is the logical representation of a complex composite service on IBM DataPower:


Below is a description of the “Happy Path” i.e. the ideal scenario in which there is no error:

  1. The incoming request is received by the ‘Orchestration Service’.
  2. The orchestration service then makes a series of calls to the various back-end proxies. The request message for each call is dependent on the response messages from the previous calls.
  3. The back-end proxy receives the message and in turn calls the back-end application.
  4. The back-end application processes the message and replies with a response message.
  5. The back-end DataPower proxy receives the response, reformats it and forwards it to the orchestration service.
  6. The orchestration service receives the response and reformats it. It then either calls another back-end proxy, or forwards the reformatted message to the calling service.

Below is the description of handling error scenarios or the “unhappy path”.

Following are the various types of errors that we have to contend with:

  1. Errors occurring in the back-end applications: These errors occur when the back-end application is able to successfully receive the request message from the DataPower proxy, but is unable to process it. This condition results in DataPower receiving a fault/error message from the back-end application
  2. Errors occurring in the DataPower back-end proxy: These errors occur when the back-end DataPower proxy receives the request message successfully but is unable to process it. This results in the back-end DataPower proxy returning a fault/error message to the orchestration service.
  3. Errors occurring in the DataPower orchestration service: These errors occur when the DataPower orchestration service receives the request message successfully but is unable to process it. This results in the DataPower orchestration service returning a fault/error message to the front-end calling service.
With that in mind, following is my preferred approach for complex composite DataPower services:

Errors occurring in the back-end applications:
The orchestration service checks if the response from the back-end proxy is a soap:fault, and it if is then it might decide to rollback any of the previous calls (like an adduser or a insert DB row) with another call(like deleteuser or delete DB row).

You can use the dp:url extension to do this:


These errors come back as soap:Fault messages with HTTP Response code ‘500 Fail’. Generate a custom error message which includes the following fields (at least):

  • Error Code service variable
  • Error Details service variable
  • Timestamp service variable
  • MsgId/UUID response payload

Now, convert the HTTP Response Code from ‘500 Fail’ to ‘200 OK’:


We convert the HTTP Response Code from 500 to200 so that the orchestration service treats the soap:fault message as a valid response instead of an error.

Errors occurring in the back-end DataPower Proxies: Such errors can be caught and processed by using a combination of the On-Error action with the Error Rule in the back-end proxy’s policy.



The error rule can be configured to generate a custom fault/error message with HTTP response Code set to “200 OK”.

Errors occurring in the Orchestration service: Again, such errors can be caught and processed by using a combination of the On-Error action with the Error Rule in the orchestration service’s policy. We send back the error message with a HTTP Response code of “500 Fail” to the front-end calling service.

Prithvi Srinivasan is a Technology Manager at Prolifics and has extensive expertise in the IBM WebSphere suite of products. He has played a key role at several strategic clients by providing technical leadership. Prithvi has an extensive background in the design and development of SOA and Integration solutions, with a proven track record of consulting and architecting solutions for several industry verticals like Banking, Finance, Retail, Insurance, HealthCare and Technology.

Tuesday, April 24, 2012

Viva Las Vegas!

It's almost IMPACT time and for all of us in the IBM community – it is our version of “March Madness." Starting on the 29th of April, Las Vegas will play host to the largest gathering of professionals that use the IBM WebSphere platform to build solutions that power Fortune 500 companies to the latest start up in the Silicon Valley.

For us at Prolifics, this is our largest event of the year and a great opportunity for us to get together with our customers, IBMers and peers in the industry. It’s our chance to discuss all of the great work we have done over the last year and learn from everyone in this community on the challenges facing us and the direction this industry is taking. However 2012 is very special for us in multiple ways – This year our customer Steve George from Huntington National Bank (HNB) will be a keynote speaker at IMPACT. On every occasion that Steve and I have met in Columbus, we have had very interesting conversations on what Steve’s vision for implementing SOA at the bank. He is one of those thought-leaders who clearly understands the opportunities and challenges that HNB faces. We at Prolifics are proud to have been and continue to be part of the journey at Huntington National Bank as they build their agile service-oriented enterprise and take their next steps to process-oriented excellence. I am really looking forward to listening to Steve and speaking with him again in Vegas. In addition to Huntington we will have Apple Vacations, CIGNA, IDP and several of our other customers presenting their success stories and how Prolifics helped them achieve their business needs. While you are in Vegas and enjoying the conference, please make your way to our booth and our sessions – this consolidated list should help you make Prolifics part of your IMPACT plans:

Visit www.prolifics.com/impact-2012.htm to see a complete list and read more about our upcoming speaking sessions.



For me personally, IMPACT 2012 adds another milestone to my professional career. I will be part of a panel of IBM Business Partners who will be discussing our success stories with the broader IBM community. I am really looking forward to hearing from my peers on the panel and adding value by providing my insights into what IBM and its Business Partner community can do together to help our customers and make them successful.

I’m looking forward to a great week and seeing everyone at IMPACT - "Viva Las Vegas!"

Rajiv Ramachandran first joined Prolifics as a Senior Consultant, and today is Vice President of the BPM & Connectivity Practice. As the leader of the BPM & Connectivity Practice, he leads a global consulting team at Prolifics that is responsible for helping our customers implement successful Enterprise Integration and BPM solutions. He has over 14 years of experience in the IT field having worked at IBM and at many of our key customers as a Solution Architect for several years implementing technology solutions in the Insurance and Healthcare sectors. An author in the IBM developerWorks community, Rajiv has presented at IBM Impact and IBM WebSphere Services Technical Conference.

Thursday, April 19, 2012

Universal Messaging: Five MQ 7.1 Security Use Cases - IBM Impact Session #1869

This year at Impact, Prolifics’ AJ Aronoff will be teaming up with T. Rob Wyatt (IBM) to host a speaking session focused on the new and improved security model of WebSphere MQ 7.1. We had a chance to sit down with our IBM Champion himself and find out what we can expect.

Tell us about your speaking session at Impact.
AJ: T. Rob and I will be co-presenting on the new security features of MQ, which was designed to be the most secure version of MQ ever. We will showcase all the exciting new security features of this version of MQ, including securing queue managers by default, and creating channel policies that grant appropriate access based on custom authentication rules. Many companies are tightening their security practices, and we are looking forward to presenting a variety of security use cases, that should apply to most environments.

Why will Impact attendees want to attend this session?
AJ: Those that have worked with previous versions of WMQ know that security was a challenge that required attention to every detail. The latest version has a whole new security model that lets administrators create policies that apply to every channel. Organizations today are very concerned about security breaches and the damage they can bring to their business. WMQ 7.1 helps to avoid this “end of the world” nightmare in simplified and efficient ways. T. Rob and I have been involved in a variety of WMQ implementations and have seen all types of situations, both good and bad and we are always happy to share our experiences.

Other than your speaking session, what are you most looking forward to at Impact?
AJ: Impact is the greatest conference in the world! I look forward to spending time with people from Hursley, previous Impact conventions and the world. It’s always nice to see old friends!

Thanks for your time AJ! Sounds like this is a session not to be missed!

Session Details:
Title: Universal Messaging: Five MQ 7.1 Security Use Cases
Date: Monday, April 30th, 2012
Time: 12:15pm - 1:15pm
Location: Marcello 4403

To find out more about AJ's upcoming session, or to see a full list of Prolifics' speaking sessions at Impact, click here.