WebLogic 12c: Node Manager Best Practices

During the last couple of years (and the last couple of WebLogic versions) I collected a number of best practices  regarding WebLogic nodemanager. All of them hold true for WebLogic 12c as well. This posting is not a step-by-step beginners guide and it will not save you from attending some training or studying the Oracle documentation regarding node manager yourself. Anyway, here are some suggestions, check if the apply for your environments:

Node Manager Best Practices

 

  • At first, take a decision to start servers with or without NM. Note, that  is not absolutely necessary. You can always start your servers with the scripts generated by the config wizzard. I personally know rather big companies building lovely cars who took the decsicion not to use node manager.
  • Would I use nodemanger myself? For an “average” project: yes! Only after configuring node manager you can use the WebLogic admin console to start and stop managed servers and node manager will restart you failed servers as well. However, if you consider restarting you servers automatically because of out-of-memory problems, better read this article about “surviving generations”  to understand how to track down memory leaks and fix them. Anyway, you still want to use node manager.
  • Make sure you understand that nodemanger will use default values to start your servers unless you specify them yourself in the admin console under server startup parameters.
  • Make sure you always start your servers with same startup parameters! This is really important. You end up in deep trouble if you don’t. Believe me.
    Imagine somebody is starting a managed server using the admin console and the provided values there. Next day somebody else starts a server using the provided scripts (which – at least in real life – will never be identical to the startup values configured in the admin console). Now depending on the way the server was started it will behave differently and show erratic behaviour or not.
  • Document and communicate the usage of node manager. Write it down in the operations manual. If you ever hire me as a consultant for some performance tuning it helps to know if you are actually using node manager or not.
  • Don’t forget to enroll new machines for NM usingnmEnroll()
  • A good way to overcome the potential problem with  startup parameters configured in admin console is to use:
    [file: nodemanger.properties]startScriptEnabled=true
    stopScriptEnabled=true
    

    Then node manager will use the generated start script and you do not need to configure startup values in the admin server console.

  • If you are not using SSL for your domain the default option for node manager to use encrypted communication does not make that much sense for you. Disable it. On the admin server site switcht to “plain text” for node manager communication and in the node manager.properties located in WL_HOME/common/nodemanager set
    secureListener=false
    
  • If you decide to use SSL for the node manager communication, get correct certificates! The demo certificate will not work in a distributed system. Make sure the hostnames in the certificates are correct. If they are not correct, you may want to consider disabling host name verification on the admin server (which is the client for the node manager).
  • Remember that node manager is not part of the domain. Still you can check the node manager status and and see the logs directly from the WebLogic admin console.

Some homework for Oracle ;) Here is my personal wishlist for WebLogic Server 13f:

  1. Enable plain text communication for node manager as default. Why should it be SSL?
  2. Set start/stopScriptEnabled as default. This will cause less confusion.

Any settings you would like to share? Something to argue? Let me know.

 

WebLogic 12c Proxy Plugin for Web Servers is missing

According to the documentation for the brand new WebLogic 12c the WLS mod_wl proxy plugin for web servers should be located under the following location:

$WL_SERVER/server/plugin

and this is where the trouble starts:

  • This directory does not exists for WebLogic 12c.
  • You can download the plugins seperately from here. Yet there is no version for WebLogic 12c either.
  • You must not simply use an lower plugin version (e.g. the one that comes with WebLogic 11g) because lower versions of the plugin e.g. 10.3.5 are not guaranteed to work (only higher versions). Now, this is between you me: yes they do work typically.  Yet I remember at least one situation when I spent over a day debugging an issue because an older plugin version was used. I am pretty sure you can imagine serveral way to spend your time better.
  • The behavior for the Apache mod_wl 10.x plugins is known to be rather strange after a a managed server drops out of the dynamic server list (clustered or not).

 

Here are some possible solutions:

I briefly checked the 10.3.5 plugin for Apache 2.2 with a WebLogic 12c cluster and it seems to work okay so far. Actually even the glitch with the failing load balancing after a server drops out of a cluster has improved. Probably that’s the best solution currently, but remember it’s at your own risk.

Follow up with my OTN thread and some valuable input from René and Sandeep.

For a more critical production environment I recommend to open a support ticket with Oracle. If you do so, please post an update here and share your findings.

 

So how are you using WebLogic 12 in production? If you do, how is your clustering set up?

 

 

Cloud Computing Workshop 2011: Oracle, Rackspace and Amazon

