WebSphere Process Server operational architecture: Part 1: Base architecture and infrastructure components

February 4th, 2009 syndication Posted in DeveloperWorks, WebSphere Integration Developer, WebSphere Process Server No Comments »

From DeveloperWorks, WebSphere Process Server operational architecture: Part 1: Base architecture and infrastructure components

Part 1 of this two-part article series dives deeply into the operational
architecture of IBM WebSphere Process Server. This article introduces you to concepts, such as Service Component Architecture (SCA), Business Process
Choreographer (BPC) and Service Integration Bus (SIB) in the context of WebSphere
Process Server, and shows you how they work together to build a secure
transactional runtime environment for your SOA. In this respect, you will be able to
better articulate the technical architecture of WebSphere Process Server, which will
improve your ability to operate WebSphere Process Server in your organization..

Theres always a desire to understand the architecture and implementation of complicated software that makes your life ‘easier’. This is a great article that delves into the layers that compose Process Server and WebSphere Integration Developer.

Related Posts

AddThis Social Bookmark Button

WebSphere Process Server Disaster Recovery: UUIDs are unique to an install

February 3rd, 2009 dan Posted in WebSphere Enterprise Service Bus, WebSphere Process Server 2 Comments »

If you are looking at WebSphere Process Server Disaster Recovery, you should know that the UUID’s that uniquely identify a server in both the Messaging Engine Database and the transaction log are unique for that particular installation. Running the equivalent installation commands on the restored system will not generate a server with the same id. This implies that you need to ensure your server installation (and profile) itself is backed up should restoration be needed in the future.

Also, as far as I know, there is no way to manually edit the UUID of a server. If you don’t keep a backup of the install, disaster recovery will be more difficult than expected and you may end up losing transactions.

Related Posts

AddThis Social Bookmark Button

WebSphere Process Server: Business Flow Manager REST API is Required

January 15th, 2009 dan Posted in WebSphere Process Server No Comments »

If you are installing the Business Flow Manager, ensure that you are enabling the Rest API with a proper context root. The REST API is used by some widgets inside of the Business Process Choreographer and if you do not configure the URL properly, you will get errors when trying using the process state view.

Related Posts

AddThis Social Bookmark Button

WebSphere Process Server: Repairing Business Processes

January 14th, 2009 dan Posted in WebSphere Process Server 1 Comment »

From Developerworks, Repairing processes with WebSphere Process Server

WebSphere Process Server V6.1.2 supports manual repair and change of control flow logic. This article describes these repair features, provides useful tips, and identifies potential pitfalls when applying them. You’ll learn how to repair processes and dynamically react to cases in which modeled fault handling and automated recovery mechanisms are not useful in solving the situation.

This is an unbelievably complete article about BPEL processes and what happens when an error occurs. It also goes into what you need to consider at development time for error handling as well as your options once something has gone wrong.

A must read for anyone uses BPEL in an enterprise 24/7 solution and can’t just terminate business processes when something goes wrong.

Related Posts

AddThis Social Bookmark Button

Variable Substitution in WSAdmin: Variables in braces are treated as constants

January 14th, 2009 dan Posted in WebSphere Process Server 1 Comment »

