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-commonmodule - ๐จ [#7160] Refactored tests in
LowerCaseLinkHashMapTestto use parameterized unit testing - ๐จ [#7167] Refactored tests in
DurationUtilTestto 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...