Thursday Feb 05, 2015

OpenWorld 2014: Next up, Coherence Strategy & Roadmap

Oracle Coherence 12c leads the market with its in-memory data grid. Entries can be reliably processed in place, queried, and aggregated. Coherence scales applications to support growth, offloads and protects shared services in addition to delivering information in real time. Coherence is part of the Cloud Application Foundation along with WebLogic Server and Tuxedo.

Coherence has introduced a range of new features to help customers deliver next generation applications that scale to handle mobile, social, and "internet of things" demands. HotCache makes database updates available in real-time to applications. It detects and reflects database changes in cache in real time while leveraging existing technologies i.e. GoldenGate and TopLink Grid in order to broaden the applicability and usability of Coherence. Meanwhile, Managed Coherence Servers quickens time-to-market and simplifies operations. These servers combine WebLogic and Coherence infrastructure while introducing the Grid Archive (GAR).

This session reviews these features and takes a look at our most recent features and coming roadmap. Coherence provides new options for integration, including support for JCache (JSR-107), and new monitoring capabilities. We will also look at exciting innovative features like Recoverable Caching, Federated Caching, Multitenancy, and support for the Oracle Cloud. For other CAF sessions at OpenWorld you may want to review, visit

Sunday Jul 27, 2014

Data Source Connection Labeling

The connection labeling feature was added in WLS release 10.3.6. This feature has the potential to reduce the overhead when there is work to initialize a connection for application use. Labeling connections allows an application to attach arbitrary name/value pairs to a connection. The application can request a connection with the desired label from the connection pool. By associating labels with connection states, an application can retrieve an already initialized connection from the pool and avoid the time and cost of re-initialization. This feature is described in good detail including an example at .

Connection Labeling is enhanced in release WLS 12.1.3.  For some applications, it's possible that making a connection conform if it doesn't match can be so expensive that a new connection should be created instead of using an existing connection but only up to some threshold.  The enhancement introduces the notion of a "high-cost connection".  There are two new connection properties that can be configured on the data source descriptor.

New Connection Property Default Value Usage
ConnectionLabelingHighCost Integer.MAX_VALUE If connection label cost >= this value, considered high-cost connection.
HighCostConnectionReuseThreshold 0 When > 0, number of connections in pool when high-cost connections are re-used

This following list spells out the rules in more detail when getting a connection using labeling properties. All available connections are evaluated to get their cost using the registered labeling callback.

  • If the cost for a connection is greater than or equal to ConnectionLabelingHighCost, it is a High-Cost Connection.
  • When the lowest-cost available connection is a High-Cost Connection, test current pool size against Reuse High-Cost Connection Threshold and against minimum pool size.
  • If the current connection count is less than the minimum or threshold values, return a new connection instead of the high-cost connection.
  • Otherwise (current connection count is greater than or equal to the threshold), return the lowest-cost High-Cost Connection.
  • Labeled connections with cost value Integer.MAX_VALUE will never be reused (same as prior release).
  • The maximum pool size constraint still holds (i.e. if threshold > maximum pool size, maximum pool size governs).
  • The minimum pool size constraint holds (i.e. if threshold < minimum pool size, minimum pool size governs).
  • Leaving the threshold unset results in same behavior as threshold = minimum (i.e., if current >= minimum, return the lowest-cost connection, which in this case is a High-Cost Connection).
  • When there are no available connections, use the standard behavior.  That is, return a new connection subject to maximum pool size.  If the current size is greater than or equal to the maximum pool size, wait for a connection to be available, subject to the timeout, etc.

Here is a simplified sample configuration file.

    <test-table-name>SQL ISVALID</test-table-name>

The connection labeling properties can be configured in the properties text box in the administration console or can be created using WLST. In this example, a high cost connection has a cost greater than or equal to 5.  The threshold is 20 connections, which is greater than the initial capacity of 0 and less than the maximum capacity of 25 so there is no interference.  Note that in the configuration above, the connection labeling callback is registered in the configuration file; alternatively it can be registered in the application code.

The following table describes the behavior when ConnectionLabelingHighCost=5 and HighCostConnectionReuseThreshold=20 for various values of connection labeling cost. 

Total Connections in Pool Minimum cost connection available Action
0-19 None available Create new connection
0-19 0-4 Use existing connection
0-19 >=5 Create new connection; don't use high-cost connection
>=20 None available Create new connection
>=20 0-4 Use existing connection
>=20 5 Use existing high-cost connection

