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

| <details> <summary><mark>Release notes</mark></summary> Seata 1.5.0 Released. Seata is an easy-to-use, high-performance, open source distributed transaction solution. The version is updated as follows: ] support console management ] add redisLocker's lua mode ] support the mixed use of different storages of locks and sessions ] add a Executor for INSERT ON DUPLICATE KEY UPDATE ] provide an api to share tcc phase-1's params to phase-2 ] support configuring the order of the TM and TCC interceptor ] support configuring scan target for GlobalTransactionScanner ] support redis distributed lock to prevent multi TC competition ] TCC mode support idempotent and anti hanging ] support server start with springboot and config with application.yaml ] support APM with SkyWalking ] TCC mode supports customized parameters list of the method in phase two ] TCC mode's try method supports passing `BusinessActionContext` implicitly ] support edas-hsf RPC framework ] contributing md support chinese. ] support GlobalTransactionInterceptor expression ] support the registry center network preferences ] support get configuration from environment ] support SPI unload ] support kotlin coroutine ] support brpc-java RPC framework ] init the console basic code ] query global session in the file mode ] query global session and global lock in the redis mode ] get global lock in the file mode ] Realize configuration center upload configuration interactive script (nacos,etcd3) ] Realize configuration center upload configuration interactive script (apollo,consul,zk) ] realize the interface of console: get global session and global lock in the db mode ] console front-end page implementation ] implementation of DefaultAuthSigner ] make seata-bom be the real Bill-Of-Material ] add db realization for distribute lock ] registry add heartbeat ] support zstd compressor ] Saga support auto configuration in the spring boot project ] fix tcc phase two response timeout exception ] fix NPE and wrong cluster name of Apollo ] fix some comments ] fix the problem in the findTargetClass method ] fix typo of interval ] fix consul not found tc cluster ] fix mariadb unable to create XA connection ] fix the problem that store mode does not take effect ] fix that `LocalThread` is not cleared when the `Saga` transaction ends ] fix the Server can't find redis-host property ] fix StringUtils StackOverflowError ] fix TC SkyWalking topo calling node not gather ] fix ReflectionUtil throw unexpected exception ] fix postgresql multi schema throw not found channel exception ] fix getConfig with different default value return the first ] fix LocalDataTime type in FastjsonUndoLogParser can't be rollback ] fix seataio/seata-server servlet-api conflict ] fix the wrong path and filename when dump the jvm memory for analysis ] fix NPE cause by future timeout ] fix register branch and release lock failed when the size of rows that modified is greater than 1000 in oracle ] fix the problem that `nacos-config.py` will not skip blank options. fix bug that split options may cause content loss ] fix the problem that nacos not found user when password has special characters ] fix the NPE of jedis

] fix can not get properties of distributed-lock-table in springboot ] fix potential database resource leak ] fix the problem that the xid is not cleared in some scenes of dubbo ] fix RM did not clear XID after the local transaction threw an exception ] fix ApplicationContext already closed problem when Seata server using ShutdownHook to destroy ] fix prevents XA mode resource suspension ] fix deadlock problems during project construction ] fix the logback can't load the `RPC_PORT` ] fix correct built-in properties for redis registry ] fix `StringUtils.toString(obj)` throw `ClassCastException` when the obj is primitive data array ] fix xa mode originalConnection has been closed, cause PhaseTwo fail to execute ] fix the problem of accidentally releasing the global lock ] fix delete undo log connection already closed ] fix the `kafka-appender.xml` and `logstash-appender.xml` ] fix code for "sessionMode" not execute problem ] fix some problems with `zstd` compressor and add the version of the `kotlin-maven-plugin` ] fix could not rollback when insert field list is empty ] update executor store the actually modified columns but not only the columns in set condition ] fix seata-test module UT not work ] fix the problem that mysql's Blob/Clob/NClob data type cannot be deserialized ] fix the problem that other ORMs may not be able to obtain the auto-incrementing primary key value ] fix data remanence problems in lock and branch under specific circumstances. ] fix the TableMetaCache parsing problem with the same table under multiple Postgresql schemas ] fix inability to build Executor when using mariadb driver ] fix mysql-loadbalance resource id error ] fix the problem that failed to obtain the self increment ID of MySQL database through "select lastinsertid" ] fix dirty write check exception that may occur when using ONLYCAREUPDATE_COLUMNS configuration ] fix resource suspension in xa mode caused by choose other ip as channel alternative ] fix the invalid environment variable in container env ] fix the problem that pipelined resources are not closed in redis mode and add branchSession judge branchSessions is not null ] fix the problem that GlobalSession could not be deleted normally in the case of delayed deletion in the file mode of the develop branch ] fix the inability to get some remote configurations ] fix the change log of 'service.disableGlobalTransaction' config ] fix redis mode page npe and optimize get globalSession on average ] fix the failure to obtain before image and after image on oracle and pgsql of the develop branch ] in branch 'develop', fix the error when

