WebLogic Server 10.3.4 Released - Key APIs of Java EE 6 and More
By mlehmann on Jan 20, 2011
WebLogic Server 10.3.4 was put up on Oracle Technology Network for download earlier this week. It's a very exciting release for the WebLogic Server team with a set of incremental capabilities aimed at different audiences in the WebLogic Server community.
One of the areas that is most exciting to me is the work that has been done for developers to make their experience on WebLogic Server better and better. Our work here in the 11g era started surfacing in WebLogic Server 11g (10.3.3) where we introduced the zip distribution (10.3.3 zip)of WebLogic Server and this was updated again in 10.3.4 (10.3.4 zip). You will notice these are quite a bit smaller than the installer versions - 316M for 10.3.4. More details are in this previous blog post.
New for developers in 10.3.4 is support for Maven integration. A common request which many developers were rolling their own solutions to, now this is augmented by formal support for Maven in the product proper. Check out the Maven doc here. Specific capabilities supported include weblogic:deploy, weblogic:undeploy, weblogic:redeploy, weblogic:start-app, weblogic:stop-app, weblogic:list-apps, weblogic:update-app - names being relatively self explanatory.
Something else new for developers is incremental support for a number of Java EE 6 APIs. The WebLogic Server 11g (10.3.4) container is formally Java EE 5 compatible but we have provided the ability to layer on JPA 2.0 support as well as JAX-RS support - both of which are mandatory in Java EE 6. Previously we did the same for JSF 2.0 support. Given the huge interest we have seen in Java EE 6, having the WebLogic community having the ability to work with these APIs on a production container with production support we think is a good thing - particularly this trio which represent the areas we see the most interest in from our community of developers.
Last on the developer front WebLogic Server 11g (10.3.4) unveils a fantastic new tool for analyzing Java classloading innovatively called CAT - Classloader Analysis Tool - we have great naming conventions here! This tool is great for looking at applications that have tons of libraries and understanding where you have classloading conflicts, classpath issues and very usefully for developers, helping you generate filtering classloader configuration to overcome these issues. Very cool. There's more for developers but these are my highlights.
In addition to developers, the release also focused on some traditional territory for WebLogic Server customers in the areas of database integration and performance. Probably the two most noticeable changes are the introduction of a new data source type called "GridLink" or more fully "Active GridLink for RAC" and a series of optimizations for Exalogic Elastic Cloud we announced at OpenWorld.
Active GridLink for RAC, as the name suggests is a new feature area for hooking WebLogic Server up to Oracle Database RAC. This capability has been primarily aimed at our Exalogic customers in its first release so bear that in mind when looking at it. This feature dramatically changes the equation around working with RAC if you are an application server user. Before this feature, WebLogic already was the only Java EE 5 application server on the market with declarative integration with RAC using a feature called Multi Data Sources and these continue to be supported. However, Active GridLink for RAC takes this integration to a new level. There are 5 key features of GridLink I will mention - a lot more will be coming here in future releases as it sets the technical ground work for more advances:
- Single data source for an entire RAC cluster - if your RAC clusters are large and you have many different WebLogic domains, GridLink data sources can dramatically reduce configuration.
- RAC workload awareness - runtime connection load balancing. GridLink data sources are notified proacatively of the workload on RAC nodes and can balance connections to least loaded nodes resulting in much more even utilization in your RAC environment from your middle tier
- Transaction affinity where global transactions have an affinity context assigned to a specific RAC instance enabling significantly better performance
- Fast Connection Failover - event based notification of the WebLogic connection pool of changes in the RAC cluster and graceful recovery in these events - e.g. RAC nodes being added for capacity or nodes being removed for maintenance.
- Support for Oracle Single Client Access Name (SCAN) - frequently asked for by our 11g Database customers
For Exalogic Elastic Cloud not only does the Active GridLink for RAC capability apply but there are a number of very technically interesting performance optimizations that have been done for it. These tend to be focused around taking advantage of the high speed InfiniBand fabric onboard the Exalogic Elastic Cloud hardware like Socket Direct Protocol (SDP) support but do cover other areas like state replication, tailored self tuning thread pool options for the processors on the Exalogic system. The key ones are summarized here in the "What's New" section of WebLogic Server 10.3.4 and step by step instructions are available for each feature in the Exalogic Elastic Cloud Enterprise Deployment Guide. For a layman's view into these optimizations this white paper on Oracle.com has an extensive technical section in the middle with pictures and written descriptions of each of these optimizations.
I would be remiss if I didn't mention another area of new capability in WebLogic Server 10.3.4 - Coherence. We introduced Coherence as part of the standard distribution of WebLogic Server in 10.3.3 along with a fairly extensive feature set supporting distributed caching and state management out of the box as well as integration directly into the WebLogic Server management console. This integration is called ActiveCache. This has really changed how a lot of people perceive the concept of a data grid, as the Coherence team like to call it, when it is literally baked into the server itself.
For the folks building messaging applications a pretty exciting development is the arrival of a feature we are calling partition distributed topics. This is an extension of an area called distributed destinations in WebLogic Server where a group of queues or topics are treated as a single logical messaging destination. A distributed destination looks like a single queue/topic to the client but really is a cluster of queues or topics. The applicability is fairly self evident from an HA and transparent scaling perspective but also, very interestingly, can be used to dramatically improve throughput via parallelization. This is emphasized with partition distributed topics where MDBs can now subscribe to partition distributed topics and get parallelized throughput that scales in the same way WebLogic Server proper scales. Nice!
Finally, a personal favorite of mine was the arrival of JRockit Flight Recorder in WebLogic Server 10.3.3. This is a capability of the JRockit JVM that enables you to capture on a circular buffer on disk events that are occurring not only in your Java VM but also in WebLogic Server at a Java EE level and even at a Fusion Middleware level, if you happen to be running any Fusion Middleware on top of WebLogic. It is named "Flight Recorder" because it is like a plane flight recorder and lets you look at activity after, for example, system events or failures, because the small window of events that can be written out to disk and viewed in JRockit Mission Control. In WebLogic Server 10.3.4, the JRockit team unveiled a further experimental plug in in this area that gives an incredibly rich set of graphical views into this event data. James once again has posted a nice crisp YouTube of this feature in action.
All in all WebLogic Server 11g (10.3.4) is a pretty exciting release - for developers, for operations folks, for database teams. Hopefully this short overview of some the key capabilities will give you a sense of what's there. Download it and try it out!