IBM Podcast: Michael O’Connell interviews Steve Mills

August 19th, 2008 dan Posted in DeveloperWorks, WebSphere Community | No Comments »

I was listening to the podcast of Steve Mills being interviewed by DeveloperWorks. The nice thing about these podcasts is that they are transcribed, so you can read along.

There were a few bits of information that were interesting to me. I was listening to the podcast passively, so I may have missed some even better points.

A quote from Steve Mills regarding the number of hands that touch IBM software:

“In fact, the total IBM software development community for commercial products is about 33,000 people. That’s inclusive of all of the programmers in STG, as well as the programming communities within IBM Research that are involved with building software in conjunction with the laboratories”

And a quote from Michael O’Connell:

“…from a developerWorks standpoint our traffic — the majority of our visitors — come from outside North America”

I see the same effect from this blog, most of my traffic arrives before I even wake up in the morning. India and the UK are the two primary countries that read this blog.

Also, towards the beginning of the podcast, Steve talks about the development process found with customers and how they may require updating:

Frankly, I think one of the biggest challenges customers have around the development of applications is that they far too often over-scope their projects. My view is that you’re better off in an iterative approach — time boxing the effort, minimizing team size and recognizing that the best software products or the best software implementations are created over a period of time through iterative approaches that keep refining the underlying functionality, scalability, usability.

I’m a fan of iterative development and in the field I see far too many companies staying with the ’single project in isolation’ mentality that creates a lot of one-off services and Frankensteins that haunt the business for years after the project is completed. I’m happy to hear IBM pushing customers to improve their development process.

At the bottom 1/3 of the transcript, Steve goes into what IBM does to foster a community internally. This includes technology like DogEar or Bluepages. Of course, there is no mention of creating and maintaining an external community by leveraging these resources.

Where I begin to disagree with Steve is when he mentioned DeveloperWorks as a driver of features and capabilities into the products that come out of software group. This is something that I have practically never witnessed. DeveloperWorks is a one-way fire hose of information. As far as I can tell, I can’t even recommend topics. I also have never see discourse open up between IBM and the users. Just because you include a comment text box and a rating at the bottom of the page doesn’t mean that it’s now an interactive experience.

I also monitor the DeveloperWorks forums and I never see the complaints of today addressed in the products of tomorrow. Users are left stumbling in the dark together towards what is either the light of a solution or an oncoming train.

Maybe the future direction of DeveloperWorks is to become the external interactive focal point between IBM and the community at large. To say that it is already that today is incorrect.

AddThis Social Bookmark Button

WebSphere Application Server 7.0 Feature Pack for Service Component Architecture (SCA)

August 19th, 2008 dan Posted in WebSphere Application Server, WebSphere Process Server | No Comments »

The WebSphere Community Blog pointed out that there is a new WebSphere Application Server 7.0 Feature Pack available for download. This one will enable the Tuscany implementation of SCA inside the WebSphere Container.

It should be noted that this version of SCA is not the same one included in WebSphere Process Server. I would just assume that you can’t call a WPS 6.1 SCA Export from a WAS 7.0 SCA Import.

AddThis Social Bookmark Button

WebSphere MQ Workflow Transition to WebSphere Process Server

August 14th, 2008 syndication Posted in DeveloperWorks, WebSphere Process Server | No Comments »

From IBM Redbooks, WebSphere MQ Workflow Transition to WebSphere Process Server
Draft Redbook, last updated: Thu, 14 Aug 2008 - Transition concepts and planning - Transition support and guidance - Transition examples This IBM® Redbook publication provides a guide on how to transition from your WebSphere® MQ Workflow 3.6 environment to WebSphere Process Server V6.1.
AddThis Social Bookmark Button

Oracle XA_RMERR & Spring Oracle LOB Handler Exceptions

August 13th, 2008 dan Posted in Oracle BPEL, Spring, WebSphere Application Server | No Comments »

Was getting the following oracle exception when trying to use an Oracle XA datasource from WebSphere:

