Dr Kano and the XQuery Mapper of Oracle Service Bus

Requirements, Qualities and Dr. Kano

Ever heard of Noriako Kano? In the 80s he was thinking about customer satisfaction and came up with the theory that there are must-be qualities of a product (they are often taken for granted but you’ll be really unhappy if a product doesn’t have them) and attractive qualities (they are not expected but they will surprise you).

Oracle Service Bus’ XQuery Mapper

Today I finished a milestone in a large SOA project for a big logistics company. The project intensively uses Oracle Service Bus 11g and the OEPE based XQuery mapper which brought Dr Kano back to my mind…

The XQuery mapper comes with some attractive qualities. Did you ever map elements and later discover that they are repeating and are part of sequence? Just map the enclosing sequence and all depending elements will be magically corrected. Try it yourself and examine the generated XQuery code to fully appreciate it!

Xquery

However, there are far too many must-be qualities missing! Everybody creating something bigger than a hello-word example will discover them (I ended up with some 1200 lines of XQuery code).

Known Issues

1.) There is no “Find” for the graphical view. Find is essential. Often technical design documents describe mappings in an Excel sheet and you get insane when searching for 500 elements on the graphical mapper.

2.) You cannot access the type of an element directly from the graphical view. The pop up window that appears when you hover over an element is a okay start but what is really missing is to get to the XSD in another tab with one click. Manually switching to source view cannot be an option for 500 elements.

It works for Java and we need the same for the graphical XQuery mapper.

3.) There is no clever way to print a graphical mapping. Possibly that’s an attractive requirement. Hmm? I’d enjoy it (to show off those monster mappings).

4.) There is no Find in the “Testing” tab either.

from here on, things get much worse:

5.) The XQuery mapper will remove your custom XQuery code! There is a a lot of work beyond simple dragging and dropping lines from one element to another in real projects – so removing manually written XQuery code is not acceptable.

Even a simple comment will be removed. Wow.

Yes, in real simple examples you would start with the graphical mapper first and then code the rest. In many real life examples “the rest” could be more than 50%. Note, I am not complaining that the mapper obivously won’t be able to display your custom XQuery code.

6. The mapper  refuses to map e.g. an integer type to a string. If you drag it to the Expression tab you can still do it. Why the workaround that requires an extra “save”? We not asking me if I know what I am trying to do, and from then on just do it?

Conclusion

Gossip says that Oracle SOA Suite 12c beta test is currently running. SOA Suite 12c will be JDeveloper based, so it’s fresh start! Let’s hope we will see all these issues ironed out in 12c, after all they are must-be qualities.

Do you experience other mapper issues? Drop a comment here!  

ps. I am not beta testing SOA Suite 12c, so I don’t know more about it than anybody else.

WebLogic 12.1.2 Per Domain Nodemanger Command Line Arguments

Stepping out of any WebLogic admin training you will know that before WebLogic 12.1.2 we could start the node manager (NM) using its listen address and its port number as command-line arguments overwriting the settings in the nodemanager.properties file.

This is still possible, but doesn’t work OOTB for the per domain NM which was introduced in 12.1.2.

The reason is, that the start script in

DOMAIN_HOME/bin/startNodeManager.sh

is calling

WL_HOME/server/bin/startNodemanager.sh

The script located in WL_HOME is still okay, but the one in DOMAIN_HOME doesn’t forward the command-line parameters. So if you just want to be able to run it as before, then replace

${WL_HOME}/server/bin/startNodeManager.sh

with

${WL_HOME}/server/bin/startNodeManager.sh ${1} ${2}

in the startNodeManager.sh in DOMAIN_HOME/bin.

Have a great day!

ps. Are you observing this 12.1.2 NM bug? Let me know if you don’t.

A/B Testing with Oracle WebLogic Server 12c Distinctive Recipes

I am doing some A/B testing: Last week my #WebLogic 12c Distinctive Recipes book was 60% off in the US. The ebook is $9 only. Now it is time for part B: The book stays the same price, but I let everybody know…

WebLogic 12.1.2: RESTful Management Services Bug in AJAX Client

Seems to me like the AJAX frontend for the RESTful Management Service in WebLogic 12.1.2 is a zombie now. I tested on CentOS and MacOS with Chrome and Safari. The initial page shows up, but after submitting the request there is no sign of life, no result displayed.

The AJAX frontend used to work fine in WebLogic 12.1.1, for 12.1.2 there is no response returned. A pity since I always liked to demo it! You can read about it in a blog posting from W. Oliveira.

ajax

 

Anyway, submitting the URLs directly is still working fine, i.e. it’s a bug with the AJAX frontend and not the RESTful service itself.

restdata

Also if you want to read more, a WebLogic RESTful Management service vs. open source Jolokia discussion (based on older postings here and here) can be found in my WebLogic book.

Per Domain Node Manager in WebLogic 12.1.2

The per domain node manager is one of the exciting new features of WebLogic 12.1.2. The basics are covered in the Oracle documentation  and Dave’s blog posting.

The real beauty of having a node manager for every domain on a particular machine are the following two improvements:

- Since the node manager is part of the domain, it will start the servers using the UID of the domain owner. JVM processes on a multi-domain server will be separated and belong to the individual UIDs.

- Node manager configuration and management scripts but even more important node manager logs are within the domain now. So no more logging from node manager into the product installation directory of WebLogic.