Welcome!

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

Related Topics: Weblogic

Weblogic: Article

Tricky Transactions

Understanding implicit transactions in WebLogic Integration

BEA WebLogic Workshop is fabulous at hiding many of the complexities of a J2EE application. This can be a problem when things don't behave this way you might expect. Tools are great, but sometimes do things "for us" that we really don't want.

Understanding what the tool is doing is key to knowing when a problem might arise. In this article I'll cover the details of how WebLogic Integration handles transactions, referred to as implicit transactions, within a BPM process. Truth be told, you really shouldn't need to know or care about these transactions. There are, however, some cases where they become important. Knowing how they work and where they exist is key to understanding the implications of process design.

The first and most obvious implication is performance. Transactions are inherently expensive. If you have unnecessary implicit transactions, it may be possible to modify the process to reduce these and improve performance. However, the biggest performance impact is transitioning from one implicit transaction to two. This is due to how WebLogic implements a given process. If a process has only one implicit transaction, then WebLogic Workshop can deploy this process as a stateless session bean. If it has more than one, it must use an entity bean. As you might guess, an entity bean adds overhead to the process and reduces performance.

I won't go into detail about the architectural patterns associated with processes with a single transaction versus a process with multiple transactions. Suffice it to say that a single transaction process is usually a worker or utility process. It will take something in, do the work, and send it somewhere else. Obviously we want these processes to be fast, and we want to make sure we do not accidentally introduce an extra implicit transaction. Processes with multiple transactions are usually long running where performance is not a huge concern.

The second implication of implicit transactions is behavior. Transaction boundaries are set for you, so it may not be obvious that a failure in one node of the process may actually cause the rollback of another node.

Consider the process segment shown in Figure 1. A developer may add a logging node above a JMS send node to try to figure out why the JMS is failing. Perhaps they are confused and believe that if the JMS fails, it will also roll back the entry in the database because they are in a single transaction.

Be aware that it is always possible to place an explicit transaction into the process. These are not confusing because the developer manually inserts them and they are clearly visible when the process is displayed.

So how do we know where the implicit transaction boundaries are located? The basic rule of thumb is: if the process stops and waits, then it must start a new transaction. There are a couple of exceptions to this that I will address later. This sounds easy but can get tricky. Here's a quick education.

I will use perform nodes as placeholders for discussion.

Consider the process segment shown in Figure 2. It is a very simple process that has a start node, perform, and end. It is easy to identify that this has a single implicit transaction, and that this process will be deployed as a session bean.

Consider the process segment shown in Figure 3. It adds a control receive into the process. As I said before, whenever the process has to wait, it adds a new implicit transaction. There will be two transactions then: one from the start node to the top of the Control Receive (Tx 1) and one from the Control Receive to the end (Tx 2).

Note: A synchronous Control Send with Return does not add an implicit transaction.

Consider the process segment shown in Figure 4. It includes a parallel path. Whenever one is reached, a new transaction is started for each branch. Once the parallel paths come back together, another transaction is started. In this instance, there are four transactions. There are two points to be noted. If the parallel join node is an OR rather than an AND, one of the transactions (Tx 2 or Tx 3) will not execute. I'll cover this in more detail later. In the initial release of BEA WebLogic Integration 8.1 there was a problem with the final transaction. A new transaction was not started after the parallel join. Nodes after the join would be in the same transaction as the final parallel path executed. This has been fixed in Service Pack 2.

Consider the process segment shown in Figure 5. It includes an event choice. Much like a single Client or Control Receive, a new implicit transaction is started. Then, whichever event comes in first will be in the same transactions as the nodes below the event choice. Unlike the parallel node, there is no new transaction created when the paths visually come back together.

Consider the process segment shown in Figure 6. It is the most confusing case of transactions. The process never really stops, but a second transaction is started after the Client Response. For brevity's sake, I will not go into details here. Suffice it to say that in order to implement this process, it must save its state, return data back to the client (synchronous), and then restart the process at the node following the return.

That's it! It appears easy but can be tricky. Now I'll go through a series of tests. For each figure, write down (or draw) where you think the transaction boundaries exist. The answers are provided to show you how well you did. The average for an "expert" is 80%.

Note: These processes are for explaining implicit transactions only. They do not demonstrate best practices for building processes.

See if you can determine how many transactions each example contains.

Good luck!

Question #1 (Figure 7)
This is a simple synchronous client request with return.

Question #2 (Figure 8)
This adds a perform node after the client return.

Question #3 (Figure 9)
This has a branch with three paths. Assume there are no transactions before Node A or after node E.