Just a quick FYI to those of you who are doomed to write WSAdmin scripts, if you use variable names and enclose them in curly braces ‘{‘, then commands will treat it as a constant string and your variables will not resolve to their values.

$AdminTask blah {-file $VariableFileName}

Will cause and error that the physical file “$VariableFileName” could not be found.

To resolve the issue use the subst or list command:

$AdminTask blah [subst {-file $VariableFileName}]

http://www-01.ibm.com/support/docview.wss?uid=swg21254555

Related Posts

AddThis Social Bookmark Button

Migration to WebSphere Process Server and WebSphere Enterprise Bus 6.2 – Mandatory reading

January 13th, 2009 dan Posted in WebSphere Enterprise Service Bus, WebSphere Process Server No Comments »

If you have a 6.1.x environment and are thinking about upgrading to 6.2, then you must read:

Migration to WebSphere Process Server and WebSphere Enterprise Bus 6.2 – Mandatory reading

WebSphere Process Server and WebSphere Enterprise Service Bus version 6.2 provide major functional improvements over previous versions, and in order to take advantage of these new features while preserving your existing applications and profile configuration you must migrate to version 6.2 of the product. WebSphere Process Server 6.2 is not a refresh pack or an upgrade version. Version 6.2 must be installed alongside the older version of the product. To facilitate your migration process, WebSphere Process Server 6.2 provides improved version-to-version migration utilities to help you migrate your existing applications and profile configuration information.

Related Posts

AddThis Social Bookmark Button

WebSphere Process Server Failed Event Manager: “The Recovery Sub-system is disabled.”

January 6th, 2009 dan Posted in WebSphere Process Server 5 Comments »

When looking in the top right corner of the Failed Event Manager, the following error is displayed:

The Recovery sub-system is disabled. Enable the Recovery sub-system in order to work with failed events.

You get directed to the following tech-note:

http://www-01.ibm.com/support/docview.wss?uid=swg21293460

which states that there is a problem with the Failed Event Manager MBean in your server/cluster.

Interestingly, when the failed event manager EAR is installed manually (or via script) in 6.0.2.x the MBeans are not automatically installed for you. You have to go back to your server configuration and configure them manually. When you create a profile using the profile creation wizard, everything is fine.

Related Posts

AddThis Social Bookmark Button

What’s new in WebSphere Integration Developer V6.2

December 10th, 2008 dan Posted in WebSphere Integration Developer, WebSphere Process Server 3 Comments »

From DeveloperWorks, What’s new in WebSphere Integration Developer V6.2

New enhancements to IBM® WebSphere® Integration Developer V6.2 support the latest features and standards provided by WebSphere Process Server and WebSphere ESB V6.2. … You’ll learn about the solution view, editor enhancements, and services gateway pattern support, and be introduced to new features like business calendars and support for the Web Services Feature Pack. You’ll also learn about improved testing and problem determination, along with enhancements for migration

It’s the most wonderful time of the year, the holiday season because it means that we’re getting new versions of WebSphere Process Server and WebSphere Integration Developer! I’ll go through the list of features:

WebSphere Business Modeler interaction

I’m not sure what to make of this feature. One of the new parts that I’m sure IBM will be pushing is the ability in Modeler 6.2 ‘Design to Deploy’.

WebSphere Process Server V6.2 enables a new direct deploy scenario, where users of WebSphere Business Modeler can directly deploy modules into the WebSphere Process Server runtime.

I believe this feature is more for testing, but I really have to play with it more. Without more investigation, deploying an application from a business analyst perspective into a technical server like WebSphere Process Server sounds weird. As more people use Modeler to deploy, will it just become WebSphere Integration Developer, just with an even more candy UI?

Solution view

Woo hoo! It’s about time. You can finally have some kind of visualization of your entire solution and the interactions between modules! No more visio (or if you are like me, MS Paint) diagrams and manually ensuring the interactions are correct.

Process editor Improvements

There is finally an ability to use Business Object maps directly in a BPEL. No more visual snippets!

Human task editor Improvements

the option to bind a participating human task to the process lifecycle

Finally, your human tasks can terminate if your instantiating business process dies. And finally,there’s an editor for those insane BPEL/Human Task variables.

Assembly editor enhancements

Don’t you worry, it’s been made prettier :-) More importantly, the WebSphere Web Services Features Pack is now supported. It’s also got policy set support for all you guys that want to do your WSReliableMessaging.

You can define new policy sets through the administrative console, export into an XML file, then import into WebSphere Integration Developer.

Blech.

Mediation Flow Editor

Performance is improved by eliminating the hop between modules, improving efficiency

