WebLogic with Docker in the Cloud

dockerDocker has been without any doubt the most hyped technology this summer. Apart from incrementally and quickly creating light-weight containers that can be hooked up together it seems to become the de-facto standard for spinning up instances locally and in the cloud. In the past there was no real compatibility between cloud providers on an OS/instance-level and also import/export features were “demanding” at best.

Linux containers for clean sandboxing do exist since much longer, e.g. Google is starting over 2 billion Linux containers every week. With Docker there is an open source based de-facto standard now that customers want to use (honestly, few people looked into lxc and kernel namespaces before Docker had it’s appearance)

Docker and WebLogic?

Oracle WebLogic Server currently does not officially support Docker, yet there is a github project to start with created by Bruno Borges. This project contains the Dockerfile with all necessary WLST-scripts to create a Docker container running WebLogic.

Screen Shot 2014-09-21 at 12.19.11

You can run Docker itself in Oracle Enterprise Linux like in most other Linux distributions such as CentOS, Ubuntu etc. Docker containers always run Linux; e.g. you could have WebLogic running on Ubuntu in a Docker container which is running on CentOS.

Docker Hub Registry

The Docker hub registry is best known as a public registry for Docker images to start with but it can be used to store private images as well.

The Docker Registry contains base Docker images for Java, Ubuntu etc., yet there are no official images from Oracle at the moment. Let’s hope that Oracle will not repeat the rather sad story of poor support for Oracle product AMIs for Amazon Cloud.

Public Clouds can either deploy Docker containers directly from github by creating a container on the fly based on a Dockerfile on github, or by accessing an Docker image stored in the Docker registry. I will demonstrate below how to deploy WebLogic as Docker container straight from the Docker registry.


Clouds: Amazon, Google, …

Amazon Beanstalk, same as the Google Cloud, support Docker containers as well! So you can dockerize your application (including WebLogic) and run the same Docker image on the cloud. To the best of my knowledge there is currently no information available if Oracle has plans to support Docker in the Oracle cloud.

AWS Beanstalk Cloud

HowTo Run Your WebLogic in a Docker Container on Amazon Beanstalk

The following web cast gives a brief overview of the steps involved. It’s not intended as a A-Z tutorial, rather a quick recording to illustrate the point saving you from dozens of boring screen shots. I am using CentOS 7 to run Docker and create the local Docker container.

The following steps are shown:

  1. Create a running Docker container with WebLogic
  2. Create a new image based on the container
  3. Upload the image to Docker hub
  4. Create the Amazon Beanstalk JSON file for running a Docker container
  5. Create an AWS Beanstalk environment that runs the image from Docker hub
  6. To prove that 1. to 5. are working run a demo app in the cloud


If you want to know more, I recommend to get a good book about Clouds, and WebLogic, read Bruno Borges blog entry, the Docker documentation, and the AWS Beanstalk documentation.

Oracle supports the licensing of certain AWS/EC2 instances, also different versions of Oracle Database are available at the Amazon cloud, so ask your Oracle sales rep about the licensing with Docker and Beanstalk.


Oracle Open World 2014 Presentation

The Forefront of Application Platforms

speaking large

I’ll be speaking at the Oracle Open World 2014 conference in San Francisco about “The Forefront of Application Platforms” together with the Senior Principal Product Manager of WebLogic. 

I hope you are excited – I certainly am! 
Schedule me here: http://goo.gl/jrwgTZ


(c) Dr. F. Munz


From #ofmsummercamps to Oracle Open World 2014 #OOW2014 …



The Oracle Fusion Middleware Summer Camp in Portugal just finished last week. I guess everybody agreed it was  fabulous event for getting your hands on Oracle SOA Suite and Service Bus 12c, Managed File Transfer, BPM, OEP, MAF, and the Enterprise Scheduler.
I already wondered who will be playing this year at OOW, but actually it is 3 epic nights of music! Since today the announcement for the Oracle Appreciation Event at Oracle Open World is out:

Amongst others, Aerosmith and Empire of the Sun are playing! (If you’re not into music, make sure to come to my presentation at least. Details to come…)