WSRdbXaResour E
 DSRA0304E:  XAException occurred. XAException
contents and details are:
The XA Error is            : -3
The XA Error message is    : A resource
manager error has occured in the transaction branch.
The Oracle Error code is   : 65535
The Oracle Error message is: Internal XA Error
The cause is               : null.
[8/13/08 14:22:50:777 EDT] 00000066 WSRdbXaResour E
DSRA0302E:  XAException occurred.
Error code is: XAER_RMERR (-3).
Exception is: <null>

This led me to the standard “Oracle is not configured to support XA”. Alas, the admin ran the scripts and we continued to get it.

We were also getting

OracleLobHand E org.springframework.jdbc.support.lob.OracleLobHandler
$OracleLobCreator close Could not free Oracle LOB
java.sql.SQLException: Protocol violation

Then the version of the jdbc driver caught my eye:

InternalOracl I   DSRA8205I: JDBC driver name  : Oracle JDBC driver
InternalOracl I   DSRA8206I: JDBC driver version  : 9.2.0.1.0
InternalOracl I   DSRA8212I: DataStoreHelper name is:
com.ibm.websphere.rsadapter.Oracle10gDataStoreHelper@218a218a.
WSRdbDataSour I   DSRA8208I: JDBC driver type  : ""

Notice that a very old 9i driver was in use connecting to our 10g database. I upgraded the driver to 10.2.0.3 and the problem was resolved.

AddThis Social Bookmark Button

Versioning business processes and human tasks in WebSphere Process Server

August 13th, 2008 syndication Posted in DeveloperWorks, WebSphere Integration Developer, WebSphere Process Server | No Comments »

From DeveloperWorks, Versioning business processes and human tasks in WebSphere Process Server
This article shows you how to build versions of business processes and human tasks that are based on best practices in IBM WebSphere Integration Developer V6.1 and WebSphere Process Server V6.1.
Versioning of a Business Process is the most important feature of the BPEL Container, and likely the feature you know the least about. The choices you make in how to invoke parent-child processes define the way they behave when the BPEL templates are updated. If you wire them together in the assembly editor, then the two specific versions of the template are bound together forever. Parent process A v1.0 will always use Child Process B v1.0. If child B 2.0 is deployed, A will continue to use 1.0. Not exactly the behavior you would expect. This article defines the way that the BPEL engine resolves versions and it should be required reading.
AddThis Social Bookmark Button

Connecting to Oracle BPEL hosted on WebSphere Application Server 6.1 with JDeveloper

August 13th, 2008 dan Posted in Oracle BPEL, WebSphere Application Server | No Comments »

Before I could do any of the steps below to invoke a REST service or install my BPEL suitcase, I needed to figure out how to connect JDeveloper to my application server. It’s not an obvious procedure.

  1. In JDeveloper, flip to the connections view.
  2. Create a new Application Server Configuration.
    1. Choose to create a Standalone OC4J 10g 10.1.3 Connection Type
    2. Enter your username and password to connect to the application server
    3. Enter the hostname
    4. For RMI Port, I had to use the port defined for ‘WC_defaulthost ‘ which was 9080. This part I don’t understand. I would have thought that 2809 was correct but it didn’t work. Take this step with a grain of salt.
    5. Click Test Connection. You should get back a warning that ORMI couldn’t be contacted. That’s ok, you can ignore it.
  3. Create a new Integration Server.
    1. Use the Application Server connection created above.
    2. Click Test Connection.
    3. Obtain the following result:
      “Application Server: FAILED
      BPEL Process Manager Server: OK
      ESB Server: FAILED”

You now have a connection to the Oracle BPEL contained inside of WebSphere. You can now right click your BPEL project and choose “Deploy” to install the app on the server.

AddThis Social Bookmark Button

Oracle BPEL ‘Suitcase’ JAR Deployment Options

August 13th, 2008 dan Posted in Oracle BPEL | No Comments »

