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.

 

 

OSB / SOA Suite 12c Domain Types

OSB / SOA Suite 12c Domain Types

screen-shot-2016-11-30-at-16-22-10Let me explain you some news about the domain types in 12c, since some of my colleagues were fiddling around with this. Due to the new quickstart installer for SOA Suite and OSB 12c there are more domain types available now for SOA Suite and OSB12c that you need to understand. The following options describe those types with added comments of when the make sense.

 

 

Options:

  1. The integrated domain that gets generated by JDeveloper if you run a project. Sometimes it is called default domain. This domain is bound to JDeveloper. Whenever you quit JDev, the domain shuts down. The downside is that this domain always supports OSB and SOA Suite, so a bit of waste of resources if you are only after OSB . This is the easiest solution for your first steps because no manual domain creation is required and JDev does it all for you.
  2. A standalone domain. This is the new and interesting option, because a standalone domain uses the Java DB and does not require you to run the RCU utility. Still a standalone domain is running independent from JDeveloper 12c, so you could you use this type of domain for development with OSB web console.You create the domain by setting the QS_TEMPLATES environment variable and running qs_config.sh, then create an application server connection with JDev, use the standalone server option in the application server connection wizzard, and point it to the standalone domain.
    You will be able to use “Deploy” from JDeveloper, but unfortunately not “Run as”.
    There are more benefits to a standalone domain not mentioned in the official documentation: Whereas the integrated domain includes everything needed for SOA suite you can restrict a standalone domain to Service Bus only and therefore reduce the number of internal deployments from 304 to 278 which will save you startup time.
  3. A compact domain can be used with quickstart. Also compact domains are targeted for development. This domain will be compatible with add-ons such at MFT, OES, etc. Note that you have to specify a special parameter CONFIG_JVM_ARGS=-Dcom.oracle.cie.config.showProfile for this option to be visible in the configuration wizzard.
    Since you can use it with an compatible Oracle DB, the necessary schemas have to be created with the RCU utility. Note: A compact domain is a developer domain consisting of a single admin server and no managed servers.
    The opposite of a compact domain is called extended domain where resources are deployed on a cluster of managed servers. Use extended domain for environments such as test, integration, load test, prod. These environments are distributed and clustered typically due to HA requirements.

Conclusion

It is important to understand the various domain types and to choose the correct domain type for your requirements. You can strip down a standalone domain to be OSB only, then make sure to select Integrated Servers if you want to deploy directly from JDev to it.

Oracle Service Bus 12.2.1 Training Course

I provided an open enrollment, hands-on training for a dozen SOA architects. Another successful Oracle Features and Showstoppers training course.
This time we covered Oracle Service Bus 12.2.1, including all the new and cool features such as dynamic domain value maps, JDeveloper 12.2.1, pipeline templates, dynamic validation, end-to-end REST, JSON payloads, the new XQuery mapper with XQuery modules, clustering, Oracle Fusion Middleware Control, and much much more.

thanks to everyone who attended!

osb12c kurs