Functional Checklist: OSB 12c / SOA Cloud Service (SOA CS) Upgrade

When upgrading to from OSB 11g to OSB 12c or to its cloud cousin SOA CS there are new features that you should be aware of. I will go through the most important ones in this posting. Additionally I will present some architectural / operational facts that you should know. Obviously you don’t have to adopt every new feature. Mostly OSB 11g projects will continue to work after they are loaded as a config jar into 12c. So using new features of 12c can be a gradual process.

The following non exhaustive list was compiled to support the upgrading of a dozen of several large scale projects with almost 200 services on OSB and a team of 12 developers. It assumes that you have a basic understanding of OSB 11g.

 

Installation / Domains

  • Choose the SOA Suite 12c quickinstaller for for first exporations. Quickinstaller comes with WebLogic, OSB, SOA Suite, and JDeveloper. All matching version numbers. Also the internal domain is created and started automatically and it runs the the Java DB.
  • Compared to 11g the creation of a dev environment has become easier, but the installation of a prod domain more difficult (due to hard dependencies on a database)
  • Even though quickinstalls are easy, consider the use of virtual instances, Docker or at least a scripted installations for dev environments. Even for mediums sized team developer team you will have to fix issues more often than you might believe if developers follow a written instruction. Always. Script. Automate. Or put it in a (virtual) box.
  • Understand the creation of standalone domains. It saves you the time and resources for deploying unnecessary SOA Suite artifacts when only an OSB domain is required.
  • For production domains you need a supported Oracle
    DB (mainly for MDS, but also for OWSM etc).
  • Therefore for production installations you have to run the RCU utility to generate the required schema.
  • You cannot load 11g Eclipse projects into JDeveloper 12c directly.
  • Expect that you can import most of your OSB 11g artifacts as an sbconfig.jar into JDev and they will continue to run. There might be exceptions, so test a representative number of your typical communication patterns / transport protocols and XQuery / XSLT transformations for an estimate.

IDE / JDeveloper

  • JDeveloper is the only IDE you can use with OSB 12c. Support for Eclipse does not exist anymore
  • We found JDeveloper 12c (12.2.1.1) on Linux rather unstable and observed several crashes. The dev team will use more Windows 7 based installations now and I will update this item later

Maven

  • Make sure to understand maven support. It was broken in 12.2.1 and required manual fixes in several pom files.
  • Officially maven is still not fixed in 12.2.1.2 but it works if you configure the maven.oracle.com repository and also use the push plugin to create local artifacts in .m2.
  • Note that just pushing the 12.2.1.2 ORACLE_HOME into .m2 with the maven plugin from OSB is not enough and you will encounter missing files.
  • Don’t forget to update the catalogue of maven artifacts after using the OSB maven plugin.

Actions / Pipelines

  • Pipelines are not part of the proxy service anymore, but standalone now.
  • Separated pipelines enable reuse.
  • Pipelines can use shared variables.
  • You can enable/disable stages and actions but not pipeline pairs.
  • You can use domain value maps (DVM)
  • You can also use cross references (XRef)
  • There are pipeline templates. I find them useful to standardize service development and especially error handling.
  • Make sure to understand about the new resequencer to order messages in OSB
  • If you import an OSB 11g jar the existing proxies will be automatically converted and the pipelines will be extracted and shown as separated items.
  • OSB 12c actions are mostly the same. Understand if you can make good use of the following new features / actions
    • dynamic validation
    • disabling actions
  • The new nXSD replaces the MFT for native data formats

Caching / Coherence

  • Make sure to understand OBS caching per service implemented. This can be a huge performance boost and a rather large number of project teams I am talking to don’t even consider to use it.
  • If OSB caching for the results of business services is used, configure it properly (off instance coherence cache).

XQuery

  •  OSB 12c supports XQuery 1.0 and XPath 2.0 specifications
  • XQuery libraries are supported also graphically by JDeveloper

New Consoles / Fusion Middleware Control

  • The new /sbconsole is now available under /servicebus
  • Oracle Fusion Middleware Control is the new console for monitoring etc. It is available under /em.
  • You can now dynamically update Domain-Value Maps (DMV) in OFMCtrl

Upgrade Process

  • Oracle publishes a lengthy upgrade flow diagram describing the upgrade process. Familiarize yourself with it.
  • I usually recommend not to upgrade existing 11g domains with the reconfiguration wizzard but to start with a new 12c domain and then reimport your artifacts, and recreate configuration with your automation scripts (e.g. WLST).

Cloud

  • Consider using the SOA Cloud Service for the benefits of an cloud instance (almost zero setup, metered licensing, automatic patching etc).
  • You can have a free SOA CS trial for 30 days. This give you time to explore if it flexible, fast and reliable enough for your needs.
  • All functional features described above apply to OSB on premises as well as SOA CS.

 

 

OTN Tour Latin America 2016: Chile

Oracle Technology Network Tour Latam 2016:
Santiago de Chile

The conference in Chile was exceptional for a couple of reasons. For the first time ever I met German, the tech reviewer of my WebLogic 12c book. A great guy (not sure if he wants to read his name here – just get the book, he is in the acknowledgement!) who did a brilliant job in editing the 12c book. We had lunch together with his friends from Oracle ACS and the best I can say it felt like friends you know for years and not somebody you met 30 minutes ago. It was a pleasure meeting you guys!