I had created a simple echoing BPEL process in my JDeveloper and then looked around for the option to export an EAR for my service. Of course, there isn’t one. What happens is that JDeveloper will create a JAR that contains your BPEL artifacts. This JAR is called the “BPEL Suitcase”. I assume it’s a suitcase because it’s a container for your BPEL like a suitcase is a container to your clothes.

You then need to follow this document that describes how to deploy your BPEL into the Oracle BPEL container. Basically it boils down to one of:

  1. Use JDeveloper to connect to your container and deploy.
  2. Use the Oracle BPEL Console to deploy your suitcase.
  3. Strangely enough, if you have access to the physical file location of the container you can just drop the suitcase jar into a specific directory.

I was surprised that the processes weren’t deployed as EARs to the application server.

AddThis Social Bookmark Button

Integrating Oracle BPEL with an HTTP (REST) Service

August 13th, 2008 dan Posted in Oracle BPEL, WebSphere Process Server | No Comments »

Right out of the gate in my experience with Oracle BPEL, I have to integrate with a non-SOAP HTTP service. Luckily, Lucas Jellema over on the AMIS Technology blog has a very well written article that goes end to end on exactly what you need to do in order to get Oracle and HTTP (REST) Get to play nicely with each other.

I’d also like to add that Oracle themselves include an example as well in the documentation in section “702.Bindings”.

If I was in WebSphere Integration Developer v6.0.2.x, I’d have to write the custom invocation logic myself.

In WebSphere Integration Developer v6.1.x I can use the HTTP Import Binding.

AddThis Social Bookmark Button

IBM Client Application For JMS - Put JMS messages in queues

August 12th, 2008 dan Posted in Business Integration Tips, DeveloperWorks, WebSphere Application Server | No Comments »

I had the need to be able to place a JMS Message onto a Service Integration Bus Queue. I tried to use the SIBus Explorer, but it really didn’t like my WebSphere v6.1 configuration and would always throw an exception.

I then checked out the IBM Client Application Tool for JMS pointed out to me by David Currie a few months ago. It’s actually really awesome. It does require an application server in order to reference jars that are required for the classpath, but if you have an install somewhere, this is a tool you will like.

Basically, you can connect to any remote WebSphere server and use JNDI to lookup JMS resources and create JMS messages. For my remote server the provider url is of the form:

corbaloc:iiop:<hostname>:<Server Bootstrap Port>

corbaloc:iiop:danhost:2809

There is one caveat: If you are looking up a connection factory on a remote machine, then the JMS connection factory will need to have it’s Provider Endpoint configured. By default, this value is blank which stands for ‘localhost’. If ‘localhost’ doesn’t host your bus then you will get connection errors. It follows the standard:

<host_name>:<SIBus Bootsctrap messaging port>:BootstrapBasicMessaging

danhost:7276:BootstrapBasicMessaging

Once you have set that up in the connection factory, restart your server and now the IBM Client for JMS will connect to the given connection factory. You can then connect to a queue and start putting messages on remote destinations.

AddThis Social Bookmark Button

Default Messaging (SIBus): Modifying JMS ConnectionFactory Provider Endpoints requires a server restart

August 11th, 2008 dan Posted in WebSphere Application Server | 2 Comments »

Just a quick tip, if you need to modify a JMS ConnectionFactory’s Provider Endpoints in WebSphere Application Server, be sure to re-start your server. You normally need to perform this task when you are outside the application server hosting the queue and performing remote JNDI lookups.

I modified the value but always got the error that ‘localhost:7276:BootstrapBasicMessaging’ could not be found. Once I restarted the server, then my lookup used the proper endpoint of my remote server and everything was fine.

AddThis Social Bookmark Button

WebSphere DataPower SOA Appliance: The XML Management Interface

August 11th, 2008 syndication Posted in DataPower, DeveloperWorks | No Comments »