JDeveloper 12.1.3 for SOA Suite and OSB 12c Crashing?

Today at the Oracle Fusion Middleware Summer Camp in Lisboa I experienced some SIGSEGV JVM crashes. It happened when trying to use JDeveloper 12.1.3 under MacOS  with the SOA Suite Development installer – right after the installation when starting up the server from within JDeveloper. (Most of the experienced SOA Suite developers went the beaten path using Windows).

My installation used a fairly recent JDK 1.7_45, but SOA Suite 12c is supported on MAC OS only for a single user development installation starting with JDK 1.7_51.

Upgrading to JDK 1.7_65 and recreating the JDeveloper default domain fixed the issue.

OSB 12c with JDeveloper on MAC OS


Give it a try! It’s the best time to explore the brand new SOA Suite 12c features – now even natively on a MAC.


WLS Distinctive Book Give Away…

Guys, @wlscommunity has half my weight of the new WebLogic Distinctive Recipe book to give a away! I cannot imagine a better way to produce a huge drop in book sales :)


I recommend to tweet some fun Oracle / WLS community related pic. Shouldn’t be that difficult.

bE cReAtIve & do write a short review on Amazon!

Cloud Computing Workshop in Berlin

A Tad of Cloud Evangelism

It’s always a pleasure to travel to Berlin for various reasons. A fortnight ago I was running an AWS/Google/Netflix OSS/Cloud Management workshop for a non-disclosed European Agency. I had about 3 dozens of attendees working at the forefront of technology.




Yesterday a Thank-You letter from their director arrived.

“My people work on mosaic pieces… Your presentation showed the whole picture”.

Thanks a million! I makes me feel flattered.

New WebLogic 12.1.2 Webcasts Posted

Those of you who subscribed the WebLogic Book Youtube Channel already know that I published 2 additional webcasts (the 2014 edition of WebLogic Distinctive Recipes Book references them).

I).  Per Domain Node Manager

Note, that I keep receiving comments about the WebLogic 12c node manager bug. This is fixed now in WLS 12.1.3.

II). WebLogic Server Templates

and Dynamic Cluster:

Oracle WebLogic Blog / Good Eats

Good eats.


Good to see that my new WebLogic book which is covering lots of features and showstoppers is mentioned on the Oracle WebLogic blog. Thanks!

Btw, anyone going to Open World? Drop me a line if you want to meet up for a coffee (or a sausage)!

New Webcasts

As mentioned already I will publish the new webcasts from the 2o14 edition of WebLogic Server 12c Distinctive Recipes book here. Don’t miss out – subscribe to youtube.com/weblogicbook

WebLogic 12c and Maven Part I:


WebLogic 12c and Maven Part II:


Server Templates:


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!


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?


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