There is a sample program for handling PDB switching in a Multi-Tenant Database environment using connection labeling at . The sample uses the label to keep track of the PDB associated with each connection.  The sample can't take advantage of this new feature because it always returns Integer.MAX_VALUE for a mismatch so the connections will never be reused. Instead, we could return some value that is equal to the configured ConnectionLabelingHighCost. Just by changing Integer.MAX_VALUE to 5 in the callback, we will create new connections up to 19 connections and then start reusing connections.

The connection labeling feature  processing isn't free.  The connection cost is computed for all available connections every time a connection is reserved.  But in the case that connection initialization is expensive, it can perform much better.

Friday Nov 01, 2013

Drink Milk or Got a Pet? Watch what IDEXX Laboratories and Oracle do for you

IDEXX Laboratories is the global market leader in diagnostics and IT for animal health [with 50,000 veterinary practices worldwide], and water and milk quality. Watch this video where Brett Curtis, Senior System Administrator from IDEXX, discusses their business applications and laboratory information management systems. IDEXX uses Oracle WebLogic Server, SOA Suite, Coherence, Enterprise Manager and more. Enterprise Manager is used to manage their entire stack and has enabled IDEXX to achieve an astounding 90% reduction in time to find root cause of problems in their application infrastructure.

Thursday Oct 17, 2013

So what is Active GridLink for RAC?

I had referred to Active GridLink for RAC in my blog yesterday and since then got several questions on this topic. So I decided to re-visit Active GridLink. With the release of version 11g, Oracle WebLogic Server started to provide strong support for the Real Application Clusters (RAC) features in Oracle Database 11g, minimizing database access time while allowing transparent access to rich pooling management functions that maximizes both connection performance and availability. WebLogic is the only application server in the marketplace which has been fully integrated and certified with Oracle Database RAC 11g without losing any rich functionality. Active GridLink provides Fast Connection Failover (FCF), Runtime Connection Load-Balancing (RCLB), and RAC instance graceful shutdown. With the key foundation for providing deeper integration with Oracle RAC, this single data source implementation in Oracle WebLogic Server supports the full and unrestricted use of database services as the connection target for a data source.

For more details and to understand how our customer NEC leverages this capability, read the whitepapers on this topic.

Get in depth ‘how-to’ details from this youtube video from our resident expert, Frances Zhao.

Wednesday Oct 16, 2013

Oracle WebLogic Server and Oracle Database: A Robust Infrastructure for your Applications

It has been said that a chain is as strong as its weakest link. Well, this is also true for your application infrastructure. Not only are the various components that constitute your infrastructure, like database and application server critical, the integration between these things [whether coming out of the box from your vendor or done in-house] is paramount. Imagine your database being down and your application server not knowing about it and as a result your application waiting indefinitely for a database response – not a great situation if high availability is critical to your application. Or one of your database nodes is very busy, but your application server doesn’t have the intelligence to decipher that – it keeps pinging the busy node when it can in fact get a response from another idle node much faster. This is what Oracle WebLogic and Database integration provides: Intelligent integration out of the box. Tight integration between Oracle WebLogic and Database makes your infrastructure robust enough that not only does each of your infrastructure component provide you with improved RASP [reliability availability, scalability, and performance] but these components work together to offer improved performance & availability, better resource sharing, inherent scalability, ease of configuration and automated management for your entire infrastructure. Oracle WebLogic Server is the only application server with this degree of integration to Oracle Database.

With Oracle WebLogic Server 11g, we introduced Active GridLink for Real Application Clusters (RAC). In conjunction with Oracle Database, this powerful software technology simplifies management, increases availability, and ensures fast connection failover with runtime connection, load balancing and affinity capabilities. With the release of Oracle Database 12c this summer, even tighter integration between Oracle WebLogic Server 12c (12.1.2) and Oracle Database 12c has been achieved and this further optimizes the integration for a global cloud environment.

Read about these capabilities in detail in the Oracle WebLogic-Database Integration Whitepaper. Get in depth ‘how-to’ details from this YouTube video on the topic from our resident expert, Monica Roccelli.

Thursday Oct 03, 2013

Avocent's VP of Engineering: Leveraging WebLogic & More for DCIM Offering

Just prior to OpenWorld I wrote about our customer Emerson's Avocent division, the cutting edge work they are doing with their DCIM offering, and Steve Blackwell's sessions at OOW [Read the blog here]. We got lucky and were able to catch Steve live at OpenWorld for an OTN interview in which he offers further details on their Trellis platform, how it leverages Oracle WebLogic Suite, Oracle Coherence, Oracle Complex Event Processing, Oracle Service Bus and other Oracle technologies to offer a state-of-the-art platform for their customers.

The official blog for Oracle WebLogic Server fans and followers!

Stay Connected


« October 2015