Question #4 (Figure 10)
This is the same as Figure 9 except the join at the end of the parallel paths is an OR rather than an AND.

Question #5 (Figure 11)
This has two branches, but each branch has a client request node added.

Question #6 (Figure 12)
This has the client request node removed from the second branch path. Be careful, this one is tricky.

Question #7 (Figure 13)
This has a three-branch Decision node.

Question #8 (Figure 14)
This has a While Do loop.

Question #9 (Figure 15)
This has an Event Choice.

Question #10 (Figure 16)
This has a loop around a Client Receive. Assume the While Do returns back to the top twice (Node B and Node C Path executes three times).

Final Exam (Figure 17)
This one has a little bit of everything. If you answer this correctly, you are on your way to understanding implicit transactions!

How did you do? It's not as easy as it looks.

Be sure to watch out for transactional boundaries when you are building your processes. If the behavior is not what you want, then put in an explicit transaction. If you have a utility process that is simply doing work, be sure not to introduce too many transactions. BEA WebLogic Workshop and BEA WebLogic Integration are powerful tools. Use them wisely and take advantage of their strengths.

Answer #1 (Figure 7)
There is one transaction. If a node were placed after the return (before the finish), then a second transaction would be created.

Answer #2 (Figure 8)
There are two transactions. Node A is in Tx 1, Node B is in Tx 2.

Answer #3 (Figure 9)
There are five transactions. Each of the perform nodes is in its own transaction. Note: This is only true because it is an AND join at the end. If this was an OR, then only one of the branches would be executed.

Answer #4 (Figure 10)
There are three transactions. Node A is in Tx 1, Node B (or C or D) is in Tx 2, and Node E is in Tx 3. Since the parallel node is an OR, it will not go down the other two paths, therefore, Node C and Node D will not run. Note: It is indeterminate as to which branch of a parallel branch is executed first. The sequence may change between executions.

Answer #5 (Figure 11)
There are five transactions. Node A is in Tx 1. Node B is in Tx 2. Node D is in Tx 3. Assuming client request 1 comes in before client request 2, Node C is in Tx 4; the parallel branch ends because it is an OR and Node F is in Tx 5.

Answer #6 (Figure 12)
There could be three or four transactions. Assume the left path is executed first. Node A is in Tx 1. Node B is in Tx 2. Nodes D and E are in Tx 3. Node F is in Tx 4. What happens if the right path is executed first? Node A is in Tx 1, Node D and E are in Tx 2 and Node F is in Tx 3. Node B is not executed in this case.

Answer #7 (Figure 13)
There is one transaction. I never mentioned decision nodes in the previous discussion. Based on the decision, Node A; Node E; and one of B, C, or D will all be in the same transaction.

Answer #8 (Figure 14 )
There is one transaction. Looping constructs have no effect on transactions.

Answer #9 (Figure 15)
There are two transactions. Node A is in Tx 1. Assume the Client Receive is first. Nodes B and D are in Tx 2. If the Control Receive is first, then Nodes C and D are in Tx 2.

Answer #10 (Figure 16)
There are four transactions. Nodes A and B are in Tx 1. Nodes C and B are in Tx 2. Nodes C and B are in Tx 3. Nodes C and D are in Tx 4. It is important to mention that nodes at the bottom of the loop are in the same transaction as those in the top of the loop in the next iteration. In this case, a rollback may be confusing.

Answer Final Exam (Figure 17)
There are six transactions. Node A is in Tx 1. Assume the left branch is first. It doesn’t matter. Node B is in Tx 2. Node C is in Tx 3. Assume the far left Client Receive is first. Node D is in Tx 4. It waits because the join node on the Parallel path is an AND (+). Assume either Client Request or onMessage is received next. Node E is in Tx 5. Node F is in Tx 6.

More Stories By John Graves

John Graves has been with BEA for more than seven years and is currently working as an internal trainer for Education Services specializing in WebLogic Portal. He spent the first five years of his time with BEA in the Advanced Service Group doing full life-cycle project work.

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
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...
To get the most out of their data, successful companies are not focusing on queries and data lakes, they are actively integrating analytics into their operations with a data-first application development approach. Real-time adjustments to improve revenues, reduce costs, or mitigate risk rely on applications that minimize latency on a variety of data sources. In his session at @BigDataExpo, Jack Norris, Senior Vice President, Data and Applications at MapR Technologies, reviewed best practices t...
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 ...
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...
"Evatronix provides design services to companies that need to integrate the IoT technology in their products but they don't necessarily have the expertise, knowledge and design team to do so," explained Adam Morawiec, VP of Business Development at Evatronix, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
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...
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...
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...
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...
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...
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.