What's New in MicroTx

The following are the changes in the Transaction Manager for Microservices (MicroTx) release 23.4.1 and the previous releases.

New Features in Release 24.2

The following features were introduced in MicroTx release 24.2.

Enhancements in the MicroTx Library

The enhanced MicroTx library provides functionality for the following applications:

  • Spring REST-based applications can initiate a new TCC transaction or participate in an existing TCC transaction with MicroTx. See Develop Spring REST Apps with TCC.
  • Micronaut applications can initiate a new Saga transaction or participate in an existing Saga transaction. See Develop Micronaut Apps with Saga.
  • Oracle Database applications, built using Oracle APEX and Oracle REST Data Services (ORDS), can now initiate a new XA transaction with MicroTx by using the MicroTx PL/SQL library. See Develop ORDS App with XA.
  • JAX-RS and Spring REST-based applications can participate in an XA transaction with MicroTx while leveraging the Oracle Transactional Event Queues (TEQ) feature available in Oracle Database. See Configure Java Apps to Leverage Transactional Event Queues.
  • Spring Boot applications using Spring REST and Micronaut applications can initiate or participate in a Saga transaction with MicroTx while supporting auto-compensation using the lock-free reservation feature available in Oracle Database 23ai. See Develop Java Apps that Use Saga and Lock-Free Reservation.

Send Notifications Using Prometheus Alertmanager

Install and configure Prometheus Alertmanager to send notifications based on specific thresholds and rules. For example, users are notified when the MicroTx coordinator service or the database service is not available. See Install and Configure Alertmanager.

Enhanced Troubleshooting through Console Notifications

Notifications appear on the MicroTx web console in case of certain failures. These messages help to identify and troubleshoot the issue. See Troubleshooting.

MicroTx is Now Available with OpenShift 4.14.x

In addition to deploying MicroTx on Kubernetes cluster or Docker Swarm, you can now deploy MicroTx in OpenShift 4.14.x or a compatible version. See Supported Container Platforms.

Sample Helm Charts to Install MicroTx Without Istio Service Mesh

In Kubernetes, you can install MicroTx within a service mesh or without it. The installation bundle provides example Helm charts with sample values which you can use as a reference to install MicroTx on a Kubernetes cluster with and without using the Istio service mesh. See Prepare a Kubernetes Cluster.

Changes in the Previous Release

The following are the changes in previous releases of MicroTx.

Changes in 23.4.2

Experience enhanced performance and resilience with MicroTx Free release 23.4.2.

Changes in the Enterprise Edition Release 23.4.1

The following features were introduced in MicroTx Enterprise Edition release 23.4.1.

Manage Transactions Using the MicroTx Console

View the health of all the replicas of the MicroTx transaction coordinator and manage transactions using an easy-to-use graphical web console. See Manage Transactions Using the Web Console.

Manage Transaction Promotion

The MicroTx client library manages the local transactions. By handling a transaction locally, you can experience better performance. Local transactions save time and increase throughput as the MicroTx coordinator does not read, write, coordinate, or save database cache and logs for such transactions. See About Global and Local Transactions.

Visualize Metrics Using Grafana

The MicroTx coordinator exposes metrics in a format that can be easily read by Prometheus. Use Grafana to visualize the metrics data collected into Prometheus. You can import MicroTx dashboards to view the metrics in Grafana. Use these metrics to monitor your transactions and health of the MicroTx coordinator. See Monitor Performance.

MicroTx Supports Oracle RAC as a Resource Manager

You can use Oracle Real Application Clusters (RAC) as a resource manager for Node.js, JAX-RS, and Spring REST applications use the XA transaction protocol. See Supported Resource Managers.

Caching the Transaction Logs

Caching the transaction logs that are stored in etcd or Oracle Database to improve performance and optimize the read and write operations. See Enable Caching.

Create Multiple Replicas of the Transaction Coordinator

You can run multiple replicas of Transaction Manager for Microservices pod at a time. Oracle recommends a minimum of 3 replicas for production environments. See Environment Details.

You can scale up or down the number of replicas based on the number of transactions. When the number of transaction requests is low, scale down the number of replicas to use the resources efficiently.

Optimize Transactions that Use a Common Resource Manager

Based on your business requirements, you may use a single resource manager for multiple transaction participant services. When you use a common resource manager for multiple participant services, MicroTx can optimize the commit processing resulting in higher throughput and lower latency for XA transactions. See Common Resource Manager for Multiple Apps.

Store Transaction Details in Oracle Database or etcd

In addition to internal memory, MicroTx now supports etcd or Oracle Database as a data store for persistence of transaction state. See Supported Data Stores for Transaction Logs.

Recover Transactions

In case the transaction coordinator server fails, MicroTx resumes the transactions that are in progress after the server restarts. See About Transaction Recovery.

No Limit on the Number of Transactions

You can run up to 4800 transactions per hour across all the transaction protocols and across all replicas of the transaction coordinator when you use Transaction Manager for Microservices Free. There is no limit on the number of transactions in Transaction Manager for Microservices Enterprise Edition.

Changes in Free Release 23.4.1

The following features were introduced in MicroTx Free release 23.4.1.

Enhancements in the MicroTx Library

The enhanced MicroTx library provides functionality for the following applications:

MicroTx Supports Use of the @Transactional Annotation

You can easily configure your Java applications that use the XA transaction protocol by using the @Transactional annotation. See About @Transactional.

Enhanced Diagnostics and Troubleshooting through Log Correlation

The MicroTx coordinator and the MicroTx client libraries generate logs. In case of any failure, view the logs to identify the issue and troubleshoot. See Logs.

Changes in 22.3.2

The following new features were introduced in MicroTx 22.3.2.

Last Resource Commit (LRC) Optimization for XA Transactions

In addition to Logging Last Resource (LLR) optimization, you can now use Last Resource Commit (LRC) optimization to enable one non-XA resource to participate in a global XA transaction. See Optimizations for a Non-XA Resource.

Support for Multiple Resource Managers for a Service

Based on your application's business logic, you can use multiple resource managers for a single participant service. A participant service can connect to multiple XA-compliant resource managers. However, only one non-XA resource is supported in a transaction. See Configure Multiple Resource Managers for a Single App.

MicroTx Library for Python Apps Using the TCC Transaction Protocol

The MicroTx library for Python provides the functionality to Python applications to initiate a new TCC transaction or to participate in an existing TCC transaction. Earlier, the MicroTx library for TCC transaction protocol supported only Java and Node.js applications. See Develop Python Apps with TCC.

Subscribe to Receive XA Transaction Notifications

You can register your transaction initiator and participant services to receive notifications. MicroTx notifies the registered services when the following events occur: before the prepare phase and when MicroTx successfully commits or rolls back a transaction. You may want to register your service, if based on the business logic your service performs additional tasks when an event occurs. See Subscribe to Receive XA Transaction Notifications.

MicroTx Library for WebLogic Server J2EE Applications

You can integrate the MicroTx library with your WebLogic Server J2EE applications. See Integrating XA Global Transactions Between WebLogic Server and Helidon Using MicroTx in Integrating Oracle WebLogic Server with Helidon.

Changes in 22.3.1

The following new feature was introduced in MicroTx release 22.3.1.

Support for Session Affinity

When there are multiple replicas of a participant service, the request may be directed to different replicas in a single transaction. When you enable session affinity for a participant service, all the requests for a unique transaction or session are routed to the same endpoint or replica of the participant service that served the first request. Depending on your business use case, you may have to enable session affinity for the transaction participant service or the transaction coordinator. See About Session Affinity.