From Developerworks, WebSphere DataPower SOA Appliance: The XML Management Interface
Draft Redpaper, last updated: Thu, 7 Aug 2008 - Appliance Management Protocol (AMP) - SOAP Configuration Management (SOMA) - Debugging The XML Management Interface is the third way to configure and administer the WebSphere DataPower SOA Appliance, besides the WebGUI and the CLI.
Kudos to the DataPower people for putting out more information about this interface that can be useful for administrators that like to run scripts to configure their environments.
AddThis Social Bookmark Button

Advanced techniques and patterns for business process client development

August 7th, 2008 syndication Posted in DeveloperWorks, WebSphere Process Server | No Comments »

From DeveloperWorks, Advanced techniques and patterns for business process client development
This article introduces you to techniques and patterns that you can use to develop personalized user interfaces for business processes. Although this article focuses on IBM WebSphere Process Server as the process engine, you can use most approaches and tools to create client applications for other process engines, for example, IBM Lotus Workflow and SAP Business Workflow.
AddThis Social Bookmark Button

Seamless access to SAP services using IBM WebSphere integration tools

August 7th, 2008 syndication Posted in WebSphere Integration Developer, WebSphere Process Server | No Comments »

From DeveloperWorks, Seamless access to SAP services using IBM WebSphere integration tools
This article shows you how to design, develop, configure, deploy, and test an end-to-end purchase order scenario using WebSphere Process Server, WebSphere Adapters, and SAP. You also learn how to create applications that Web enable SAP services and help in the analysis, design, and implementation of similar integration applications.
A nice scenario developed by IBM to show off how to use the WebSphere Adapter for SAP, WebSphere Process Server and WebSphere Integration Developer.
AddThis Social Bookmark Button

Create classification taxonomies programmatically in IBM WebSphere Service Registry and Repository

August 5th, 2008 syndication Posted in DeveloperWorks, WebSphere Service Registry and Repository | No Comments »

From DeveloperWorks, Create classification taxonomies programmatically in IBM WebSphere Service Registry and Repository
By creating classification taxonomies in IBM WebSphere Service Registry and Repository, you can flexibly catalog and organize services and your metadata, enabling effective governance. This article illustrates a mechanism for uploading classification taxonomies into the WebSphere Service Registry and Repository using an XML-based interface, which can also be extended as an integration mechanism for synchronizing classification taxonomies to WebSphere Service Registry and Repository from other external systems. Find out how to load the classification taxonomies into WebSphere Service Registry and Repository using the Java Management Extensions (JMX) management APIs provided by WebSphere Service Registry and Repository.
Articles about WSRR seem to be few and far between, so here is one that deals with classification taxonomies, something I know nothing about.
AddThis Social Bookmark Button

IBM APAR PK49507: PROFILE RECREATION Required!

August 4th, 2008 dan Posted in WebSphere Application Server | 1 Comment »

In a case of something I have never seen before, it appears that PK49507: THE SIBUS RESOURCE ADAPATER WILL NOW INDICATE THAT AN MDB SHOULD BE STOPPED IF A CERTAIN NUMBER OF FAILURES ARE HIT actually requires you to recreate your entire server profile from scratch! It contains the statement:

This property will only be available for new activation
specifications in profiles created after this APAR has been
applied.

This makes the fix completely useless to anyone who actually uses a WebSphere server. The functionality? It adds a new property called ‘maxSequentialMessageFailure’ so that MDBs who use activation specs aren’t also completely useless in the rollback scenario.

All I want is to have this fix so that WebSphere can issue a ‘CWSIV0605W’ message which we can listen for to turn off the delivery of messages to the endpoint. If you can’t turn off the processing, then you have to deal with creating dead letter queues and have a process for putting message back on the queue when they are non-poison. This scenario is discussed further on Bobby Woolf’s Wiki.

I’ve never seen IBM release something called an ‘ifix’ that required you to create a completely new profile. I’m hoping that this is a misinterpretation from the support team. Unfortunately, I have verified with my two eyes that a server who has a preexisting profile and then upgraded does not see it.

AddThis Social Bookmark Button