Seata v2.6.0 Release Notes

Release Date: 2026-01-28 // 8 months ago
  • ๐Ÿš€ Apache Seata(incubating) 2.6.0 Released.

    ๐ŸŽ Apache Seata(incubating) is an easy-to-use, high-performance, open source distributed transaction solution.

    โšก๏ธ The version is updated as follows:

    ๐Ÿ”‹ feature:

    • [#7485] Add http request filter for seata-server
    • ๐Ÿ”€ [#7509] Reuse connection to merge branch transactions
    • โฌ†๏ธ [#7492] upgrade HTTP client in common module to support HTTP/2
    • ๐Ÿ“œ [#7503] support fory serializer and fory undolog parser
    • ๐Ÿ‘ [#7551] XAUtils add support for DM Database
    • [#7559] Introduce Cleanup API for TableMetaRefreshHolder Instance
    • ๐Ÿ‘ [#7669] add support for Jackson serialization and deserialization of PostgreSQL array types
    • ๐Ÿ‘ [#7664] support shentongdatabase XA mode
    • ๐Ÿ‘ [#7675] support Oracle Batch Insert
    • ๐Ÿ‘ท [#7663] add Java 25 support in CI configuration files
    • ๐Ÿ‘ [#7851] add support for managing transaction groups
    • ๐Ÿ‘ [#7857] support displaying cluster information in the console
    • ๐Ÿ‘ [#7826] Support HTTP/2 response handling for the Watch API in Server Raft mode
    • ๐Ÿ— [#7863] Exclude namingserver and console module builds from build workflows with JDK versions less than 25
    • โฌ†๏ธ [#7870] upgrade the namingserver and console modules to JDK 25 and SpringBoot 3.5, and add the spring-ai dependency in the console module.
    • [#7872] Automatically calculate the values for JVM parameters
    • ๐Ÿ”ง [#7876] feature: add MCP custom configuration and authentication code
    • ๐Ÿ‘ [#7878] console supports creation and modification of transaction groups for Raft clusters
    • ๐Ÿ”’ [#7893] add global and branch session and lock management MCP tools

    ๐Ÿ›  bugfix:

    • โช [#7471] Fix SerialArray equals() method for multi-dimensional array comparison in Phase 2 rollback
    • โœ… [#7482] Github Action workflow does not run the corresponding Kotlin test
    • โช [#7538] unify DmdbTimestamp comparison via UTC Instant to prevent rollback failure
    • [#7546] fix client spring version compatible
    • ๐Ÿš€ [#7505] prevent Netty I/O thread blocking by async channel release via reconnectExecutor
    • [#7563] Fix NPE when server-side filter is disabled and filter chain is null.
    • ๐Ÿ‘• [#7570] Fix order() behavior in GlobalTransactionalInterceptorHandler to ensure correct sorting of invocation handlers
    • 0๏ธโƒฃ [#7596] Fixed the issue where deserialization failed when the xss filter obtained the default keyword
    • ๐Ÿ”’ [#7613] Fixed the SQL error in the datetime format time query in the global lock query
    • [#7622] adjust the order of org.apache.seata.saga.rm.SagaResourceManage
    • ๐Ÿ”ง [#7624] fix the compatibility issue of yml configuration files
    • [#7644] fix the compatibility issue of spotless when java 25
    • โœ… [#7662] ensure visibility of rm and The methods in MockTest are executed in order
    • [#7683] Override XABranchXid equals() and hashCode() to fix memory leak in mysql driver
    • โช [#7643] fix DM transaction rollback not using database auto-increment primary keys
    • [#7708] Use xaActive to determine whether xaResource needs to execute the end method
    • ๐ŸŒฒ [#7747] undo log table name dynamic derivation
    • ๐Ÿ“œ [#7749] fix error parsing application/x-www-form-urlencoded requests in Http2HttpHandler
    • [#7761] special handling is applied to the Byte[] type to ensure the correct primary key value
    • [#7771] Shentongdata xa mode should be hold the same connection
    • โœ… [#7785] fix the failure test
    • โœ… [#7796] fix the NPE on ConsulConfigurationTest method
    • [#7839] resolve TransactionAutoConfiguration compatibility with Spring Boot 4.x
    • [#7843] fix index type misjudgment in Dm/KingbaseTableMetaCache
    • ๐Ÿ“ฆ [#7856] fix comma missing in package.json/min-document
    • ๐Ÿ‘ป [#7860] Fix the issue where delayed messages in RocketMQ transactions were silently ignored, now explicitly throwing an exception
    • [#7879] fix:correct server port and naming server port
    • [#7881] the vgroup_table in the SQL files of all databases should use a three-column unique constraint
    • [#7891] raft split-brain causes incorrect cluster information
    • [#7908] handle timestamp with time zone in postgresql primary key
    • ๐Ÿ“ฆ [#7938] ensure the Jakarta-related package paths are correct.
    • [#7959] fix consoleApiService bean that could not be found
    • [#7966] fix different element order in two lists causes failure to set the index as primary key index

    โšก๏ธ optimize:

    • ๐Ÿ”ง [#7460] Remove hardcoded port configuration in core module test classes
    • โšก๏ธ [#7478] optimize: remove client id metric
    • โฌ†๏ธ [#7557] upgrade some npmjs dependencies
    • ๐Ÿ”ง [#7576] Add empty push protection for Configuration
    • ๐Ÿšš [#7577] remove the 4MB size limit when decompressing with zstd
    • [#7578] zstd decompression is changed from jni to ZstdInputStream
    • โšก๏ธ [#7591] Optimize default xssFilter config retrieval when no explicit configuration is provided
    • [#7608] modify the parameter name in refreshToken method
    • โฌ†๏ธ [#7603] upgrade Apache Tomcat dependency from 9.0.106 to 9.0.108
    • โšก๏ธ [#7614] update README.md
    • [#7443] Replace @LocalTCC with @SagaTransactional in the saga annotation pattern
    • ๐Ÿ”ง [#7645] simplifying the relevant transport.* configuration types
    • [#7668] correct variable name typo in DeflaterUtil
    • [#7673] bump @babel/runtime from 7.26.10 to 7.27.0
    • ๐Ÿš€ [#7689] optimize source release
    • ๐Ÿ‘ [#7711] add fastjson support for serialization and deserialization of PostgreSQL array types
    • โšก๏ธ [#7722] optimize serializer type meaning
    • โšก๏ธ [#7739] optimize docker image building process
    • ๐Ÿ‘ [#7741] supports publishing image based on JDK 25
    • โฌ†๏ธ [#7743] upgrade Apache Tomcat dependency from 9.0.108 to 9.0.109
    • โœจ [#7740] enhance HttpClient to support h2c
    • โฌ†๏ธ [#7744] upgrade Apache Tomcat dependency from 9.0.109 to 9.0.110
    • ๐Ÿšš [#7751] remove unused dependency
    • ๐Ÿ‘ [#7807] support mariadb 3.x
    • ๐ŸŒฒ [#7781] highlight pmd-check log
    • ๐Ÿ”’ [#7704] fix frontend security vulnerabilities
    • [#7710] fix some spell errors in code and comments
    • [#7721...

Previous changes from v2.5.0

  • ๐Ÿš€ Apache Seata(incubating) 2.5.0 Released.

    ๐ŸŽ Apache Seata(incubating) is an easy-to-use, high-performance, open source distributed transaction solution.

    โšก๏ธ The version is updated as follows:

    ๐Ÿ”‹ feature:

    • 0๏ธโƒฃ [#7261] enforce account initialization and disable default credentials
    • ๐Ÿ‘ [#7451] seata-server supports the HTTP/2 protocol
    • ๐Ÿ‘ [#7496] add oceanbase oracle support

    ๐Ÿ›  bugfix:

    • โœ… [#7349] Resolve NullPointerException in EtcdRegistryServiceImplMockTest
    • [#7354] fix the drivers in the libs folder cannot be loaded
    • [#7356] fix codecov bug
    • [#7370] fix ISSUE_TEMPLATE not work
    • [#7397] Resolve NullPointer and port binding errors
    • ๐Ÿ’… [#7502] remove extra dots and keep the naming style consistent with other tables
    • [#7498] fix the class name whitelist check issue in fury deserialization
    • [#7504] fix load driver class in Hikari
    • [#7529] fix the server does not send heartbeats when the namingserver is used with other registries
    • [#7546] fix client spring version compatible

    โšก๏ธ optimize:

    • ๐Ÿ”ง [#7270] enhance ci configuration
    • โšก๏ธ [#7282] optimize unexpected NullPointerException in lookup method in FileRegistryServiceImpl class
    • โšก๏ธ [#7310] Optimize minor issues in the naming-server
    • โฌ†๏ธ [#7329] upgrade tomcat to 9.0.100
    • [#7346] replace tomcat with netty-http on the server
    • [#7344] raft mode performs transaction size check in advance
    • โฌ†๏ธ [#7343] upgrade tomcat to 9.0.104
    • ๐Ÿ‘ [#7337] Add ChannelEventListener support to prevent memory leaks
    • [#7344] raft mode performs transaction size check in advance
    • [#7345] add empty check and duplicate type check to RegistryFactory
    • โšก๏ธ [#7350] optimize codecov.yml
    • โšก๏ธ [#7360] Update resource cleanup logic for channel disconnection
    • โฌ†๏ธ [#7363] Upgrade npmjs dependencies
    • โšก๏ธ [#7372] optimize license ignore
    • โšก๏ธ [#7375] optimize close() logic of discovery module
    • โšก๏ธ [#7388] optimize binary packaging directory structure
    • [#7412] Helm template adapted to the new version of seata
    • ๐Ÿšš [#7414] Remove the unused defaultEventExecutorGroup from the NettyClientBootstrap
    • [#7415] Use threadPool to asynchronously process server http requests
    • [#7418] add jackson notice
    • ๐Ÿ‘ [#7419] Add maven profile to support packaging source code
    • ๐ŸŒฒ [#7428] pmd-check log as ERROR level
    • ๐Ÿ“œ [#7430] Add support for parsing RequestParam annotation in netty-http-server
    • โœ… [#7432] conditionally include test modules using Maven profiles
    • [#7445] separate the license from the server and namingserver
    • [#7426] add some license header
    • [#7450] Apply Spotless to the entire codebase
    • ๐Ÿ“œ [#7456] Druid SQL parser throws ParserException for unsupported REPLACE statement
    • [#7466] add contribution intention check box to issue template
    • [#7478] metrics add retry status
    • [#7483] change the value of retryDeadThreshold to 70 seconds
    • โฌ†๏ธ [#7488] upgrade tomcat to 9.0.106
    • โœ… [#7518] avoid using unstable API in ChannelEventHandlerIntegrationTest
    • โšก๏ธ [#7530] optimize 1.2.12 test-druid CI
    • โšก๏ธ [#7391] optimize: upgrade tomcat to 9.0.105
    • โšก๏ธ [#7390] optimize: optimize license header check
    • โšก๏ธ [#7389] optimize: fix some js resource missing license header
    • โšก๏ธ [#7536] optimize: optimize druid 1.2.12 ci

    โœ… test:

    • โœ… [#7092] fix the issue of NacosMockTest failing to run
    • โœ… [#7098] Add unit tests for the seata-common module
    • ๐Ÿ”จ [#7160] Refactored tests in LowerCaseLinkHashMapTest to use parameterized unit testing
    • ๐Ÿ”จ [#7167] Refactored tests in DurationUtilTest to simplify and use parameterized unit testing
    • โœ… [#7189] fix the runtime exception in the saga test case
    • [#7197] add some UT cases for config module
    • [#7199] add some UT cases for client processor
    • ๐Ÿ”จ [#7203] Refactored tests in rm.datasource.sql.Druid and seata-sqlparser-druid module
    • [#7221] add UT for gRPC Encoder/Decode
    • โœ… [#7227] add mock test for seata-discovery-consul module
    • โœ… [#7233] add mock test for seata-discovery-etcd3
    • โœ… [#7243] add unit test for seata-discovery-eureka
    • โœ… [#7255] more unit tests for Discovery-Eureka
    • โœ… [#7286] Simplified complex test testMsgSerialize in RaftSyncMessageTest by separating it into two tests
    • ๐Ÿ”จ [#7287] Refactored testGetErrorMsgWithValidCodeReturnsExpectedMsg to use parameterized unit testing
    • ๐Ÿ”จ [#7288] Refactored testSetCodeAndMsgUpdatesValuesCorrectly to use parameterized unit testing
    • โœ… [#7294] improved test testGetInsertParamsValue in SqlServerInsertRecognizerTest by splitting and parameterizing
    • โšก๏ธ [#7295] updated 3 tests in StringUtilsTest to use parameterized unit testing
    • [#7205] add UT for namingserver module
    • ๐Ÿ”€ [#7359] merge submodule test reports
    • [#7423] add UT for org.apache.seata.spring.annotation.scannercheckers
    • ๐Ÿ“œ [#7420] add UT for RemotingFactoryBeanParser class
    • [#7379] add UT for TccAnnotationProcessor class
    • [#7422] add UT for seata-spring-boot-starter module
    • [#7433] add UT for GlobalTransactionScanner class
    • [#7436] fix namingserver ut error
    • โœ… [#7435] Add common test config for dynamic server port assignment in tests
    • [#7442] add some UT for saga compatible
    • โœ… [#7457] improve unit test coverage of seata-rm moudle
    • โœ… [#7464] improve unit test coverage of seata-gRPC moudle
    • ๐Ÿ‘ [#7468] add UT for SupportSqlWhereMethod class
    • โœ… [#7501] add unit test case for fury serializer
    • [#7528] fix UT failed in spring-boot-starter
    • โœ… [#7275] test: add UT for rm datasource module
    • [[#7321](https...