2016-08-09 14.05.53

Conference

The conference itself was the University San Sebastian in Bellavista area. Quite a few presentations were running in several rooms in parallel.

Also Santiago is great. From every traffic jam you can see the mountains! It is really a pity I couldn’t go to any more remote places like Atacama desert or Torre de Paine. Anyway both are now top on my to-travel list. My friends know what this means. Stay tuned.

Again I did a Docker live demo. The audience seemed to like it, what do you think? Also the room was big enough for big ideas. Big thank you to CLOUG and Felipe Manriquez.

2016-08-09 14.07.53

The non Conference Part

I did not really have a lot of time for sightseeing but I managed to nip out and have a seafood lunch at the Mercado Central before heading to airport. Actually a memorable drive, since the Uber driver was driving alongside the runway but was not able to find the airport 🙂

2016-08-09 14.00.48

 

APIs, and Clouds: Please Explain the Joke!

Some people have asked what the sentence on my laptop sticker means. I was gifting some of these stickers at the OTN Tour Latam 2016. Maybe it is a bit of a academic / nerdy joke. So let me explain.

Screen Shot 2016-08-10 at 10.23.24

The Posh (and boring)

Once upon a time there were people rich in money but poor in humor driving around in their second cars (typically a small Mercedes, a small BMW or a small Audi) with a sticker on it saying that their first car is a huge Mercedes, Porsche or Bentley. Let’s not waste too much time talking about these people here.

Australia

The cooll stuff as often started in Down Under. Some people with a lifestyle instead of a job came up with a cool car sticker, that basically said it is much nicer to have a small boat and go to the sea for diving than wasting money on a second car. E.g. see here for a rather fun version.

Google

Then (to the best of my knowledge) Google made fun out of it, riding the cloud computing wave with a sticker that said “My other Computer is a Data Center“. Meaning that if you use the cloud you can have a whole data center.

Cloud Computing and APIs

Let’s get a bit more specific: What I pointed out half decade ago (yes, that time when everybody was just laughing about that topic) in my Cloud Computing book is the following: The true beauty of cloud computing is not that you access a compute instance in somebody else’s data center – this is what you could simply get by outsourcing. Guys, it’s more that your whole data center is software. Your whole data center is an API!

With cloud computing the difference of placing a cloud instance in Sydney or Frankfurt is just one single parameter in an API call – that comes at no extra cost. Same for placing it in datacenter 1 in Frankfurt or datacenter 2. So you get geo-redundancy for free! Now go and try this at home.

Also there is no difference in using 100 instances for 1h or using 1 instance for 100h. So you have a massively parallel, distributed supercomputer at your fingertips for a few pennies. Try this in your DC.

I guess now you get an idea what sticker means and why it says API. At the end it is all about APIs. And we haven’t even started to talk about the possibilities of PaaS, SaaS, HaaS, or API Management 🙂 Btw, sometimes I think most marketing people do a really bad job causing FUD instead of promoting tech.

Screen Shot 2016-08-22 at 11.20.04

Screen Shot 2016-08-22 at 11.35.15Screen Shot 2016-08-22 at 11.20.26

computer api cloud

api-with-a-view

Let me know if you spot more of these stickers out there and send me pics :-)!

Opatch for Oracle WebLogic 12c or Oracle Fusion Middlware

Those of you who blog will know that the most useful postings are the ones that you lookup yourself now and then. This one I was pulling out of my virtual class room drawer several times when asked by customers.

opatch webcast

Quite a while ago I did a webcast about the new patching utility opatch (read the original Oracle opatch documentation for 12.2.1 here). Opatch is now used with Oracle WebLogic Server 12c but also with Oracle Fusion Middleware products such as service bus and SOA suite.

P.S. opatch is of course covered in my latest Oracle WebLogic Server 12c book.

 

Bug: Wrong Message Type and XQuery Expressions in OSB 12.2.1 /servicebus Console for Message Based Pipelines

Environment

I am using the latest download of JDeveloper 12.2.1 with the builtin test domain for SOA Suite 12.2.1 and OSB 12.2.1, all running on Java 1.8.0_65_b17 on a RedHat derivative.

Business Service

I created a message based business service based on a simple XML element definition for an Order via an XSD.

2016-01-21_12-16-15

Testing the business service shows the correct test data. Good. Note, that there is an embracing <ord:order> element containing other element such as version or ID.

2016-01-21_12-07-41

Pipeline

A pipeline is defined based on the same element.

2016-01-21_12-16-36

Interestingly the pipeline shows a different variable structure, missing out the embracing <ord:order> element.

2016-01-21_12-15-21

So any created XQuery expressions, e.g. for a Log action as seen on the screenshot above will be wrong as well and missing the embracing <ord:order> element. So put it more clear, non of the expression will return anything meaningful.

Conclusion / Impact

IMHO this is a severe issue if confirmed. Let’s face it. OSB was never easy but a rock solid product. For almost a decade I solved problems by telling people to stay calm and carefully looking and the test data, the elements, and the namespaces provided by OSB testing console. Now this seems to be broken.

Workaround

You can manually fix your XQuery expression. Possibly this also relates to another OSB 12.2.1 bug I blogged about earlier.