Welcome!

Weblogic Authors: Yeshim Deniz, Elizabeth White, Michael Meiner, Michael Bushong, Avi Rosenthal

Related Topics: Weblogic

Weblogic: Article

Transactions: Driving You to Distraction?

Choose The Type 2 Driver To Help

One definition of a commodity is something that you take for granted.

I'll bet there aren't many readers out there who wake in the morning and exclaim, "Thank goodness there's air in the room to breathe!" Likewise, computer users will seldom give thanks for their operating systems, a proclamation like "praise be to those at AT&T and BSD for giving me Unix!" would likely raise more eyebrows than nods around an average water cooler. Things that are taken so much for granted are ripe for methods such as open source as provisioning mechanisms - at the end of the day, if its interfaces are well known and an implementation works "well enough" and is supported, then who cares if it was written in a garage or a high-tech lab? That's one of the reasons why I think the application server has some way to go before it commoditizes to the point where open source provides a realistic alternative as an underpinning to a business critical deployment - the application server market is small, and the capabilities offered by the market leading app. Servers are too rich (and the standards are evolving too quickly) for that to happen just yet a while.

But I digress (although I'm not sure if it's possible to digress before you have actually started...). This month's article is about a piece of technology that exists somewhere in the twilight zone between commodity and valuable asset - the humble JDBC driver.

One of the main drivers for the widespread adoption of the J2EE platform was the existence of standards that provide a good degree of plug-and-playability in terms of the resources accessing and accessed by the platform. One such principal resource is the SQL database (whose adoption in its own life cycle was fueled by the standard relational model for data access providing some swapability at a different layer of the architecture). The Java standard that makes SQL databases pluggable at this level is, of course, JDBC. At a brief glance, you may be wondering what I am going to write about next, apparently being on the verge of saying that the JDBC driver is yet another commodity, but actually, the truth is, especially in the context of XA transactions, all JDBC drivers were not created equal. My intent this month is to dig a bit deeper into this, and help answer two questions: What's the overhead of XA and what JDBC driver should I use to access my Oracle database in an XA transaction?

