Welcome!

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

Related Topics: Weblogic

Weblogic: Article

Transactions: Are You in Control?

Rocket science pays off at the end

The launch of BEA's WebLogic Platform 8.1 was greeted with enthusiasm by industry analysts and IT practitioners alike, who recognized its potential to open up the power of the J2EE platform to a much broader spectrum of developers. This allowed J2EE architects to do what their skills are best suited for - architectural design and technical problem solving - while allowing the architectures designed by the experts to be used by the "ordinary" developers, who hitherto had been restricted to building departmental-scale applications because of the lack of an architecture for scalability underpinning the applications they produced with the "more accessible" tools they were accustomed to using.

Two key features of the WebLogic Platform enable this separation of duties between the high-level business developers and the highly technical J2EE architects - the BEA WebLogic Workshop runtime, which imposes some high-level architectural order on the high-level business developers; and the Workshop development environment, which allows the developers to interact with the environment via a consistent graphical abstraction, turning to lines of code only when they need to express some business rule, not when they try to assemble an application. The IDE also has a feature to help the architects - they can produce a skeletal application environment, populated with standard components, etc., and release that to the other developers as a template, getting the business programmers off to a flying start (and importantly, a flying start consistent with development standards and other development projects) in a pre packaged and automated way.

The key part of the runtime framework is the Controls architecture - controls provide a consistent way to encapsulate business logic. Business developers can code their business rules and provide them as components using controls, or to encapsulate complex logic and infrastructure needed to access some resource. J2EE architects can implement this "hard-core plumbing" and wrap it in a control that can then be used just as easily by the app developers as a piece of their own logic. This solves another problem that large development shops usually have - the J2EE coders produce lots of really excellent infrastructure, but it can only be consumed by other J2EE experts, because business developers don't understand how to use it.

Overall, from the J2EE developer perspective they get to avoid doing lots of dull, error-prone cut-and-pasting - let's face it, just another struts form front end, or just another code excerpt to look up a JMS queue in JNDI and send a message on it is nobody's favorite pastime. From the non-J2EE developer perspective, the assembly of a useful application from preexisting components (i.e., building another set of Web screens that combine existing subsystems in new ways) becomes possible without having to burn the midnight oil learning the J2EE incantations.

Transactions: Have You Lost the Plot?
So what on earth does that have to do with transactions? Well, nothing, it's just background. Without covering that, how can I write the article I wanted to? And what is that? Well...

Transactions, Workshop, and Controls
Controls are simply annotated Java objects - and it is these annotations that provide the magic that allows control users to work at a level of abstraction above the usual J2EE interface. When a control (which may actually be a composite of multiple controls) is deployed, the annotations drive the generation of the right runtime linkage (which is what is actually deployed). Like any other Java object, controls inherit their transactional context from the caller. Since controls have no concept of a remote interface (at least not in the current release), the caller is always a lightweight control container generated by WebLogic Workshop, which is itself contained by an EJB. If you look at the deployment descriptor associated with this (Workshop-managed) EJB, you will see that it has a transaction policy of "container" - so the transactional context of the controls will be provided by the EJB container, using JTA, just as if the control were a plain old Java object that you wrote and invoked from EJB code.

The nearest thing to a remote interface in Workshop is a Web service - it is very easy to take a control and expose it as a Web service (potentially, and a conversational Web service) with no more than a few mouse clicks, so the remaining question becomes...

What Is the Default Transactional Behavior of a Workshop Web Service?
Each time a call comes in to a Web service method, the linkage from message arrival to invocation has been done through a number of bits of J2EE machinery (depending on exactly what you have declared in the annotations), culminating in an EJB with conatiner-managed transactions. For the duration of the execution of the method, a JTA transaction will be in operation. If the method succeeds, the transaction commits. If the method fails (throws an Exception) the transaction will be rolled back. Easy so far.

