Oracle is pleased to announce a new release of Oracle Transaction Manager for Microservices Free (MicroTx). This new release, 22.3.1, provides a number of enterprise enhancements and demonstrates Oracle's commitment to microservices.
This new release includes a number of resiliency enhancements that improve the availability, scalability, and recoverability of the MicroTx transaction coordinator microservice. With this new release, the MicroTx transaction coordinator microservice tcs can be configured to store transaction records in either Oracle Database or etcd in place of the current in memory transaction log. This allows tcs to recover inflight transactions should the tcs instance fail. More importantly this allows for deploying multiple tcs instances as part of a cluster sharing the transaction logs stored in Oracle Database or etcd. By being able to cluster this microservice, you can scale up and down the number of tcs instances needed for load and availability.
Often customers will want to run multiple instances of their microservices. When one of these instances enlists in an XA transaction, it provides a callback URL that tcs can use to manage the transaction. Typically this URL is common across all the instances of the microservice. When tcs calls back to a participant microservice using XA, the request will get routed to whatever tcs instance the service mesh decides. There are several use cases where tcs needs to call back to the same instance that enlisted in the transaction. Here are just some of the reasons when session affinity is required:
Session affinity can be enabled on a per participant level. Unless session affinity is required, it's recommended to not enable it
In the initial release of MicroTx, participant microservices were required to define a unique resource manager ID or RMID identifying the resource manager the microservice was using. The purpose of this configuration item is to allow the MicroTx transaction coordinator to perform some optimizations for XA transactions. In particular, in this release, the RMID is optional, but providing it correctly can help improve application performance. When a participant microservice enlists in an XA transaction, it provides the RMID, if configured, in the enlistment request. The MicroTx transaction coordinator uses this information to determine whether a new transaction branch needs to be created or not for this enlistment. If another participant has already enlisted in the XA transaction with the same RMID, the new enlistment will receive the same XID, including the same branch qualifier as the other participant. This reduces the number of branches in the XA transaction which reduces the time to commit the transaction, increasing the performance of the application. In some cases where all the participant microservices are using the same resource manager such as Oracle Database, the transaction can end up being committed with a one phase commit, skipping the prepare phase and further increasing the performance of the application.
Oracle continues its commitment to developers creating microservices and helping them ensure consistency across those microservices. With this new release's focus on reliability, available, scalability, and performance, customers can comfortably use distributed transactions in their production environments. Stay tuned for more enhancements coming up for Oracle Transaction Manager for Microservices.
I'm currently the Chief Architect for a family of transaction processing products at Oracle including Oracle Tuxedo product family, Oracle Blockchain Platform, and the new Oracle Transaction Manager for Microservices. My main areas of focus are on security, privacy, confidentiality, performance, and scalability. My job is to provide the technical strategy for these products to ensure they meet customer requirements.
Prior to being acquired by Oracle, I was Chief Architect for BEA Tuxedo at BEA Systems, Inc. While at BEA Systems, I was responsible for defining the technical strategy and direction for the Tuxedo product family. I developed the Tuxedo Control for WebLogic Workshop that greatly simplified the usage of Tuxedo services from Workshop based applications. I also received two patents for methods allowing design patterns in a UML modeling tool to control the generation of software artifacts.
During my more than 40 years of software architecture and development experience, I have worked on a wide range of software systems and technology. At Science Applications International I worked on microcoded plasma display systems and command, control, and communication systems for naval applications. As a senior software consultant at Digital Equipment Corporation, I was the New York Area Regional Tools Consultant and also helped develop a multi-language multi-threaded distributed object oriented runtime environment with concurrent garbage collection.