This year I really kept the best until the end! Last week I was running a 2-day cloud computing workshop with a 2-hour hands-on management presentation the night before the workshop for Contribute in Belgium. Contribute is an Oracle Platinum partner and being surrounded by Oracle Fusion Middleware experts, DBAs, application architects and senior level management the technical level of the workshop was very high with many interesting discussions.

We covered Oracle Public Cloud (OPC), Amazon Web Services (AWS) and Rackspace (RS). OPC is not available yet, but the overall functionality including its limitations for the first release is more or less known and quite interesting compared to let’s say running WebLogic on AWS.

To prove the point I was running WebLogic 12c on AWS cloud with 30GB of heap on a high-mem 4xl instance with 8 cores. Proving the point cost me a bit more than US$2.

Typically I expected that the more tech savvy audience prefers AWS over Rackspace, yet this time people were impressed by the easy setup of Rackspace and the way they handled a minor problem with their web console file-upload feature during a live chat session.

Among hundreds of other details we looked at the I/O performance. The performance of Amazon’s EBS is known to be interesting (you may want to read this as ‘difficult’). See Adrian’s posting for a thorough explanation, some benchmarks here, and some more details there.

The out-of-the-box performance looking at Rackspace Cloud is more consistent and there is a surprisingly high throughput which is almost independent of the data size. Here is some data comparing a local laptop disk, to the disks attached to the Rackspace Cloud servers to my brand new consumer SSD (not sure if a 512 GB SSD still qualifies as ‘consumer’). All numbers refer to a READ-benchmark with increasing data size.

Laptop HD (500GB SATA): 80 MB/s

Laptop SSD (Crucial m4): 281 MB/s

Rackspace (SAN): 302 MB/s

 

I am only posting the screenshot for one of the Rackspace I/O measurements since quality isn’t perfect. There is some older data with graphs available in a previous post of mine.

 

 

 

 

 

 

 

 

 

Now I am still curious about the dip on the left part of the graph which is consistent over several instances and measurements. Any comments?

WebLogic 12c is announced!

WebLogic 12c will be out soon. Launch event is Dec 1st 2011. http://bit.ly/uge9cu .
Certainly you can expect a “WebLogic 12c unboxed” report here once it will be out.
My current estimate is that I will be able to provide custom WebLogic 12c training courses around January 2012.

Oracle Cloud Computing Buch zu gewinnen!

(Posting in GERMAN ONLY)

Während der DOAG2011 Konferenz können Sie ein Examplar des Oracle Cloud Computing Buches gewinnen:

✘✘✘ Unterstützen Sie die Oracle Cloud Computing Buch Seite und klicken Sie auf “gefällt mir”.

✘✘✘ Oder melden Sie sich bei der munz & more Info-Newsletter an. Es erscheinen ca. 4 Ausgaben pro Jahr mit Informationen über Vorträge und Workshops zu Cloud Computing, Oracle WebLogic, Service Bus und SOA Suite.

Die Gewinner werden Ende November benachrichtigt. Der Rechtsweg ist ausgeschlossen. Link zur Amazon-Seite mit Kritiken zu “Middleware and Cloud Computing”.

Review: WebLogic Server 11g Administration Handbook by S. Alapati and an Overview of other WLS 11g books

“So which WebLogic book do you recommend?

During the last couple of years I must have been delivering more than a dozen WebLogic server workshops for all kind of audience. Naturally the question that comes up at the end is: “So which WebLogic book do you recommend?”.

Only a few years ago…

To be honest, for a long time there wasn’t anything that I could recommend at all. This situation changed when Patrick and Nyberg published Professional Oracle WebLogic Server. And their book certainly doesn’t deserves the not so good reviews on Amazon. For quite a while it was the best book available about WebLogic server – certainly not because it was the only one. Written by Patrick, who was (or still is?) VP in Oracle’s Fusion Middleware Development, there is a least some additional content to be found beyond of what is covered in the offical Oracle documentation (the first technical description of cluster unicast, how to build singleton services in a cluster for developers). The book targets developers as well as admins and it’s useful for architects. But then, it was written when WebLogic 9/10 was hot.

… now

Nowadays, while all the world seems to be chit-chatting about clouds only (and I personally can’t wait for WebLogic 12c to be released) there are 2 new WebLogic 11g books out.

I have to admit that I only browsed Michel Schildmeijer’s book Oracle Weblogic Server 11gR1 PS2: Administration Essentials. Yet it seems an interesting book for those who are getting started with WebLogic server and those who are looking for a gentle step-by-step instruction to get most important aspects configured. On a first glance it does exactly what it says on the tin: administration essentials. Markus Eisele has written an insightful and detailed review about the book that I pretty much agree with.

 