Hmm, I wonder what this actually means? I know that the SCA.SYSTEM bus creates an ungodly amount of queues for an application, I wonder if someone finally looked at this to minimize them?

Support for Services Gateway pattern

This is very interesting. It appears that WID v6.2 now is starting to support patterns and wizards to create these patterns.

Other editor enhancements

Versioning! You can now version all components in your assembly diagram.

I also see a ton of new features added to the Integration Test Client that sound very exciting.

Conclusion

All-in-all, it looks like a good release on paper. Of course, what really matters is how it behaves when you are using it. The progression of WebSphere Integration Developer from 6.0 -> 6.0.1 -> 6.0.2 -> 6.1 -> 6.2 has been very good so I have faith that this will be another large step in the right direction.

Related Posts

AddThis Social Bookmark Button

ProcessTemplateNotFoundException: CWWBA0008E: Process template ‘myProcess, -valid_from_date-’ is not found

December 9th, 2008 dan Posted in WebSphere Process Server 2 Comments »

In the admin console, when trying to stop a template contained in an ear so that the ear could be updated, the following exception occurred:

com.ibm.bpe.api.ProcessTemplateNotFoundException:
CWWBA0008E: Process Template
'MyProcess, Web 2008-10-10 12:32:22.00' 
is not found.

It’s unknown how many times that the EAR was attempted to be stopped or what happened on the initial removal from the server.

To investigate the ProcessTemplateNotFoundException, I looked at the BPEDB’s PROCESS_TEMPLATE_B_T table. This table holds the persisted information in the database for process templates. A simple select * from PROCESS_TEMPLATE_B_T should give a list.

When I ran this query, I found that the table was empty. So the database has no records of any process templates. The weird part is that I can still see the templates in the ‘Business Processes’ tab from the admin console. I’m not sure how this information is populated. Does it come from the EAR file itself or is it generated via BPE API calls? If it’s the latter, I’m even more confused why the BPE API would return a list of templates while the database was empty.

I removed the ear from the admin console and it uninstalled properly. I then installed the EAR and looked at the PROCESS_TEMPLATE_B_T table and it was populated properly.

As far as I know, this was a one-off incident. There is a theory that something occured when ‘Update’ of an existing EAR was selected and the updated EAR contained additional templates. But it’s just a theory.

I thought I’d write this up just in-case anyone else out there runs into this issue. The BPEDB should be the ‘gold standard’ as to the state of your business processes. If it gets out of sync with the admin console, weird errors can result.

Related Posts

AddThis Social Bookmark Button

BPEL ProcessAssertionError: Assertion Violation !(con != null)

November 20th, 2008 dan Posted in WebSphere Process Server No Comments »

com.ibm.bpe.util.ProcessAssertionError:
com.ibm.bpe.util.ProcessAssertionError:
Assertion Violation !(con!=null) in
method >> com.ibm.bpe.databse.StmtHelper.
prepareStmtUpdateTaskTemplateState
(StmtHelper.java:101)

If you see the following exception, ensure that your server (or deployment manager) can actually access the BPEDB. The connection object inside of the BPEL Database Statement Helper has become null for an unknown reason. You can go to the datasource for your BPEDB and click Test Connection. This will likely identify an exception as to why the server cannot connect.

Related Posts

AddThis Social Bookmark Button

WebSphere Process Server – Business Process Choreographer Explorer Customization and Tuning Options

November 18th, 2008 dan Posted in WebSphere Process Server No Comments »

If you plan on making the BPC Explorer available in a production environment, I suggest you read the following article.  It talks about customization and tuning options that are available.

The piece is that probably most important is the one where you can define a threshold. A threshold will limit the number of instances/tasks that are returned in any query executed by the BPC explorer. A current limitation is that all records are retrieved at once and the paging is done in memory. This means if you potentially have a  query that returns 10,000 instances, all that information has to reside in memory, increasing the heap and potentially impacting the performance of your production system.