change ] fix Mysql multi-bit Bit type field rollback error ] fix the failure to update cluster list dynamically when use eureka of the develop branch ] fix FileSessionManagerTest fail ] fix allSessions/findGlobalSessions may return null and cause npe ] fix fastjson serialization of time data types ] fix prepareUndoLogAll of MySQLInsertOrUpdateExecutor ] fix PK constraint name isn't the same as the unique index name which is belong to PK ] fix saga complex parameter deserialization problem ] fix rpc tm request timeout ] fix some problem of the sql parser ] fix remove Pagination hideOnlyOnePage attribute ] fix optimize redis limit and fix redis page bug ] fix test case ] fix the problem of unit test ] improve CONTRIBUTING docs ] supplement missing configuration and new version documents ] fix typo,applicationContex -> applicationContext ] asynchronous deletion after the transaction is committed ] fix the case that could not retry acquire global lock ] modify the attribute prefix in the file file.properties ] optimize the memory footprint of redis mode ] optimize the speed of buildLockKey ] optimize the logic of datasource auto proxy ] remove repeat change status ] add the basic code of distributed lock ] unified the default value of enableClientBatchSendRequest ] optimize `Configuration` and add unit tests ] do not load `LoadBalance` if not necessary ] close the `Closeable` and optimize some code ] use TreeMap instead of the LinkedHashMap in TableMeta to compatible high level MySQL ] opt the logback's config of `seata-server` ] Transfer the operation of adding configuration class from 'AutoConfiguration' to 'EnvironmentPostProcessor' ] Refactoring the code of TCC mode ] add column `actionname` to the `tccfence_log` ] `JacksonUndoLogParser` supports to parsing `LocalDateTime` ] optimize the packaging of `seata-server` ] optimize zk registry lookup performance ] optimiza `apm-skwalking` operation method to generate rules ] optimize `seata-distribution` add `apm-seata-skywalking` ] optimize ConcurrentHashMap.newKeySet replace ConcurrentSet ] supports reading all configurations from a single Consul key ] optimize string concat ] optimize only the inserted fields are checked ] optimize decode exception ] add jib-maven-plugin ] ehance metrics and fix seata-server UT not work ] optimize recognize sql in limit and order by ] optimize nacos-config.sh to support ash ] optimize Send redis command at one time using pipeline ] optimize determine whether the server in the register is alive ] cache reflection results of the fields and methods ] add jib-maven-plugin ] optimize set server port ] support config JVM param in env ] use map instead of if else judge for more change in the future ] add a start banner for seata ] replace @Deprecated getOwnernName to getOwnerName in druid ] optimize service port priority ] optimize channel alive check ] optimize readme doc and upgrade some dependencies ] `nacos-config.py` support default parameters and optional input parameters ] disable listening in the FileConfiguration center in Springboot ] Optimize the mechanism of periodically deleting tasks in the `tccfencelog` table ] supports reading all configurations from a single Etcd3 key ] support to read YML configuration from Nacos, Zookeeper, Consul, Etcd3 ] optimize file configuration ] optimize Apollo configuration ] optimize NacosConsulZookeeperEtcd3 configuration ] optimize Nacos, Consul, Zookeeper and Etcd3 configuration Junit test Class ] optimize NetUtil#getLocalAddress0 ] optimize lazily load branch transactions and task scheduling ] optimize the DurationUtil ] optimize AbstractLockManager#collectRowLocks logic ] optimize acquire lock logic ] support default configuration of tx-service-group ] optimize client batch sending. ] support rpc timeout can be

] no more attempt to clean undolog for none AT mode ] use expire key instead hash when using redis as registry center. ] tc batch response to client. ] optimize the interface of the console ] skip check lock when all the before image is empty ] optimize partial code handling ] optimize tcc module code handling ] optimize instance saved in eureka ] optimize acquire lock return fail-fast code in redis-pipeline mode. ] support authentication of MSE-Nacos with ak/sk ] optimize exceptions to make them friendly ] optimize let DefaultCoordinator invoke NettyRemotingServer's close method,no longer closed by ServerRunner ] improve the performance of global commit and global rollback, asynchronous branch transaction cleanup ] when in TCC mode there is no need to delete global locks ] `tccfencelog` table hanging log records are deleted asynchronously ] upload configuration script support comments ] optimize acquire global lock fail error log print on tc ] add SQL exception prompt not supported by AT mode ] support configuration metadata read from environment variables ] add tests for `java17` and `springboot` in the `github/actions` ] Slimming down for the `seata-all.jar` ] skip reload for redis & db mode ] asynchronous tasks handle global transactions in parallel ] commit/rollback retry timeout event ] add copyright header to test classes ] optimize build UndoItem logic ] file mode does not require lazy processing of sessions ] optimize global session query in file mode ] limit the number of queries in Redis storage mode ] optimize client version transfer in tc batch response to client mode. ] optimize the way to get configuration in DB mode of console ] optimize Nacos config and naming properties ] optimize GC parameters in JVM ] enhance fail/timeout status metric and log level ] filesessionmanager changed to singleton and optimized task thread pool processing ] optimize metrics rt statistics ] support accessKey/secretKey auto configuration ] use HmacSHA256 instead of HmacSHA1 for ram signature ] optimize the default value of the switch ] optimize upgrade the Druid version ] optimize support instance `BusinessActionContext` outside the TCC try method ] optimize `collectRowLocks` method ] optimize github actions ] optimize fix the path of the package ] optimize the log of the server and remove lombok ] optimize Unified management the versions of maven-plugin ] optimize the tests of `SAGA` ] optimize the versions of the dependencies ] optimize disable `SAGA` tests ] optimize upgrade eureka-clients and xstream dependencies ] optimize nacos config and naming properties ] optimize debug log and fix typo ]optimize the log of TM/RM register ] optimize Add logo of registered enterprise,and Change image source to Alicdn ] optimize fix the README.md of metrices module ] optimize remove duplicated word 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>