WebLogic Server 11g Administration Handbook

However, there is a another book out now which caught my attention. Oracle WebLogic Server 11g Administration Handbook written by Sam Alapati and published in Sept 2011.

Content:

Myself I don’t like reviews that repeat the content of a book over and over again but for your convinience there is a TOC available at Amazon. Interesting enough, the book covers roughly the topics that you could learn about in a 5 day WebLogic admin training course. Actually it reads as if somebody knowlegeable enough took the content of the official Oracle WebLogic training course and converted it into a book. The book is up to date and mentions the unique features of WebLogic 11g such as the new dashboard that replaces the old console extension of WebLogic diagnostic framework.

Style:

From the way the book is written you can tell that Alapati has a deep understanding of the topics covered. There is no fluff, everything is technically sound. Still it is easy enough to read.

Recommendation:

Do I recommend it? Yes, absolutely.

 

Summary

 

what I liked:

+ covers all the content of a 5 day WebLogic admin training in enough detail.

+ it makes a great companion book for tje WebLogic administration certification or for somebody with a Fusion Application background.

+ precise writing style yet still easy to read. You can tell the author knows very well what he is writing about.

minor things I did not like:

- it only covers the content of a 5 day WebLogic admin training, there is not much advanced content beyond that.

- it explains how to configure stuff but it does not deal with best practices if you are running hundreds or thousands of WebLogic servers (no, just scripting is not enough then).

- reading a book written by an Oracle ACE I was expecting to learn about limitations and showstoppers as well. But maybe I am personally expecting too much here.

- there seems to be no Kindle ebook available. Make it $9.99 when you publish it.

My summary summary condensed: 5* (on an Amazon scale from 1 to 5*)

 

 

WebLogic in the Cloud

I saved the shameless plug for the end. So feel free to stop reading here. However, if you believe that cloud computing is purely a marketing hype you may want to check out the Oracle Middleware and Cloud Computing book for a critical review of what is possible today without vaporware. The book explains why the cloud is like a fully programmable data center at your finger tips and how to build up highly available, globally distributed, load balanced instances and deploy your applications. All this just for a few cents.

 

Artikel: Oracle WebLogic Server und Fusion Middleware in der Cloud

German only. Heute exklusiv auf deutsch ein Artikel den ich für das DOAG Magazin im Früjahr 2011 geschrieben habe:
Download: Oracle Fusion Middleware und WebLogic Server in der Cloud (PDF)

  • Cloud Dienste oder Fusion Middleware Features?
  • Was zeichnet eine echte Cloud aus?
  • Architektur Blueprint für die AWS Cloud und Java EE Anwendungen.

Teile des Artikels sowie zahlreiche Grafiken sind aus meinem “Middleware and Cloud Computing” entommen. Viel Spaß beim Lesen!

Usage of Oracle Exadata, Exalogic, Oracle Fusion Middleware and Enterprise Manager within Oracle

Oracle is eating its own dog food.

Here is an interesting slide set from OOW11 about how Oracle is using it’s own hardware and software.

Still a lot of Oracle appserver to see instead of WebLogic..

Oracle announcing Oracle Public Cloud – First comments.

I am at S.F. at the Oracle Open World conference right now where Larry Ellison announced the Oracle Public Cloud in an entertaining and rather fun presentation just an hour ago. To see some more photos of the event and my paparazzi shot of Sting who already showed up for some 30 seconds: check out the Facebook site of my Oracle Cloud Computing book.

Larry picked up many ideas that I published earlier this year in my cloud computing book:

He was talking a lot about migrating from one cloud to another (mostly using AWS as an example, so they seem to be on the friend list). Also he emphasized that simple multi-tenant SaaS offers such as Salesforce.com with a shared DB are not real clouds and risky (because of the shared DB :) ).

When Oracle’s position about clouds was rather fluffy (should I say cloudy?) even one year ago, I now hear them talking more about elasticity, self-service, chargeback etc.

What I didn’t like: So far this does not include pay-per use yet (one of my 4 criteria of cloud computing). Larry mentioned a monthly subscription during his keynote which was confirmed in the Thu morning keynote. Yet Oracle Enterprise Manger 12c is announced to provide metering at various levels.

I will post an update here as soon as there will be more details out tomorrow.

Apart from announcing the Oracle Public Cloud also Oracle Social Media (a part of Fusion Applications) was announced. See fotos on Facebook.

Oracle Fusion Middleware and AWS Cloud Services