Related Posts

AddThis Social Bookmark Button

WebSphere Process Server invocation styles

November 7th, 2008 dan Posted in DeveloperWorks, Reviews, Syndication, WebSphere Integration Developer, WebSphere Process Server No Comments »

From DeveloperWorks, WebSphere Process Server invocation styles

As you author applications in WebSphere Integration Developer, you may find it necessary to set or verify the invocation style that one component will use to call another. Users are often surprised to find that this is not as easy a task as it may seem. This article explains how to determine which invocation style will be used at runtime, based on characteristics of your application.

Another article from my former colleagues (they’re been busy!). This one explains what interaction style an invocation will use between two component. This is important to understand for error handling and transaction boundary issues. Another must read.

Related Posts

AddThis Social Bookmark Button

Updates required for WebSphere Integration Developer debugger to work when security is enabled

November 6th, 2008 dan Posted in WebSphere Integration Developer, WebSphere Process Server No Comments »

 According to the tech-note, you have to follow some manual steps to get the debugger to work on a server that has security enabled:

http://www-01.ibm.com/support/docview.wss?uid=swg24015747v

Related Posts

AddThis Social Bookmark Button

MQ Import Anti-Pattern: Multiple MQ Imports connecting to single pair of physical request/response queues

November 6th, 2008 dan Posted in WebSphere Integration Developer, WebSphere Process Server 2 Comments »

The scenario

I have an MQ Request queue that takes multiple types of business objects as input. The MQ request queue consumer evaluates the type of the message and routes it to the appropriate downstream service. When the response comes back from the downstream system, it is placed into the single MQ Response queue. Therefore, the MQ Response Queue contains multiple types of response messages.

In my scenario, I need to invoke two services. I do this by placing two distinct message requests onto the request queue: Service invocation 1 and Service Invocation 2.

I create a BPEL process to invoke the two services in serial.

The Anti-Pattern

I create two MQ Imports and two WSDL files representing each operation. One for the invocation of service 1 and a second for the invocation of service 2. I configure each MQ Import to have it’s own unique listener port but I have them use the same queue manager and same physical request and response queues.

The Problem Manifests

What I see is that sometimes, the response message from my invocation of service 2 is picked up by the listener port for service 1. Service 2 never gets the response values and service 1 throws an exception. Eventually the listener ports will shut themselves down from the errors.

Why?

By creating two MQ Imports, I have now created two independent listener ports that are listening for messages on the same queue. They’re in a race condition about which one will get notified about the arrival of a message.

The MQ Import Pattern

Stick with a single listener port for your set of request/response queues.  In order to use a single listener port, you need to have a single MQ Import. You could do this by creating a single WSDL for your two operations to the request queue, or I believe you could add multiple wsdl interfaces to a single MQ Import.

Related Posts

AddThis Social Bookmark Button

Error Handling in WebSphere Process Server: Developing an Error Handling Strategy

November 6th, 2008 dan Posted in DeveloperWorks, Reviews, WebSphere Integration Developer, WebSphere Process Server No Comments »

From DeveloperWorks, Error handling in WebSphere Process Server, Part 1: Developing an error handling strategy

With the emergence of service oriented solutions, we’ve seen a sharp rise in developer productivity. Developers are empowered with a new found freedom of service construction and reuse. However, with this freedom comes an increased exposure to inconsistent service definitions. These inconsistencies expose weaknesses in error handling and system recovery across the solution. Along with the proper governance controls, IT organizations need to define and enforce the proper error handling strategies tailored for solution recovery. Part 1 of this article series introduces the topic of error handling strategies and highlights key concepts and objectives for developing a strategy

This is an article written by my former colleagues at IBM. It goes into depth about the part of your process that you likely left until the last moment: What to do when something goes wrong. I recommend it as required reading for any WebSphere Integration Developer user.

Related Posts

AddThis Social Bookmark Button