Project: Seata (App Definition and Development / Database)
File: 2.0.0.md

| <details> <summary><mark>Release notes</mark></summary> Seata 2.0.0 Released. Seata is an easy-to-use, high-performance, open source distributed transaction solution. The version is updated as follows: ] optimize TCC structure, supporting API access. add integration layer module(seata-integration-tx-api) for transaction process definition and proxy enhancement. ] add jackson json parser and gson json parser for tcc business action context ] make AbstractHttpExecutor.class support http put ] TC log appender metric ] support two-stage concurrent notification execution ] docker image supports JVM parameter injection ] add SQL Server database support in AT mode ] add SQLServer support for Server DB storage mode ] compatible with file.conf and registry.conf configurations in version 1.4.2 and below ] adding metainfo to docker image ] support IPv6 ] support polardb-x 2.0 in AT mode ] support Dameng database ] add sqlserver's adaptation to the console paging interface ] support raft cluster and store mode ] fix saga mode serviceTask inputParams json autoType convert exception ] fix wrong keyword order for oracle when creating a table ] fix JDK Reflection for Spring origin proxy failed in JDK17 ] fix `seata-core` dependency transitive conflict in `seata-dubbo` ] fix oracle initialize script index_name is duplicate ] fix the inconsistent configuration item names related to LoadBalance ] fix the incomplete dependency of distribution module ] fix `getConfig` throw `ClassCastException` when use JDK proxy ] fix server console has queried the released lock ] parallel request handle throw IndexOutOfBoundsException ] fix auto-increment of pk columns in PostgreSQL/Oracle in AT mode ] don't remove GlobalSession when retry rollback or retry commit timeout ] remove RollbackRetryTimeout sessions during in file storage recover ] fix that keywords don't add escaped characters ] fix G1 jvm parameter in jdk8 ] fix bugs found in unit tests ] fix bugs found in feature#5165 about sorting problem of multiple interceptor under the spring used environment, by the way fix the BeforeTransaction(AfterTransaction) transaction ordering problem when the order is consistent ] Fix console print `unauthorized error` ] fix bug when customizing context-path ] fix When the rollback logic on the TC side returns RollbackFailed, the custom FailureHandler is not executed ] fix transaction timeout on client side not execute hook and failureHandler ] check if table meta cache should be refreshed in AT mode ] fix the GlobalTransactional annotation npe

] fix global session is always begin in saga mode ] fix finished transaction swallows exception when committing ] fix method name not print in logs ] fix Oracle XA transaction reentrant issues ] fix the log file path was loaded incorrectly ] fix GlobalStatus=9 can't be cleared in DB storage mode ] fix mariadb rollback failed ] fix oracle insert undolog failed ] fix RM_CHANNELS get npe when resourceId is empty ] fix grpc interceptor xid unbinding problem ] fix log in participant transaction role ] fix the `asyncCommit` and `queueToRetryCommit` always failed in db mode ] bugfix: the timeout is null when the connectionProxyXA connection is reused ] bugfix: fix compatibility between xxx.grouplist and grouplist.xxx configuration items ] fix get configuration item contains underlined error ] case of the pk col-name in the business sql is inconsistent with the case in the table metadata, resulting in a rollback failure ] fix the problem that the parameter prefix requirement of the setAttachment method in sofa-rpc is not met ] change some fields type of TableMetaCache to avoid integer overflow ] Solution cluster cannot be customized when redis serves as the registry ] fix XA transaction start exception and rollback failure caused by druid dependency conflict ] fix insert executor keywords unescape ] bugfix: fix TC retry rollback wrongly, after the XA transaction fail and rollback ] fix delete branch table unlock failed ] fix the issue of missing sentinel password in store redis mode ] required to be unlocked when a re-election occurs in a commit state ] fix some configurations that are not deprecated show "Deprecated" ] fix that rpcserver is not closed when raftServer is closed ] fix the issue of saved branch session status does not match the actual branch session status ] fix the issue that the Lua script is not synchronized when the redis sentinel master node is down ] fix global transaction hook repeat execute ] fix incorrect metric report ] fix the white screen after click the "View Global Lock" button on the transaction info page in the console ] fix can't integrate dubbo with spring ] fix registry type for raft under the network interruption did not carry out the sleep 1s ] change RaftServer#destroy to wait all shutdown procedures done ] optimize the isReference judgment logic in HSFRemotingParser, remove unnecessary judgment about FactoryBean ] decouple saga expression handling and remove evaluator package ] add Saga statelang semantic validation ] optimize throwable getCause once more ] optimize log message level ] optimize exception log message print(EnhancedServiceLoader.loadFile#cahtch) ] optimize kryo 5.4.0 optimize compatibility with jdk17 ] Only AT mode try to get channel with other app ] If `server.session.enable-branch-async-remove` is true, delete the branch asynchronously and unlock it synchronously. ] reorganize the usage of task session manager ] reorganize the usage of Sessionmanager and listener ] Optimize the compilation configuration of the `protobuf-maven-plugin` plug-in to solve the problem of too long command lines in higher

] clean multi-sessionmanager-instance pattern ] remove startup script the -Xmn configuration ] optimize logs when commit/rollback catch an exception ] optimize the log of SPI ] add time info for global transaction timeout log ] add corresponding lua implementation for Redis mode of global transaction and transaction storage ] optimize gRPC Interceptor for TCC mode ] optimize the check of the delay value of the TCC fence log clean task ] add store mode,config type and registry type log info ] optimize RPC filter for TCC mode ] reconstruct the RPC integration module ] optimize transaction fail handler ] optimize license workflow ] refactor ColumnUtils and EscapeHandler ] optimize code style properties ] optimize transaction log on client side ] optimize server log output ] optimize thread scheduling and code ] mark the lockholder of branchsession as final ] optimize FenceHandler for oracle ] support updating transaction state with optimistic locking ] optimize images based on java 8/17 and support maven-3.9.0 ] update expire gpg key and publish workflow ] The common fence clean task is only initiated when useTCCFence is set to true ] optimize possible conflict between asyncCommitting thread and retryCommitting thread ] support case-sensitive attributes for table and column metadata ] optimize server logs print ] optimize escape character for case of columnNames ] optimize distributed lock log ] optimize docker default timezone ] remove unnecessary log outputs and unify the log output path. ] set server's transaction level to READ_COMMITTED ] support the nacos application name property ] support for more operational commands in seata-server.sh ] separate MySQL from Mariadb implementations ] some minor syntax optimization ] optimize log in ConnectionProxyXA ] remove dependency without license ] remove 7z format compression support ] remove mariadb.jdbc dependency ] unified project version ] publish images based on java 8/17 and support maven-3.9.0 ] fix codecov chart not display ] optimize `httpcore` and `httpclient` dependencies ] upgrade native-lib-loader version ] optimize some scripts related to Apollo ] support jmx port in seata ] remove un support config in jdk17 ] modify code style and remove unused import ] remove fst serialization ] optimize derivative product check base on mysql ] compatible with integration-tx-api module ] add Hessian Serializer WhiteDenyList ] fix several node.js security vulnerabilities ] fix some dependencies vulnerability ] fix some serializer vulnerabilities ] fix npm package vulnerabilities ] upgrade nodejs dependency ] upgrade dependencies version ] upgrade some dependencies version ] upgrade seata-server spring version ] add unit test [FileLoader, ObjectHolder, StringUtils] ] add unit test [ArrayUtils, ConfigTools, MapUtil] ] add unit test [EnhancedServiceLoader,ExtensionDefinition,SizeUtilTest,ReflectionUtil,LowerCaseLinkHashMap,FileLoader,ObjectHolder] ] fix UpdateExecutorTest failed ] fix multi spring version test failed ] add unit test for config module ] fix FileTransactionStoreManagerTest failed ] add unit test [ExporterType, RegistryType] ] add unit test [BatchResultMessage, HeartbeatMessage, RegisterRMResponse, ResultCode, RegisterTMResponse, MergeResultMessage, MergedWarpMessage, Version] ] remove sofa test cases ] upgrade druid and add `test-druid.yml` ] fix unit test in java 21 ] fix zookeeper UT failed ] add test cases for RaftClusterMetadataMsg ] add test cases for RaftMsgExecute under branch package ] add test cases for RaftMsgExecute under global package ] add test cases for RaftMsgExecute under lock package ] add test cases for RaftServerFactory Thanks to these contributors for their code commits. Please report an unintended omission. Also, we receive many valuable issues, questions and advices from our community. Thanks for you all. Seata: https://github.com/seata/seata Seata-Samples: https://github.com/seata/seata-samples Release: https://github.com/seata/seata/releases WebSite: https://seata.io </details>