What's the Overhead of XA?
Quite a few years ago, when X/Open first created the XA standard, there were no commercial databases that supported it. Then came Oracle 7 (and the other RDBMS products of around the same vintage) and XA moved from nice theory to realistic deployment option and the distributed transaction was finally liberated from the mainframe to roam free across the world of open systems. In those days, it was not unreasonable advice to suggest that architects build all their services to access the database via XA. The performance overhead of XA was small (I dimly remember figures of 5% bandied about) and the 1pc optimization built into Tuxedo (and later brought forward into BEA WebLogic Server's transaction manager) meant that the 5% was all you paid, if you didn't need a distributed transaction for any particular use-case.

These days, the world has moved on, and this advice is in need of amendment - it turns out that with recent versions of Oracle, and Java in the picture, the overhead of accessing the database via XA is considerably more than 5% - some benchmarks put the degradation in throughput caused by using XA as high as 15x in the worst case (and note, this is not the overhead of two-phase commit, simply overhead introduced by the DBMS engine as a result of using xa_begin and xa_commit to delineate transactions).

Clearly, the prudent advice to anyone architecting a J2EE system is, at the very least, to benchmark your application using the XA configuration you need for production to ensure that your exact setup will give the throughput you require from your application, and be prepared to segment your database accesses into those that can use database local transactions and those that require XA for synchronisation with resources external to the database (for example, once and once only guaranteed message delivery from transactional message queues).

What JDBC Driver Should I Use to Access Oracle?
The JDBC standard provides for four different "types" of JDBC drivers. The important ones for this discussion are type 2 (in which the database is accessed via JNI calls from the java layer to Oracle's native OCI libraries) and type 4 (in which a pure Java driver implementation talks across a socket to a remote server, which accesses the database as a proxy for the client)

Looking at this from a "commodity component" perspective, the choice between the type 2 and type 4 drivers might be expected to be academic (with perhaps a slight preference for type 4, given that this doesn't require installation of the database native components on your application server box). This is by and large the case for non-XA database access; however, for XA access the story is somewhat different. In this case, the throughput of the type 2 drivers is somewhat better than that of their type 4 equivalents, but more pronounced is the effect on the database CPU - XA access via the type 4 driver causes dramatically increased CPU utilization on the database server relative to the type 2 equivalent.

So, What's the Conclusion?
As with all performance-type considerations, the main conclusion has to be that you should performance test an exact replica of your intended production configuration in order to determine that its performance will meet your needs. Any benchmark or other comparison of that kind is inherently heavily influenced by the usage patterns of the application, and also any benchmark is a snapshot in time of the state of the system - patches or new releases of the driver code (or the database engine itself) could completely change (hopefully for the better!) the results of any comparison.

However, with the technology where it is today, it seems safe to conclude that you should try to stick to the type 2 driver for XA database access, unless you have a pretty compelling reason to do otherwise.

More Stories By Peter Holditch

Peter Holditch is a senior presales engineer in the UK for Azul Systems. Prior to joining Azul he spent nine years at BEA systems, going from being one of their first Professional Services consultants in Europe and finishing up as a principal presales engineer. He has an R&D background (originally having worked on BEA's Tuxedo product) and his technical interests are in high-throughput transaction systems. "Of the pitch" Peter likes to brew beer, build furniture, and undertake other ludicrously ambitious projects - but (generally) not all at the same time!

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


IoT & Smart Cities Stories
All in Mobile is a place where we continually maximize their impact by fostering understanding, empathy, insights, creativity and joy. They believe that a truly useful and desirable mobile app doesn't need the brightest idea or the most advanced technology. A great product begins with understanding people. It's easy to think that customers will love your app, but can you justify it? They make sure your final app is something that users truly want and need. The only way to do this is by ...
Digital Transformation and Disruption, Amazon Style - What You Can Learn. Chris Kocher is a co-founder of Grey Heron, a management and strategic marketing consulting firm. He has 25+ years in both strategic and hands-on operating experience helping executives and investors build revenues and shareholder value. He has consulted with over 130 companies on innovating with new business models, product strategies and monetization. Chris has held management positions at HP and Symantec in addition to ...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
DXWorldEXPO LLC announced today that Big Data Federation to Exhibit at the 22nd International CloudEXPO, colocated with DevOpsSUMMIT and DXWorldEXPO, November 12-13, 2018 in New York City. Big Data Federation, Inc. develops and applies artificial intelligence to predict financial and economic events that matter. The company uncovers patterns and precise drivers of performance and outcomes with the aid of machine-learning algorithms, big data, and fundamental analysis. Their products are deployed...
The challenges of aggregating data from consumer-oriented devices, such as wearable technologies and smart thermostats, are fairly well-understood. However, there are a new set of challenges for IoT devices that generate megabytes or gigabytes of data per second. Certainly, the infrastructure will have to change, as those volumes of data will likely overwhelm the available bandwidth for aggregating the data into a central repository. Ochandarena discusses a whole new way to think about your next...
CloudEXPO | DevOpsSUMMIT | DXWorldEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
Cell networks have the advantage of long-range communications, reaching an estimated 90% of the world. But cell networks such as 2G, 3G and LTE consume lots of power and were designed for connecting people. They are not optimized for low- or battery-powered devices or for IoT applications with infrequently transmitted data. Cell IoT modules that support narrow-band IoT and 4G cell networks will enable cell connectivity, device management, and app enablement for low-power wide-area network IoT. B...
The hierarchical architecture that distributes "compute" within the network specially at the edge can enable new services by harnessing emerging technologies. But Edge-Compute comes at increased cost that needs to be managed and potentially augmented by creative architecture solutions as there will always a catching-up with the capacity demands. Processing power in smartphones has enhanced YoY and there is increasingly spare compute capacity that can be potentially pooled. Uber has successfully ...
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...