Running Weblogic 10.3 config utils in console mode, and gui mode in a Docker container

Most of Weblogic’s config utilities can run in a console/text mode if you need to run them from a terminal session in text mode, by passing the option: -mode=console

E.g. the apps here: /[middlewarehome]/wlserver_10.3/common/bin, like config.sh will run in console mode.

config_builder.sh however does not, and only runs in gui mode. This is an issue if you’re running Weblogic in a Docker container. All is not lost however, as you can forward X out of a Docker container, but it takes a few steps to get running.

Follow the steps in this logged issue to install and run socat, and then pass ‘-e DISPLAY=192.168.99.1:0’ where the IP address is the address of the vbox interface.  On my Mac this looked like:

socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"

then:

docker run -it -e DISPLAY=192.168.99.1:0 imageid bash

My image included xterm and dependencies installed via the Dockerfile with:

RUN yum install -y xterm

When attempting to run config.sh in gui mode however, it gave me this error:

Unable to instantiate GUI, defaulting to console mode.

This is fine for config.sh at it runs in console mode, but since config_builder.sh does not, it must run in gui mode with forwarded XWindows.

This post on ServerFault held the key – you need to also install libXtst:

yum install libXtst

Now all the utils will run in GUI mode forwarding X to your host. On Mac OS X this assumes also that you have XQuartz installed too.

Java EE App Servers – are they still relevant in a world of Docker containers?

This year at JavaOne 2015 there was a recurring theme across many of the Cloud and DevOp tech sessions that was promoting self-contained deployable Jars (not EARs or WARs) as a more efficient approach for deploying lightweight Java based services. This approach also plays well for a microservices type architecture and can also easily make use of containers, like Docker, PaaS offerings like CloudFoundry or Heroku, or even Oracle’s new Java SE Cloud Services offering.

Being able to deploy small, self-contained services (compared to large, monolithic EARs) brings a whole range of benefits, like being able to deploy more often, and deploy individual services individually without touching or impacting any of the other deployed services.

If you go a step further to consider a deployable unit as a disposable Docker container, then you have to start asking questions about whether a traditional Java EE App Server is still required, or even fits at all this this kind of deployment approach.

Oracle has a supported project on GitHub for Dockerfiles to build images running Weblogic 12c… if you try to do this you also wonder just just how practical it is to even attempt to run Docker containers that are 2GB+ in size… yes, you can do it, but are you really getting the benefits of the lightweight and lean, disposable containers at this point?

I came across this article by James Strachan, “The decline of Java application servers when using docker containers“, which is an interesting read on this topic. The more you look into Docker, containers and lightweight services, you have to question whether Java EE App Servers are losing their relevance. Or at least whether they are relevant for this approach of containerized deployments.

Are Oracle abandoning Java?

That’s an alarmist question, but recent goings on at Oracle suggest something is changing.

Today there was an eye opening story on InfoWorld about a letter from a ‘former high ranking Java official’ (maybe one of the Java Evangelist team recently laid off?), that

… the company [Oracle] was becoming a cloud company, competing with Salesforce, and “Java has no interest to them anymore.” The subject line cited “Java — planned obsolescence.”

This follows the recent layoffs in August/September of several key players on their Java evangelist team: Simon Ritter, Cameron Purdy, James Weaver, and others.

Maybe I’m scraping the barrel for facts here, but I noticed earlier this year that the java.net site hadn’t been updated with any new stories or updates since April:

And @javanetbuzz, who used to tweet Java related stories from the java.net site hasn’t tweeted since February 18th this year:

Incidentally, this might just be horribly bad timing, but both java.net and netbeans.org websites have been down today:

So have Oracle been quietly ramping down their Java related efforts this year? JavaOne is only 3 weeks away at this point – is there going to be some news or announcement from Oracle about their plans for Java, or are they just going to continue as if nothing has changed?

Updated: As I wrote this, java.net is back with this message (although this is dated from a few days back, so I’m assuming this message was already there on the site for a few days):