is calling


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 ${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.



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.


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.

20th WebLogic Book Review comes from India!

The two statements from @ganeshk_8 a Senior Technical Consultant for OFM about my WebLogic 12c book are top notch:

“It promises much more than what its name suggests.”

“You will end up thinking – had I read this book earlier, I would have saved a lot of time in my project.”


Read the full review here.

2013 on Twitter

see my 2013 on Twitter video here.

WebLogic 12c Distinctive Recipes 2013 Book Raffle Winners

Congratulations to the winners of the WebLogic 12c Distinctive Recipes book raffle!

The following winners were drawn and notified:


Enjoy the reading!






Book Raffle: 3 Free Copies of WebLogic 12c Distinctive Recipes

It’s Christmas time, 2013 is almost over. I’ll be heading to Berlin next week, which will be my last business trip for this year. 2013 has been a good year! A year packed with exciting projects, interesting tech workshops and new customers looking for honest OFM consulting and doing cool stuff.

Free WebLogic 12c Distinctive Recipes Book

To give something back, I am offering three free copies of my 2013 book WebLogic Distinctive Recipes.


By the way, guess who is Santa Claus on that picture? Don’t get fooled by the belly… I had to use an extra pillow to trick my 9-year-old nephew into believing that Santa exists (some friends believe that Beyoncé later copied my trick with the pillow).


The Raffle

To participate in the raffle simply let me know that you like a copy before Dec 20th:

✘✘✘  Just retweet the announcement on Twitter, or tweet about it yourself (and make sure I will see it).

✘✘✘  Or, if you are more a Facebook person,  SHARE the Facebook announcement.

The Smallprint

There is no purchase required to participate! All you need is a delivery address. Winners are drawn Dec 21st. Decisions are final. Any recourse to courts of law is excluded.

Training for the Cutting Edge: Presentation about SW Architecture and Tools for Public Clouds at the European Patent Office

Last week I provided a day long cloud training event at an European Patent Office for about 30 patent officers. Explaining details about software architecture and tools we covered the following cloud technologies:  Amazon Web Services (EC2, S3, EBS, Elastic Load Balancer, CloudFront, RDS) and Oracle Cloud Database and Java Service, Netflix OSS.

The whole event was very rewarding. Just imagine speaking to a large group of highly skilled experts of about every possible computer science topics such as networks, programming languages, encryption, development tools, CPUs etc.

cloud title epo

Unfortunately I can’t share the slides with you since this was a custom private event.

Also most of the feedback was provided right after the training. Just a few people who had to dash off provided online feedback, have a look below.


Coments about the training even:

epo comment


epo content




DOAG 2013 WebLogic 12.1.2 Talk

There is still the training day to come where you can learn about WebLogic 12.1.2 as well, but DOAG conference is almost over. I enjoyed it a lot, especially the increased number of OFM talks.


DOAG 2013 Conference


I’ve done my talk “10 Things You Should Know about WebLogic 12.1.2″ yesterday. Apart from covering the 10 most exciting features I guess I mentioned at least half as many showstoppers and the audience seemed to appreciate it.

You can get the slides somewhere at the DOAG site (I guess) and from slideshare.net

doat talk


Glad to see that interest was huge and more than 100 people attended, including people standing at the side and in the back. The WebLogic training day on Friday will be next. It is fully booked as well. Looking forward to see you there!

I posted some more impressions on the WebLogic 12c Distinctive Recipes Site.

Python for the WebLogic Scripting Tool (WLST)

To be able to code more than the most basic WLST scripts for WebLogic you should have reasonably good Python skills. Fortunately there are many good and free resources to get started.  Note that WLST as of WLS 12.1.2 is using Python 2.

Here is a list of recommendations to learn more Python and become better a WLST:

As you can see I haven’t mentioned any real books yet. Let me know your favourite!

Perl 1-Liners

Good collection to remember which just saved me from a stupid Excel task.
(It might help you with your WebLogic log files.)


The ACE Director Thing

Yes, it is true.

I became an Oracle ACE Director! I was nominated in summer yet working in Sydney and Melbourne but travelling back to Munich I was just too busy to blog about it. This is of course a great honor: Being an ACE Director is playing in the Champions League.

What makes me feel even more flattered is that some of those people who I respect most at (and around) Oracle nominated me. Thanks to all of you! Also thanks to everybody who hired me for consulting work, attended my workshops or bought one of my books: ultimately you made this possible.

What it means

Well, hopefully this means that I can speak at some more conferences, exchange with other ACE dirs, establish better contacts with Oracle VPs and PMs, and possibly have a tiny little bit more impact on how Oracle Fusion Middleware is going to evolve.

What will change?

Nothing. Sincerely, not a thing. Those who know me understand that I am not at all looking for fancy titles to impress people. For me the question is if there will be a real benefit for my work – which means for my customers.

Myself, I will continue to write about technology which happens to be mostly Oracle. Oracle didn’t buy me (I got a logo and a T-shirt). Also in the future I will mention bugs, missing features and complain about architecture that doesn’t seem right. I will continue to write books and articles explaining how easily features can be used and in which situation they are useless. Also I will continue to explore new formats like in my WebLogic book.


WebLogic 12.1.2 Installation in VirtualBox with 0 MHz

The Situation

who_is_listening I just looked at a problem at a customer site installing WebLogic 12.1.2 in a VirtualBox environment. WebLogic 12.1.2 uses – unlike all previous versions of WebLogic – the Oracle Unified Installer (OUI) which first of all seemed to be the problem.



The Problem

Here is what happened in detail:

– The installation failed because the OUI installer is checking the prerequisites and reports all CPUs with 0 MHz. For sure, this is not good enough (even with all the clever energy saving techniques in modern CPUs)

– The key question is whether OUI is buggy or the problem is somewhere else, e.g. in the OS or virtualization layer.


$ grep MHz /proc/cpuinfo

reports indeed 0 MHz for all CPUs. So the problem is not related to OUI but a VirtualBox issue. Still a weird problem. Why would CentOS be running with 0 MHz??

– VirtualBox might report 0 MHz for your CPU in case you selected the wrong chipset for your machine (in our case the developer’s HP laptop). Note, this means that exactly the same VirtualBox image will run fine on different hardware!

To fix it, stop the running guest and change the chipset setting in VirtualBox Manager from the default PIX3 to the non-default ICH9.

bios setting

– Once this is done. Restart the guest image and check again. The CPUs should be reported correctly and OUI will run successfully.

$ grep MHz /proc/cpuinfo 
cpu MHz : 2664.287
cpu MHz : 2664.287
cpu MHz : 2664.287
cpu MHz : 2664.287


WebLogic SNMP UDP Port – Misleading Error Logs

Have you lately tried to use SNMP with WebLogic? I did, because I upgraded an earlier Windows-based domain to WebLogic 12.1.2 running on CentOS Linux.

SNMP Configuration

WebLogic is showing some strange and undesired behaviour here… Firstly, to get started with SNMP basically all you need to do is to enable the SNMP agent.

WebLogic SNMP Agent


This is good enough when running under Windows. Then you might specify a trap destination such as localhost 4000 and run the WebLogic command-line tool to listen to the destination and verify if your setup is working.

WebLogic Trap Destination


The command line to run the trap listener looks like this

$ java weblogic.diagnostics.snmp.cmdline.Manager SnmpTrapMonitor -p 4000
Listening on port:4000

Now, of course you (well, in this case me) forgot to modify SNMP UDP Listen Port and the Master AgentX Port. For sure you know that you cannot bind to ports less than 1024 in UNIX.

WebLogic Bind Exception

What happens

  • Interesting enough, there is an error message in the Weblogic startup – it is just pointing you to the wrong direction since it complains about port 171 not being available. Now, you might wonder, port 171 is configured nowhere!
  • Apparently WebLogic is trying 161 and the following 10 port numbers, eg. to avoid conflicts when several servers are running on a single machine (nothing to complain about, this behavior is documented, just click on “help”).
  • If all ports are unavailable (or not allowed for non-root users in UNIX), WebLogic does not complain about the configured port not available, but about the last one it tried. Not such a good solution…
  • Looking at the Master AgentX port, the situation is different again. Of course the restriction for binding to ports less than 1024 still applies, but there is no auto-increment on WebLogic. Unfortunately, the error message in the log file does not even mention the port number.

To conclude, when specifying a SNMP port number that you cannot bind to, you might see an error message containing a different port number than the one you configured for SNMP UDP Listen Port.
For the Master AgentX Port you will see a rather generic message, not containing the problematic port number at all.

Both is good to know and leaves some space for improvement.

<Sep 21, 2013 8:53:54 AM CEST> <Error> <SNMP> <BEA-320951> <Failed to initalize the SNMP AgentX master subagent. One possible cause is the failure to bind the Master agentX port. If this is the case, check to see if the specified AgentX port is available, or ensure that the process has permissions to bind to the desired port.
weblogic.diagnostics.snmp.agent.SNMPAgentToolkitException: java.net.BindException: Permission denied
 at weblogic.diagnostics.snmp.agent.monfox.MonfoxToolkit.initializeMasterAgentX(MonfoxToolkit.java:186)