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 integrated server option in the application server connection wizzard, and point it to the standalone domain.
    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.

 

 

Oracle Service Bus 12c (12.2.1) Native REST: Bug in HTTP GET in Pipeline?

While working on an Oracle tech presentation to be posted here, I discovered the following issue with native REST and Oracle Service Bus.

Version

SOA Quickstart / 12.2.1 OSB, running on RedHat derivative with Oracle JDK 8.

Description

OSB 12.2.1 Native REST pipelines don’t work with GET parameters.

Creating a native REST business services works fine, also adding a REST proxy service.
Once you insert a pipeline HTTP stops working correctly (since the URL parameters aren’t forwarded, a list will be returned by the backend service according to REST semantics), since URL parameters are not forwarded.

Steps to reproduce:

  • Use REST tech adapter to create a REST business service for an existing REST backend.
  • Define GET and POST methods. WADL will be created.
  • Test business service from WADL: both GET and POST will work.
  • Create proxy service from REST business service
  • Test proxy service, again GET and POST methods will work from OSB test client.
  • In JDev, drop a pipeline on the line connecting proxy and business service.
  • In JDev verify the pipeline configuration. it will display correct values.
  • Test the proxy service again, only POST will work. GET does not work anymore (now returns a whole list), since the URL parameters are not forwarded. Even an empty OSB pipeline will swallow the GET URL parameters.

Severity

IMHO this is a bug. I am currently in discussion with Oracle about it.

What is next?

I will let you know about updates / fixes or workarounds. Note, you could set the URL parameters as routing options to circumnavigate the issue for a particular use case.

Oracle Service Bus 12.2.1 JVM Settings: PermSize, Heap, Non-Heap, and ResourceManagement

Oracle Service Bus comes with JVM settings that cause questions to some customers. This posting provides answers to the most common questions I discussed in workshops or received so far.

Warning about PermSize Option

Question 1: “I see the following warning:

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024m; support was removed in 8.0

Does that mean that Oracle generates the startup scripts with wrong JVM flags?”

Answer: With Oracle JVM 8 the permanent space was removed. Not having a perm space was a JRockit “feature” that has been ported over to the Oracle JVM. The warnings of course are harmless. Startup scripts for WebLogic only domains are generated correctly for WebLogic 12.2.1. So Oracle needs to change this for OSB domains and they know about it.

Heap Size

Question 2: “How big is Oracle Service Bus now? I used to be able to create and run a cluster on my laptop with earlier versions but now I run into resource problems.”

Answer: Default startup parameters are: -Xms1024m -Xmx2048m, i.e. minimum heap size is 1 GB, maximum heap size is 2 GB. Hence you should expect your process size to be larger than 1 GB right from the start.

Screen Shot 2016-02-17 at 13.27.49 Screen Shot 2016-02-17 at 13.29.38

Roughly speaking after starting up a single OSB instance (everything hosted on the admin server), you should expect more than 400 Mb of heap used. Have a look at the screenshot above. The last drop in the first screenshot was caused by an external garbage collection request (I did it manually). In addition there is more than 500 Mb of non-heap used (100 Mb code cache and 400 Mb meta space, GC of course does not affect this area). This shows that 1GB as a minimum setting makes sense.

JVM ResourceManagement Flag

Question 3: “I see the following warning

<Feb 17, 2016 9:45:56 AM CET> <Info> <RCM> <BEA-2165021> <"ResourceManagement" is not enabled in this JVM. Enable "ResourceManagement" to use the WebLogic Server "Resource Consumption Management" feature. To enable "ResourceManagement", you must specify the following JVM options in the WebLogic Server instance in which the JVM runs: -XX:+UnlockCommercialFeatures -XX:+ResourceManagement.> 
Should I enable -XX:+ResourceManagement? Will it help to improve OSB 12c performance?"

Answer: You probably have read announcements that emphasize that OSB 12.2.1 is running on top of WebLogic 12.2.1 and WebLogic 12.2.1 supports a number of exciting new features. Nothing wrong with that, kind of marketing logic though.

It is important to understand that Oracle Service Bus 12.2.1 (and other up stack 12c products such as Oracle SOA Suite, Oracle BPM etc.) doesn’t use yet some really cool WebLogic 12.2.1 features such as domain partitioning or elastic cluster.

In short: Oracle JVM 8 resource management is used as a commercial feature together with G1 garbage collector to track JVM resource usage on the JVM level per partition. Based on the collected data about memory, file and thread usage WebLogic can then react and ensure that a WebLogic partition within one domain doesn’t steal too many resources from another partition. It’s important to understand that the magic (the reaction) happens in WebLogic and it’s based on the data provided by the JVM.

So will the -XX:+ResourceManagement setting improve OSB 12.2.1 performance? I’d say no. It will only have benefits when used with partions which are so far not supported by OSB 12.2.1.