Recall, though, that a WebLogic Workshop Web service can be conversational (again, if the annotations say it is). The conversation state is persisted in a database table. How does this persistent state relate to any application-managed persistent state? Well, it is included in the same transaction context. So if your method fails, it is as if that leg of the conversation never happened - the kind of nice, atomic behavior transactions are loved for. This has some implications on the deployment - by default, the conversation state is persisted via a data source called cgDataSource. If your application state is persisted elsewhere, you will get an error saying you can't infect your data source with the transaction because it already infects the cgPool underlying the cgDataSource. You can fix this in two ways: either change cgPool to use xa database access and get a two-phase commit, or have both the conversation state and your application state held in the same database instance via the same connection pool (Workshop's jws-config.properties file controls this from the Workshop perspective) and avoid the need for a two-phase commit.

If a Workshop Web service calls another Web service, the transaction context will not be propagated so the called service will run in its own new transaction according to the rules I just outlined. If you would like the failure of a service call to roll back the caller's transaction, rethrow the exception to the framework. If you want the caller's state (both application and conversational) to be persisted in spite of a Web service call failure, catch the exception and don't re-throw it.

Of course, the usual rules about transactions apply. If you want something (say an audit record) persisted irrespective of the transaction's eventual outcome, then you need to get the TransactionManager object and suspend the transaction before making the call and resume it afterwards. This is getting hairy for a non-J2EE guru type, which makes it exactly the kind of thing the J2EE architects should implement and provide to the application developers as a pre-built Control.

The Key Is, It Doesn't Matter!
So the last few hundred words were all a bit rocket-science like (or at least, a bit close to rocket-science like) for many application developers. Well, that's the point. If the J2EE architects understand this stuff, and bear it in mind when they put together templates and development guidelines for the app developers, then the app developers shouldn't need to worry about it - the framework will do the right thing on their behalf, and they will produce more applications more quickly whose behavior will be more consistent than they could have hoped for without the framework and the templates steering them in the right direction. All of which might even mean an IT department that can smile and say yes the next time the business changes the requirements again at the last minute, rather than muttering something about dilithium crystals and updating its résumé!

