SOA Expert Series: OSB Domain / SOA Suite Cloud Service a Technical Correction

SOA Expert Series: OSB Workmanagers and Thread Constraints

We had a webcast by the Oracle A-Team about OSB workmanager and thread constraints recently, with very good overall feedback!

 

What I liked most was that many questions were answered. You can get the full list here. Everything very valuable and I recommend to read it after looking at the slides.

OSB Domains and Clusters

Let me point out one unfortunate mistake to a rather interesting question: “How do you handle 1000 services in an OSB cluster?”. The answer was to create several OSB clusters in one domain.

With all the respect, yet I believe the answer is not correct. It is not allowed / not possible to have more than one OSB cluster in domain. This is confirmed by the Oracle documentation:

Actually the question IMHO implies much more, e.g. how to deal with a large number of services with different resource requirements, payload sizes, etc.

 

 

 

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.

OTN Tour Latin America 2016: Uruguay

OTN Tour 2016 Latam Stop in Montevideo

Next stop of the OTN tour after Brazil was Montevideo. We had a perfect start since Nelson from the Oracle User Group in Uruguay picked us up at the airport, we quickly dropped our luggage at the perfect Radisson hotel, had a perfect late lunch at the Mercado Central, with (you can guess it) perfect Tannat red wine, delicious meat and good company of fellow speakers. If Uruguay had been at the end of our trip and not only the second stop I would have bought some bottles of that wine.

The famous shot I always wanted to take myself after seeing it on the cover of some guide book:

Screen Shot 2016-09-05 at 21.49.38

The Event

The event was very professionally organized and running in two auditories at the same time. I was doing my OSB and the FUD about Microservices presentation for the first time and also presented about Docker containers (including a live demo) and had a lot of fun!

Finally I had a copy of my Cloud Computing and Middleware book to give away.

mvd3

After Montevideo almost the whole ACE team took the night ferry to Buenos Aires.

Some Impression

Here are some more pics I took during our stay in Montevideo.

 

Screen Shot 2016-09-05 at 21.51.32

The day after the conference I boarded a hop-on hop-off to see a bit of Montevideo and finally had a beautiful walk back from the beach to the city center.

Screen Shot 2016-09-05 at 23.52.22

OTN Tour Latin America 2016: Brazil

Oracle Technology Network Tour Latam Sao Paulo

I attended the 2016 OTN Tour Latam. First stop was Brazil which was on my personal to-travel list for a long time. Still I hesitated for many years to finally go to Brazil because it was clear to me that I wouldn’t be able to communicate a lot. Earlier this year managed to learn about 16 words in ภาษาไทย – which by the way got me one of the best laughs of the last 5 years in one of the city’s swankiest rooftop bars. So guys, learn languages!

2016-07-31 09.12.08

My Personal Challenge

Anyway, I sometimes like challenges and my plan for Brazil was to be able to speak some 100 words of Portuguese. After a bit of research, I quickly found a teacher in Munich (Bom dia, Chris!), studied and finally managed to achieve at least 50% of my goal (blame the usual boring excuses for missing the other 50%, but I was still better off than 95% of all other travellers).

2016-07-30 10.54.37

GOUB Tech Day: OTN Tour

The conference including the auditories were very good. I met many old friends, made too many new friends to list them all here, listened to great presentations from colleagues, and we had a wonderful, meaty conference dinner with a good selection of drinks. Actually I enjoyed everything, maybe except the surprisingly unfriendly and unprofessional reception at Blue Tree Morumbi Hotel.

goub

I did a presentation about Oracle WebLogic (12.2.1) 12c and one about Docker.

Have a look at the pictures gallery here to get some more impressions! Slides will be uploaded in a few days.