Sydney Conference Center

I yesterday gave a presentation at InSync2011 about Oracle’s cloud computing strategy, AWS cloud services and it’s current limitations. Amazon reacted quickly and updated their offering. We have been waiting for that. Keep going!

DOAG 2011 Konferenz Presentation

Looking forward to meet you all at DOAG2011. I’ll be giving a presentation as usual which was just accepted by the program committee. So don’t miss the lovely city, Nürnberger sausages, the Sauerkraut and of course my talk.

WebLogic JMS with SAF and JMS bridges or SQS : Legacy Integration in the Cloud with Oracle WebLogic, WebSphere and OSB / Apache Camel

An interesting question popped up on my Oracle Middleware and Cloud Computing book site which I like to answer here for the benefits of all the others puzzling at similar integration questions. In the context of using JMS as an integration technology I’d like to summarize the usage scenarios for Oracle WebLogic JMS Store-and-Forward and JMS-bridges (both are included in WebLogic server).

Hi Frank – [ ...] We have a requirement to build 2-way asynchronous integration between an application running on WLS in AWS and a legacy J2EE app running on IBM WebSphere in our Data Centre. From your excepts my understanding is that SQS is intended for use only between AWS apps – is this correct ? I think we need to be looking at a full JMS solution for our integration – perhaps using WLS JMS Store-And-Forward – Thanks, Peter D

Hi Peter,

Based on your comment I cannot go into great detail or even provide a solid architecture that anwsers you question (one that will save you from more reading) but here are some important points to consider:

- Amazon’s SQS is not restricted to be only used from AWS instances. SQS is purely based on web services (or language bindings that encapsulate those WS calls) so you can use it from any computer. E.g. you can read or write to SQS queues from remote.

- WLS Store-and-Forward (SAF) can only couple WLS instances of the same version and does not bridge to other JMS providers. You cannot use SAF to transfer from WLS JMS to IBM MQSeries (or whatever Websphere might use). JMS is a pretty bad integration technology which requires to have the right messaging classes in your classpath. E.g. when writing messages from Websphere to a WebLogic JMS queue you are required to have the WLS JMS classes in Websphere classpath.

-  You can use the WebLogic’s JMS bridge to solve the somehow messy classpath issues. WLS JMS bridge has to be deployed as JCA adapter (still the jar file from the other provider is required but it is not used in custom code). The bridge will automatically forward from e.g. WLS JMS to MQSeries and even supports transcations. However there is no support to bridge between WLS JMS and AWS SQS.

- Unlike let’s say Oracle Service Bus, if you are looking at Apache Camel there is support to convert incoming JMS messages to outgoing SQS. Note to Oracle’s product manager of OSB: we would appreciate to have SQS as a supported transport protocol or possibly as an SOA Suite JCA adapter. Thanks for considering it :)

regards,

Frank

Oracle InSync2011 Conference in Sydney

 

  • It’s confirmed now. I will give a presentation at AUSOUG’s InSync2011 conference 16th / 17th August 2011. My talk is about cloud services. Really looking forward to be in Sydney again.
  • Right after the conference I will be offering an Amazon Cloud workshop/training centred around Oracle Fusion Middleware. Learn how to do real cloud computing with WebLogic right now (including elasticity, load balancing and database as a service). Bring your laptop – no need to bring your Exalogic machine for this…

 

 

Ebook Released: Middleware and Cloud Computing

 

 

 

 

 

 

 

 

 

 

After a couple of fun days playing with (mostly disastrous) tools, converters and the Kindle itself I published the first Kindle edition of “Middleware and Cloud Computing”. It contains more than 100 coloured graphics (well, of course they are not coloured on your b/w Kindle, but on the Kindle reader for your Mac, PC, Android, iPad etc) and more than 100 clickable links to additional resources, publications and tools.

Please spread the word, twitter it to the networked part of the known universe and don’t forget to LIKE its Amazon and Facebook site. Do you you really, really want to support it? Sincerely? The best you could do is writing a review once you have read it.

 

thanks and best wishes,

Frank

Oracle WebLogic JMS Queues or AWS Cloud Simple Queue Service (SQS)

This is a shortened extract of my my book Middleware and Cloud Computing.


AWS Simple Queue Service

Amazon’s Simple Queue Service (SQS) is a cloud service for reliable messaging. The SQS service with its queues is located off-host. So, similar to the elastic load balancing service, or the relational database service, you can use the service without having to start an EC2 instance.

Features