References

  • John Methot's white paper on BEA WebLogic Workshop internals: http://dev2dev.bea.com/products/wlworkshop81/articles/wlw_internals.jsp. This covers the runtime implementation of the Workshop framework, and how it can be configured to behave differently in more detail than there is space for here.
  • 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.


    @ThingsExpo Stories
    In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and simple way to introduce Machine Leaning to anyone and everyone. He solved a machine learning problem and demonstrated an easy way to be able to do machine learning without even coding. Raju Shreewastava is the founder of Big Data Trunk (www.BigDataTrunk.com), a Big Data Training and consulting firm with offices in the United States. He previously led the data warehouse/business intelligence and B...
    With tough new regulations coming to Europe on data privacy in May 2018, Calligo will explain why in reality the effect is global and transforms how you consider critical data. EU GDPR fundamentally rewrites the rules for cloud, Big Data and IoT. In his session at 21st Cloud Expo, Adam Ryan, Vice President and General Manager EMEA at Calligo, examined the regulations and provided insight on how it affects technology, challenges the established rules and will usher in new levels of diligence arou...
    Nordstrom is transforming the way that they do business and the cloud is the key to enabling speed and hyper personalized customer experiences. In his session at 21st Cloud Expo, Ken Schow, VP of Engineering at Nordstrom, discussed some of the key learnings and common pitfalls of large enterprises moving to the cloud. This includes strategies around choosing a cloud provider(s), architecture, and lessons learned. In addition, he covered some of the best practices for structured team migration an...
    The 22nd International Cloud Expo | 1st DXWorld Expo has announced that its Call for Papers is open. Cloud Expo | DXWorld Expo, to be held June 5-7, 2018, at the Javits Center in New York, NY, brings together Cloud Computing, Digital Transformation, Big Data, Internet of Things, DevOps, Machine Learning and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding busin...
    No hype cycles or predictions of a gazillion things here. IoT is here. You get it. You know your business and have great ideas for a business transformation strategy. What comes next? Time to make it happen. In his session at @ThingsExpo, Jay Mason, an Associate Partner of Analytics, IoT & Cybersecurity at M&S Consulting, presented a step-by-step plan to develop your technology implementation strategy. He also discussed the evaluation of communication standards and IoT messaging protocols, data...
    In his Opening Keynote at 21st Cloud Expo, John Considine, General Manager of IBM Cloud Infrastructure, led attendees through the exciting evolution of the cloud. He looked at this major disruption from the perspective of technology, business models, and what this means for enterprises of all sizes. John Considine is General Manager of Cloud Infrastructure Services at IBM. In that role he is responsible for leading IBM’s public cloud infrastructure including strategy, development, and offering m...
    Smart cities have the potential to change our lives at so many levels for citizens: less pollution, reduced parking obstacles, better health, education and more energy savings. Real-time data streaming and the Internet of Things (IoT) possess the power to turn this vision into a reality. However, most organizations today are building their data infrastructure to focus solely on addressing immediate business needs vs. a platform capable of quickly adapting emerging technologies to address future ...
    Recently, REAN Cloud built a digital concierge for a North Carolina hospital that had observed that most patient call button questions were repetitive. In addition, the paper-based process used to measure patient health metrics was laborious, not in real-time and sometimes error-prone. In their session at 21st Cloud Expo, Sean Finnerty, Executive Director, Practice Lead, Health Care & Life Science at REAN Cloud, and Dr. S.P.T. Krishnan, Principal Architect at REAN Cloud, discussed how they built...
    22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...
    22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...
    DevOps at Cloud Expo – being held June 5-7, 2018, at the Javits Center in New York, NY – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real results. Among the proven benefits,...
    @DevOpsSummit at Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, is co-located with 22nd Cloud Expo | 1st DXWorld Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait...
    Cloud Expo | DXWorld Expo have announced the conference tracks for Cloud Expo 2018. Cloud Expo will be held June 5-7, 2018, at the Javits Center in New York City, and November 6-8, 2018, at the Santa Clara Convention Center, Santa Clara, CA. Digital Transformation (DX) is a major focus with the introduction of DX Expo within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive ov...
    SYS-CON Events announced today that T-Mobile exhibited at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. As America's Un-carrier, T-Mobile US, Inc., is redefining the way consumers and businesses buy wireless services through leading product and service innovation. The Company's advanced nationwide 4G LTE network delivers outstanding wireless experiences to 67.4 million customers who are unwilling to compromise on qua...
    SYS-CON Events announced today that Cedexis will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Cedexis is the leader in data-driven enterprise global traffic management. Whether optimizing traffic through datacenters, clouds, CDNs, or any combination, Cedexis solutions drive quality and cost-effectiveness. For more information, please visit https://www.cedexis.com.
    SYS-CON Events announced today that Google Cloud has been named “Keynote Sponsor” of SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Companies come to Google Cloud to transform their businesses. Google Cloud’s comprehensive portfolio – from infrastructure to apps to devices – helps enterprises innovate faster, scale smarter, stay secure, and do more with data than ever before.
    SYS-CON Events announced today that Vivint to exhibit at SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California. As a leading smart home technology provider, Vivint offers home security, energy management, home automation, local cloud storage, and high-speed Internet solutions to more than one million customers throughout the United States and Canada. The end result is a smart home solution that sav...
    SYS-CON Events announced today that Opsani will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Opsani is the leading provider of deployment automation systems for running and scaling traditional enterprise applications on container infrastructure.
    SYS-CON Events announced today that Nirmata will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Nirmata provides a comprehensive platform, for deploying, operating, and optimizing containerized applications across clouds, powered by Kubernetes. Nirmata empowers enterprise DevOps teams by fully automating the complex operations and management of application containers and its underlying ...
    SYS-CON Events announced today that Opsani to exhibit at SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California. Opsani is creating the next generation of automated continuous deployment tools designed specifically for containers. How is continuous deployment different from continuous integration and continuous delivery? CI/CD tools provide build and test. Continuous Deployment is the means by which...