SQS is available in all four AWS regions with the same pricing. All regions are independent of each other so messages can never be in-between regions. Queue names have to be unique per region.

Highly available

Queues are highly available: Messages waiting in queues for their delivery are stored redundantly on multiple servers and in multiple data centers.

Unlimited
queue size

There is no limit for the number of messages or the size of a particular queue. One message body can be up to 64 KB of text in any format (default is 8KB). For larger messages you have to store the message somewhere else reliably, e.g. in S3, SimpleDB or RDS, and pass around a reference to the storage location instead of passing the message itself.

Message expiry

When a message remains in a queue (because there is no receiver removing the message from the queue), the message expires after a default of four days (or a configurable maximum of 14 days).

After receiving a message from a queue, the message is locked for a configurable timeout. While the message is locked it is invisible to other receivers. SQS uses this mechanism to ensure that messages are delivered once.

It’s the receiver’s responsibility to explicitly delete the message when it is processed successfully. If the receiver fails before it is able to delete the message, then the message becomes visible again after the timeout, and another receiver can receive it.

Access to queues is restricted to the AWS account owners, but you can specify in an access policy statement that a queue will be shared.

No
compression
or encryption

Encryption is not a built-in SQS feature, but depending on your privacy requirements you can consider encrypting the content of your message at an application level. Also, there is no built-in compression feature, but you can compress large messages at an application level before sending them.

At least once
semantics

The message delivery semantic is engineered to be “at least once”. This means your applications have to cope with message duplicates.

 

Usage

Access to SQS is purely programmatic. Currently, there are no command-line tools from AWS, and there is no integration for SQS into the AWS management console yet.

There are language bindings for Java, PHP, Perl and C#. Also, the Java Typica library supports SQS.

SQS is ideal for decoupling systems or applications running on EC2. From a design perspective, SQS has many features in common with JMS queues. The most important differences between SQS and JMS queues are listed in Table 1.

Table 1: SQS Comparison with WLS Queues

SQS Queues WebLogic JMS Queues
Max queue size Unlimited Limit depends on JVM heap and persistent store
Best Quality of Service At least once Exactly-once
with transactions
Configurable retries No Yes
Persistence Always Optional
Scalability Inherent With distributed queues
Availability Inherent Whole-server migration 

or JMS service migration

Message Order Not guaranteed Can be enforced even for distributed queues
Configurable quotas No Yes
Configurable flow control No Yes
Auto acknowledge No Yes
Time To Live configuration 1h to 14d 1 ms to ca. 2 mio years
Max message size 64 KB Unlimited,
default is 10,000 KB
Compression No Yes
Billing Free usage tier, then charged per request and data transfer amount Included with WLS

Conclusion

To conclude, SQS is an AWS cloud service that could replace WebLogic JMS queues.

Compared to JMS queues, SQS has fewer features, no auto acknowledgement of messages and no support for exactly-once message delivery. The advantage of SQS over JMS queues is SQS’ inherent availability, the virtually unlimited storage for messages and the zero configuration.

The inherent availability is an especially important factor to consider when deciding between SQS or JMS queues, because the built-in features offered by WebLogic for achieving availability of JMS are restricted in today’s clouds.

SQS is implemented off-instance; therefore, its availability is not affected if a particular EC2 instance becomes unavailable.

SNS

Interestingly, there is a cloud service for the counterpart to JMS topics as well. The AWS Simple Notification Service allows you to send messages to more than one receiver using transport protocols such as HTTP, email and even SQS.

SQS vs. OSB

In case you are wondering how this relates to Oracle Service Bus: Comparing SQS with Oracle Service Bus is like comparing apples with oranges, because in addition to the built-in JMS, service bus also supports protocol adaption, message flows with content-based routing, and most importantly, it is configuration driven.

In a nutshell: SQS is a queue service for the AWS cloud to decouple systems with message passing. As a cloud service it abstracts the Java EE specific details of JMS – nevertheless SQS is specific to AWS. Currently there is no cloud messaging service offered for the Rackspace cloud. Using an AWS specific service like SQS increases the effort to migrate to another cloud provider (and limits your possibilities to quickly switch to another cloud provider as a part of a contingency plan).

Pricing

There is a free usage tier for up to 100,000 requests per month. Beyond that, Amazon adds $0.01 per 10,000 SQS requests to your bill.

In addition, you have to pay for the data transfer as shown the figure below. Only data transferred between SQS and EC2 within a single region is free. Data transferred between different regions will be charged at Internet data transfer rates on both ends.

 

 

More details on my Middleware and Cloud Computing book.