All Versions
15
Latest Version
Avg Release Cycle
47 days
Latest Release
359 days ago

Changelog History
Page 1

  • v1.4.0 Changes

    November 02, 2020

    πŸš€ Seata 1.4.0 Released.

    🐎 Seata is an easy-to-use, high-performance, open source distributed transaction solution.

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • πŸ”§ [#2380] support yml configuration
    • πŸ‘ [#3191] support jdbc type nclob
    • πŸ‘ [#2676] support least active load balance
    • πŸ‘ [#3198] spring boot support for custom config and registry type
    • πŸ”§ [#2806] support configuring default global transaction timeoutMillis
    • πŸ”§ [#2941] add apollo secret key configuration
    • πŸ‘ [#2080] support ConsistentHashLoadBalance
    • πŸ”’ [#2950] support the reentrant lock in redis module
    • [#2913] The data source proxy mode can be selected as AT or XA
    • πŸ‘ [#2856] support for undoLog using Fst serialization
    • πŸ”’ [#3076] check lock in TC when use @GlobalLock
    • πŸ‘ [#2825] support send authentication msg
    • πŸ”’ [#2962] @GlobalTransactional and @GlobalLock can support customize lock retry config

    πŸ›  bugfix:

    • [#3214] fix the 'RootContext.DEFAULT_BRANCH_TYPE' is wrong in some cases
    • ⚑️ [#3129] forbidding execute SQL which update pk value
    • πŸ”§ [#3205] fix can not get boolean value in configuration
    • [#3170] the disposables tree set won't accept another Disposable with the same priority
    • πŸ“¦ [#3180] serializer fst package name error
    • 🚚 [#3178] remove next line to space
    • ⬆️ [#2929] fix the application was configured to degrade at startup and can't be dynamically switch to upgraded
    • ⚑️ [#3050] fix fetch before images when delete and update statements
    • [#2935] fix saga designer bug that the property box does not switch when switching nodes
    • [#3140] fix Propagation.REQUIRES_NEW and add some comments
    • [#3130] fix some problems in the automatic data source proxy
    • πŸ”’ [#3148] the redis lock key and the session key has conflict
    • [#3136] fix the redis pipeline
    • [#2551] Saga can't be used when the dataSource is AT's dataSourceProxy
    • [#3073] do not proxy connections without an xid
    • [#3074] There is no need to retry if the XA schema cannot find the XID
    • [#3097] fix HttpAutoConfiguration always instantiation in springboot env
    • [#3071] part of the connection is not unpacked
    • πŸ”’ [#3056] fixed a bug that after branch deletion, there are still remaining branch lock
    • πŸ“¦ [#3025] fix the wrong package path
    • πŸ”’ [#3031] redis locker delete lock incomplete
    • [#2973] fix oracle database in field size over 1000
    • πŸ’… [#2986] fix checkstyle plugin can't exclude single file
    • [#2910] fix error registry type comment
    • [#2914] fix branchType not cleaned when consumer is in TCC mode
    • πŸ“œ [#2926] fastjson write undo log not parser
    • [#2897] fix jedis unlock fail
    • βͺ [#2918] fix the isolation problem when rollback in AT mode
    • [#2972] UUIDGenerator generates duplicated id
    • [#2932] nacos-config.py script could not run with namespace
    • [#2900] ColumnUtils add escape with scheme
    • [#2904] fix getConfig cache value is 'null'
    • [#2890] fix misspelling in statelang examples
    • [#3040] fix repeated commit when autocommit is false
    • [#3230] fix use @EnableAutoDataSourceProxy startup failed
    • [#2979] columns of resultset integrated with sharingjdbc need to be lowercase
    • [#3233] fix Collections NPE
    • [#3242] fix batch sql getTableMeta error
    • πŸ‘» [#3246] fix the exception when limit condition contains VariantRefExpr

    ⚑️ optimize:

    • ♻️ [#3062] refactor the redis session store
    • ⚑️ [#3201] optimize the wrong stack not fully display
    • 🚚 [#3117] make log more clearly and remove the useless code
    • ⚑️ [#3134] optimize codes related to Map and List
    • ⚑️ [#3195] optimize XID related codes
    • ⚑️ [#3200] optimize rpc message when message was substring
    • 🚚 [#3186] remove duplicated in string utils
    • 🚚 [#3162] remove repeated conditional tests
    • ⬆️ [#2969] upgrade to druid 1.1.23
    • ⬆️ [#3141] upgrade nacos and FastJSON dependencies
    • πŸ“‡ [#3118] add more configuration tips in additional-spring-configuration-metadata.json
    • [#2597] judging xid status to avoid repeated processing
    • ⚑️ [#3102] optimize ContextCore, can be set 'Object' value
    • ♻️ [#3016] refactor the redis lock string to hash
    • 🚚 [#3046] remove unused code in serializer factory
    • πŸ”§ [#3053] jedis pool adds maxtotal configuration
    • 🚚 [#3012] remove set port repeatedly
    • ⚑️ [#2978] optimize globalCommit for mixed use of AT and TCC
    • [#2967] replace with lambda
    • [#2968] ensure that the register message is sent after RM client initialization
    • ⚑️ [#2945] optimize async commit and reduce one update
    • πŸ“‡ [#2952] optimize additional-spring-configuration-metadata.json
    • ⚑️ [#2920] optimize some grammatical errors
    • πŸ”§ [#2906] added some configuration items to keep consistent with official documents
    • ⚑️ [#3222] optimize fileListener to decrease cpu time usage
    • 🚚 [#2843] removed Reloadable from the redis/db SessionManager
    • [#3209] add using company logos

    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.

  • v1.3.0 Changes

    July 15, 2020

    πŸš€ Seata 1.3.0 Released.

    🐎 Seata is an easy-to-use, high-performance, open source distributed transaction solution.

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • πŸ‘ [#2398] support multi pk for MySQL
    • πŸ‘ [#2484] store mode support redis
    • πŸ‘ [#2817] Saga StateMachine engine and Designer support Groovy Script Task
    • πŸ‘ [#2646] server support for HikariCP
    • ⬇️ [#2253] support for dynamic upgrade and downgrade
    • πŸ‘ [#2565] support for transaction annotations on classes
    • πŸ‘ [#2510] support LZ4 compressor
    • πŸ‘ [#2622] support version valid check
    • πŸ‘ [#2658] dataSources support different permissions of Oracle users
    • πŸ”§ [#2620] support group configuration in Nacos registry
    • [#2699] compatible with ACM
    • ⚑️ [#2509] support for undo full data columns on update operate
    • πŸ‘ [#2584] StateHandlerInterceptor and StateRouterInterceptor support SPI
    • πŸ‘ [#2808] server check auth support SPI
    • [#2616] TCC adapter for Dubbo And Sofa reference annotation
    • πŸ“œ [#2831] Saga support jackson json parser
    • πŸ‘ [#2554] support zk serializer
    • πŸ‘ [#2708] support jdbc type array, datalink etc
    • πŸ‘ [#2412] xid generation strategy support snowflake
    • πŸ”§ [#2611] support the cache of configuration values

    πŸ›  bugfix:

    • [#2893] fix get table meta failed in postgresql
    • [#2887] fix rm client receive response logic
    • [#2610] nacos-script adapt to Nacos 1.2 on permission control
    • πŸ’… [#2588] fix when the check_style does not pass, no detail information output
    • 🚦 [#2543] fix ApplicationKeeper ShutdownHook signal invalid.
    • [#2598] fix unable to register Nacos
    • [#2618] fix could not create folder in zookeeper
    • [#2628] fix get tableName and alias error in mysql delete
    • πŸ’… [#2639] fix Apollo configuration load fail due to camel style
    • [#2629] fix duplicated resource id with different currentSchema in PostgreSQL
    • [#2659] fix mysql insert use select last_insert_id is undo_log id value
    • [#2670] fix dataSource initialize more times
    • [#2617] fix incorrect getAnnotation about class and method
    • [#2603] fix can't get generated keys value.
    • [#2725] fix other expression before insert row primary key.
    • [#2698] fix nested GlobalLock unbind prematurely
    • βͺ [#2755] fix not return value when branchCommit and branchRollback throw exception
    • βͺ [#2777] fix can't rollback when set rollback retry count was zero.
    • [#2812] fix get PostgreSQL tableMeta error when using shardingSphere
    • βͺ [#2760] fix TM rollback fail throw the seata exception, rollback retrying throw NPE
    • [#2837] fix wrong constant used in the saga SubStateMachineHandler
    • πŸ‘» [#2839] fix business exception is lost when compensation succeed in saga mode
    • πŸ“œ [#2650] fix TCC and Saga branches will also parse SQL in AbstractConnectionProxy
    • [#2850] Fix Saga designer rounded polylines cause page crashes
    • [#2868] fix can't find AsyncEventBus dependency
    • [#2871] fix get tableMeta failed when table name like 'schame'.'table'
    • [#2685] fix oracle insert sql use sysdate error.
    • [#2872] fix missing escape char in the primary key for the undo sql
    • [#2875] fix ColumnUtils delEscape with scheme error

    ⚑️ optimize:

    • [#2573] replace Random with ThreadLocalRandom in RandomLoadBalance
    • ♻️ [#2540] refactor rpc request method and rpc interface
    • ⚑️ [#2642] optimize unsafe double-checked locking in SofaRegistryServiceImpl
    • [#2561] keep the same logic of get tableMeta
    • 0️⃣ [#2591] support the default timeout for zookeeper register
    • πŸ“¦ [#2601] repackage spring-boot-starter
    • [#2415] distinguish database behavior according to the branch type
    • 🚚 [#2647] remove the unused variable
    • ⚑️ [#2649] optimize get tableMeta
    • πŸ‘ [#2652] consul supports custom port
    • πŸ‘· [#2660] modify IdWorker position to make it reasonable
    • πŸ’… [#2625] polish testing code, replace with Mockito.verify
    • [#2666] add using users organization logos
    • πŸ‘• [#2680] Change GlobalTransactionalInterceptor to singleton
    • ⚑️ [#2683] optimize TccActionInterceptor log print
    • ♻️ [#2477] refactoring client request processing logic.
    • ♻️ [#2280] refactor InsertExecutor
    • 🐎 [#2044] optimize ColumnUtils.addEscape method performance
    • ⚑️ [#2730] optimize get config type from configuration
    • ⚑️ [#2723] optimize get tableMeta in postgreSql
    • [#2734] change postgreSql driver scope to provide
    • ⚑️ [#2749] optimize logger class misWrite
    • [#2751] copy jdbc driver to image
    • ⚑️ [#2759] optimized the generation rules of thread name factory
    • πŸ‘ [#2607] support insert pkValue support check
    • ⚑️ [#2765] optimize the processing logic of XA's RM for unsupported transaction resources.
    • βœ… [#2771] disable unstable unit tests
    • [#2779] CollectionUtils.decodeMap method variables ConcurrentHashMap refact to HashMap
    • ♻️ [#2486] refactor server handle request process logic from client
    • πŸ‘ [#2770] TCC two phase method return type supports void
    • ⚑️ [#2788] optimize server log pattern and support for colored log
    • ⚑️ [#2816] optimize create clazz instance
    • πŸ‘· [#2787] modify workerId generation method
    • ⚑️ [#2776] optimize paramsPlaceHolder generate by StringUtils.repeat()
    • [#2799] code opt format
    • ⬇️ [#2829] downgrade check unlock and asynchronous
    • ✏️ [#2842] code opt format about the sqls and typos
    • ⚑️ [#2242] optimize PreparedStatementProxy initialization logic
    • [#2613] fix typo and some coding guidelines

    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.

  • v1.2.0 Changes

    April 21, 2020

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • πŸ‘ [#2381] support XA transaction mode
    • πŸ†• [#2206] support REQUIRED、REQUIRES_NEW、SUPPORTS and NOT_SUPPORTED transaction propagation
    • ⚑️ [#2112] support batch update and delete with multiple sql
    • πŸ‘ [#2275] support hsf on TCC transaction mode
    • πŸ‘ [#2108] support zip bzip2 7z compressor
    • πŸ‘ [#2328] support for isolated loading of mysql 5.x and 8.x jdbc drivers classes
    • πŸ”§ [#2367] add permission configuration support for Nacos 1.2
    • πŸ‘ [#2359] support propagation.never, propagation.mandatory and transaction suspend and resume api
    • πŸ‘ [#2418] support fst serialization
    • πŸ‘ [#2135] support SPI scope
    • πŸ‘ [#2370] support failureHandler implement can be read from the container
    • πŸ”§ [#2481] support the max wait configuration for db
    • πŸ‘ [#2379] support custom service name when registering with Nacos
    • [#2308] add switch to control whether to register branch on Saga transaction mode
    • 0️⃣ [#2301] support default expr and nextval for postgresql

    πŸ›  bugfix:

    • [#2575] fix executeBatch can not get targetSql in Statement mode
    • [#2283] fix oracle get tableMeta fail
    • πŸ”§ [#2312] fix the judgement of configuration condition
    • [#2309] fix timestamp deserialize lost nano
    • πŸ’… [#2292] fix some configuration not converted to camel style
    • πŸ—„ [#2306] fix deprecated maven prerequisites
    • πŸ”’ [#2287] fix connection context can't be remove when global lock retry
    • πŸ”§ [#2361] fix the error configuration name
    • βͺ [#2333] fix wrong exception information when rollback fails due to dirty data
    • πŸ”§ [#2390] fix configuration item containing spaces
    • [#2408] fix missing sequence in undo_log table
    • πŸ”§ [#2391] fix configuration exceptions lead to increased CPU usage
    • [#2427] fix StringUtils.toString(o) StackOverflowError
    • [#2384] fix StateMachineRepository#getStateMachineById will replace the last version in cache
    • [#2323] fix wrong proxy of datasource bean
    • [#2466] fix memory visibility of active attribute in file mode
    • πŸ‘ [#2349] fix insert sql primary key value support check
    • [#2479] fix postgresql schema when not use lowerCase
    • [#2449] fix can't get table structure when startup
    • [#2505] fix bug of session store path value judgment
    • [#2456] fix server encode request error
    • [#2495] fix the NPE and reduce the request when lockkey is null
    • [#2490] fix RpcContext.addResource when resource is null
    • βœ… [#2419] fix http testcase run failed
    • πŸ”§ [#2535] fix wrong configuration name in config.txt
    • πŸ”§ [#2524] registration service configuration missing and inconsistent
    • [#2473] fix flush condition of disk in file mode
    • πŸ’… [#2455] fix child module can't execute copyright and checkstyle inspection

    ⚑️ optimize:

    • [#2409] reduce the db and network request when undoLog or lockKey is empty
    • [#2329] separate the different storage pattern processing logic
    • ⚑️ [#2354] optimize the unsupported listener logic for spring cloud config
    • ⚑️ [#2320] optimize protostuff and kryo serialize timestamp
    • ⚑️ [#2307] optimize transaction context switch logic when switch transaction mode
    • ⚑️ [#2364] optimize generated instances that were not actually used when the class was loaded
    • πŸ”§ [#2368] add zk missing configuration
    • [#2351] add get local global status
    • ⚑️ [#2529] optimize druid parameter
    • βœ… [#2288] codecov.yml ignore mock test
    • 🚚 [#2297] remove duplicated dependency
    • [#2336] add using organization logos
    • πŸ”§ [#2348] remove redundant configuration
    • ⚑️ [#2362] optimize stackTraceLogger param
    • ⚑️ [#2382] optimize RegistryFactory singleton pattern and RegistryType judgement
    • ⚑️ [#2400] optimize the magic num of date at UUIDGenerator
    • [#2397] fix typo
    • [#2407] inaccurate judgment may be lead to NPE
    • ⚑️ [#2402] optimize the rm and tm register log
    • [#2422] add link of script in document
    • ⚑️ [#2440] optimize contact us and startup log
    • ⚑️ [#2445] optimize the class registration method for kryo and fst
    • ♻️ [#2372] refactor lock store sql with SPI
    • ⚑️ [#2453] optimize unnecessary server configuration item
    • ♻️ [#2369] refactor log store sql with SPI
    • ⚑️ [#2526] optimize spring-boot startup log
    • 🚚 [#2530] remove use connPool
    • ⚑️ [#2489] optimize exceptionHandler's method signature
    • [#2494] reduce the redundant code
    • ⚑️ [#2523] optimize abnormal global transaction's output logs by frequency
    • ⚑️ [#2549] optimize the exception log for ZookeeperConfiguration
    • ⚑️ [#2558] optimize config and server module log
    • ✨ [#2464] enhance Saga transaction editor
    • [#2553] add some notes about using scripts

    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.

  • v1.1.0 Changes

    February 20, 2020

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • πŸ‘ [#2200] support postgresql(client and server)
    • [#1746] integrate with httpClient
    • ⏱ [#2240] support custom saga transaction recovery strategy on transaction timeout
    • πŸ‘ [#1693] support for druid class isolation loading
    • πŸ‘ [#2245] zookeeper digest support
    • [#2239] compatibility dubbo 2.7.4+
    • πŸ”§ [#2203] support nacos configuration group
    • πŸ”§ [#2086] support apollo configuration namespace
    • πŸ‘ [#2106] support FastThreadLocalContextCore
    • πŸ“œ [#1703] create sql parser SPI and a druid type sql parser
    • [#2151] Saga provide a switch to skip branch report on branch success

    πŸ›  bugfix:

    • πŸ‘· [#2270] fix worker size not support enum type and some minor problem
    • [#2258] fix channelHandler not sharable
    • [#2261] fix ApplicationContext has not been refreshed
    • [#2262] fix nacos script set group error
    • [#2249] fix saga statemachine status incorrect on register branch failed
    • [#2126] fix escape characters for column and table names
    • [#2234] fix type error when fastjson deserialize long type
    • 🏁 [#2237] fix DefaultCoordinatorTest failed in Windows OS
    • [#2233] fix fastjson undo filter tableMeta
    • πŸ”§ [#2172] fix configuration center can't read configuration using SpringCloudConfig
    • [#2217] fix wrong property names in seata-spring-boot-starter
    • [#2219] fix the value of disableGlobalTransaction not being read correctly
    • βͺ [#2187] fix the wrong rollback sequence caused by the same record request from different transaction branches on different servers
    • [#2175] fix direct buffer OOM
    • βͺ [#2210] fix retry expired commit and rollback globalSession can't be removed
    • [#2179] fix type casting problem when using redis as registry
    • [#2192] fix override eureka getHostName() return ipAddress
    • πŸš€ [#2198] fix global lock not released when rollback retry timeout
    • [#2167] fix saga concurrent asynchronous execution with duplicate primary key xid
    • [#2185] fix issue of judgement container in kubernetes
    • [#2145] fix Saga report branch status incorrect when service retried succeed
    • βͺ [#2113] fix when branchRollback failed, it will trigger retry of multi-tc

    ⚑️ optimize:

    • ⚑️ [#2255] optimize some default configuration value
    • πŸ’… [#2230] unify the config style and keep defaults consistent
    • ⚑️ [#1935] some about rpc optimize
    • ⚑️ [#2215] optimize handing saga transaction timeout
    • [#2227] separate tc In/Outbound interface
    • 0️⃣ [#2033] an optimization about DefaultRemotingParser
    • [#1688] reduce unnecessary dependences in client side
    • [#2134] separate the different transaction pattern processing logic
    • πŸ’… [#2224] optimize ContextCoreLoader code style
    • ⚑️ [#2171] optimize script and add script usage demo
    • [#2208] replace getDbType with LoadLevel name
    • ⚑️ [#2182] optimize configuration item prefix judgment
    • πŸ’… [#2211] optimize RootContext code style
    • πŸ’… [#2140] optimize GzipUtil code style
    • ♻️ [#2209] refactor seata-discovery more readable
    • ♻️ [#2055] refactor tableMetaCache and undoLogManager with SPI
    • ♻️ [#2184] refactor seata-config more readable
    • ♻️ [#2095] refactor of auto proxying of datasource
    • 0️⃣ [#2178] saga statemachine designer add default properties for catch node
    • πŸ’… [#2103] optimize tcc module code style
    • πŸ“¦ [#2125] change the package path of MySQL recognizer
    • ✏️ [#2176] fix typos
    • ♻️ [#2156] refactor sql parser type druid as constant
    • βœ… [#2170] enhance test coverage of seata common
    • [#2139] gracefully close resources
    • πŸ“¦ [#2097] use serializer package name instead of codec
    • πŸ’… [#2159] optimize spring module code style
    • ⚑️ [#2036] optimize Dubbo parser
    • πŸ’… [#2062] optimize seata-rm-datasource module code style
    • ⚑️ [#2146] optimize log specifications
    • [#2038] simplify to make seata-common more readable
    • ✏️ [#2120] fix typos
    • ✨ [#2078] enhance oracle table meta cache code coverage
    • ✏️ [#2115] fix typos
    • πŸ’… [#2099] optimize tm module code style

    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.

  • v1.0.0 Changes

    December 20, 2019

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • [#1966] add single send request for client
    • πŸ”€ [#2004] add config center synchronization script
    • [#1997] provides a tool for generating graphics that show the state machine execution path
    • πŸ‘ [#1992] support dynamic disable
    • πŸ‘ [#1898] support dynamic config
    • [#1983] add hessian codec for rpc serialization
    • [#1960] Provide a visual graph designer for Seata Saga StateMachine based on GGEditor
    • πŸ‘ [#1900] Saga state language support "Retry" service when error occurred
    • πŸ— [#1885] add configuration for build docker image in server module
    • πŸ‘ [#1914] support where condition exists for Oracle
    • πŸ‘ [#1878] support exists in where condition
    • [#1871] adapt springcloud-alibaba-seata autoconfig
    • πŸ‘ [#1844] StateMachine ServiceTask supports asynchronous execution
    • [#1742] add seata-spring-boot-starter
    • πŸ‘ [#1460] support gzip compressor
    • πŸ‘ [#1492] support gRpc

    πŸ›  bugfix:

    • [#2066] fix thread unsafe which missing double check when initial eureka client
    • βͺ [#2059] fix repeated rollback caused by asynchronous rollback thread
    • [#2050] fix if add configListener but dataId not exist, it will throw NPE
    • [#2053] fix when tableName is keyword, the insert operation will get afterImage fail
    • βͺ [#2054] fix RetryRollbackingSessionManager lost Rollbacking
    • [#2043] fix startup failure when dynamic proxy is turned on and use druid-spring-boot-starter
    • [#1668] fix sql statement escape symbol
    • [#2029] fix seata-spring-boot-starter does not work
    • πŸš€ [#2037] fix mysql connection unable to release
    • [#2032] fix Etcd3Configuration FILE_CONFIG reference incorrect
    • [#1929] fix duplicated table meta cache key
    • [#1996] fix auto proxying of datasource which has final modifier
    • πŸ—„ [#2001] replace deprecated jvm args
    • [#1984] fix presuppose environment variable and replace base image for tool
    • βœ… [#1978] fix FileTransactionStoreManagerTest failed on wins OS
    • [#1953] fix get table meta failed with catalog
    • [#1973] fix error of get server port in container
    • πŸ”’ [#1905] solve the lock_key length problem
    • [#1927] fix class with private access constructors should not be loaded by SPI.
    • 🌲 [#1961] fix travis-ci exceeded the maximum log length
    • [#1893] fix saga dose not delete branches when transaction ended
    • πŸ— [#1932] fix issue of doesn't match environment when build docker image
    • [#1912] fix string.format() method formatting error
    • 🀑 [#1917] fix NullPointerException in DB mock during CI
    • [#1909] fix xidInterceptorType is null
    • [#1902] fix NPE in UndoExecutorFactory
    • [#1789] fix xid header lowercase
    • [#1889] fix register branch thread hang on tcc mode
    • πŸ‘ [#1813] fix TCC does not support cross-service
    • βͺ [#1825] fix global status inconsistent when rollback and branch register are concurrent
    • [#1850] fix server restart not recover max sessionId on db mode
    • [#1879] fix jdbc parameter set null
    • [#1874] fix when write the new file throw ClosedChannelException
    • βͺ [#1863] fix the other of column type cause rollback fail
    • πŸ‘ [#1837] fix saga ExpressionEvaluator not support null value
    • πŸ”Š [#1810] fix statemachine def can't store to db and provide query the state logs
    • 🌲 [#1834] fix StateInstance log can't record output parameters
    • 0️⃣ [#1856] fix protostuff undo log get default content
    • [#1845] fix when branchCommit failed,it will trigger retry of multi-tc and throw npe
    • [#1858] fix Global transaction does not work
    • [#1846] fix multi-thread concurrent add listener problem
    • πŸ”’ [#1839] fix filter repeated lock
    • [#1768] fix problem when set useInformationSchema true and table name was keyword
    • πŸ‘» [#1796] fix unexcepted exception can roll back
    • [#1805] fix connectionproxy prepareStatement not in global transaction
    • ⚑️ [#1780] fix can't use select for update in oracle
    • [#1802] changing HashMap to LinkedHashMap for deterministic iterations
    • [#1793] fix auto proxy for multiple-datasource does not work
    • [#1788] fix mysql can not get primary key value
    • [#1764] fix jdk 11 remoteAddress is null
    • βœ… [#1778] fix clean up resources in time to avoid mutual influence between unit tests
    • πŸ— [#1777] fix DeleteExecutor buildBeforeImageSQL keyword checker by db type

    ⚑️ optimize:

    • ⚑️ [#2068] optimize get database connection
    • 🚚 [#2056] remove non-javadoc element
    • ⚑️ [#1775] optimize datasource manager branch rollback exception log
    • [#2000] classify script to correspond directory
    • βœ… [#2007] enhance test coverage of seata common
    • 🐳 [#1969] add ops script for Docker-Compose, Kubernetes and Helm
    • 🐳 [#1967] Add Dockerfile
    • ⚑️ [#2018] optimize about ConfigFuture
    • ⚑️ [#2020] optimize saga log output
    • [#1975] Flatten Saga nested transactions
    • [#1980] show the applicationId when register TM
    • πŸ”§ [#1994] rename zk configuration root path.
    • [#1990] add netty config constant keys.
    • ⚑️ [#1979] optimize get select for update recognizer
    • [#1957] load keywordChecker through SPI
    • πŸ›  [#1956] modify no available server error more clearly, and fixed NP
    • [#1958] transform desinger json to statemachine standard json
    • [#1951] add using organization logo
    • [#1950] leak of error trace while handleAsyncCommitting
    • πŸ‘ [#1931] nacos-config.py support namespace
    • ⚑️ [#1938] optimize the speed when batch insert or batch update
    • [#1930] reduce HashMap initial size
    • πŸ’… [#1919] force check code style
    • ⚑️ [#1918] optimize assert throw exception
    • [#1911] javadoc should be used for classes, class variables and methods.
    • 🚚 [#1920] use iterator to remove timeout future.
    • πŸ‘ [#1907] encapsulation determines the supported database type
    • [#1903] batch query branchSession by xid list
    • [#1910] all Override methods must be annotated with @override
    • πŸ‘» [#1906] add exception system exit code when rpcServer init.
    • 🚚 [#1897] remove clientTest it's not use
    • [#1883] restructure SQLRecognizer and UndoExecutor
    • [#1890] reformat saga module
    • 🐎 [#1798] improving method format performance
    • ⚑️ [#1884] optimize auto closeable
    • [#1869] add phase one successful reporting switch
    • [#1842] add some init script
    • πŸ”§ [#1838] simplify and groom configuration items
    • [#1866] server lack of error trace
    • [#1867] optimization of seata-spring-boot-starter
    • βœ… [#1817] add unit test for seata-tm module
    • [#1823] reduce server rpc with db
    • [#1835] SagaTransactionalTemplate provide reloadTransaction method
    • ⚑️ [#1861] optimize no primary key output log
    • [#1836] change "IsPersist" property value type from String to Boolean
    • 🚚 [#1824] remove deprecated JVM arguments in Java 11
    • πŸ’… [#1820] adjust check style
    • 🌲 [#1806] format error log
    • ⚑️ [#1815] update codecov.yml
    • πŸ”§ [#1811] adjust codecov configuration
    • πŸ”€ [#1799] reduce unnecessary synchronized
    • 🀑 [#1674] increase rm code coverage by db mock
    • [#1710] add prefix counter for NamedThreadFactory
    • [#1790] format seata server register eureka instance id
    • [#1760] put message to logQueue
    • 🌲 [#1787] make rpc remoting log easier to read
    • [#1786] simplify code
    • 🚚 [#1766] remove unused method
    • πŸš€ [#1770] string splice and release lock

    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.

  • v0.9.0 Changes

    October 16, 2019

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • [#1608] Saga implementation base on state machine
    • πŸ‘ [#1625] support custom config and registry type
    • πŸ‘ [#1656] support spring cloud config
    • πŸ‘ [#1689] support -e startup parameter for specifying the environment name
    • βͺ [#1739] support retry when tm commit or rollback failed

    πŸ›  bugfix:

    • ⚑️ [#1605] fix deadlocks that can be caused by object locks and global locks and optimize the granularity of locks
    • ⚑️ [#1685] fix pk too long in lock table on db mode and optimize error log
    • [#1691] fix can't access private member of DruidDataSourceWrapper
    • [#1699] fix use 'in' and 'between' in where condition for Oracle and Mysql
    • βœ… [#1713] fix LockManagerTest.concurrentUseAbilityTest assertion condition
    • [#1720] fix can't refresh table meta data for oracle
    • [#1729] fix oracle batch insert error
    • βͺ [#1735] clean xid when tm commit or rollback failed
    • πŸ‘ [#1749] fix undo support oracle table meta cache
    • πŸš€ [#1751] fix memory lock is not released due to hash conflict
    • βͺ [#1761] fix oracle rollback failed when the table has null Blob Clob value
    • πŸ‘ [#1759] fix saga service method not support interface type parameter
    • [#1401] fix the first registration resource is null when RM starts

    ⚑️ optimize:

    • 🚚 [#1701] remove unused imports
    • [#1705] Based on Java5 optimization
    • ⚑️ [#1706] optimize inner class to static class
    • 0️⃣ [#1707] default charset use StandardCharsets.UTF_8 instead
    • [#1712] abstract undolog manager class
    • [#1722] simplify to make codes more readable
    • 🌲 [#1726] format log messages
    • [#1738] add server's jvm parameters
    • 🌲 [#1743] improve the efficiency of the batch log
    • [#1747] use raw types instead of boxing types
    • [#1750] abstract tableMeta cache class
    • βœ… [#1755] enhance test coverage of seata-common module
    • πŸ”’ [#1756] security: upgrade jackson to avoid security vulnerabilities
    • ⚑️ [#1657] optimize the problem of large direct buffer when file rolling in file storage mode

    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.

  • v0.8.1 Changes

    September 18, 2019

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • πŸ‘ [#1598] support profile to use absolute path
    • πŸ”§ [#1617] support profile’s(registry.confοΌ‰ name configurable
    • πŸ‘ [#1418] support undo_log kryo serializer
    • πŸ”Œ [#1489] support protobuf maven plugin
    • πŸ‘ [#1437] support kryo codec
    • 🀑 [#1478] support db mock
    • πŸ‘ [#1512] extended support for mysql and oracle multiple insert batch syntax
    • πŸ‘ [#1496] support auto proxy of DataSource

    πŸ›  bugfix:

    • ⚑️ [#1646] fix selectForUpdate lockQuery exception in file mode
    • [#1572] fix get tablemeta fail in oracle when table name was lower case
    • [#1663] fix get tablemeta fail when table name was keyword
    • βͺ [#1666] fix restore connection's autocommit
    • [#1643] fix serialize and deserialize in java.sql.Blob, java.sql.Clob
    • πŸ‘ [#1628] fix oracle support ROWNUM query
    • [#1552] fix BufferOverflow when BranchSession size too large
    • [#1609] fix thread unsafe of oracle keyword checker
    • [#1599] fix thread unsafe of mysql keyword checker
    • [#1607] fix NoSuchMethodError when the version of druid used < 1.1.3
    • [#1581] fix missing some length in GlobalSession and FileTransactionStoreManager
    • 0️⃣ [#1594] fix nacos's default namespace
    • [#1550] fix calculate BranchSession size missing xidBytes.length
    • [#1558] fix NPE when the rpcMessage's body is null
    • [#1505] fix bind public network address listen failed
    • [#1539] fix nacos namespace setting does not take effect
    • [#1537] fix nacos-config.txt missing store.db.driver-class-name property
    • βœ… [#1522] fix ProtocolV1CodecTest testAll may be appears test not pass
    • [#1525] fix when getAfterImage error, trx autocommit
    • [#1518] fix EnhancedServiceLoader may be appears load class error
    • [#1514] fix when lack serialization dependence can't generate undolog and report true
    • βœ… [#1445] fix DefaultCoordinatorMetricsTest UT failed
    • [#1481] fix TableMetaCache refresh problem in multiple datasource

    ⚑️ optimize:

    • ⚑️ [#1629] optimize the watcher efficiency of etcd3
    • [#1661] optimize global_table insert transaction_name size
    • ⚑️ [#1633] optimize branch transaction repeated reporting false
    • ⚑️ [#1654] optimize wrong usage of slf4j
    • ⚑️ [#1593] optimize and standardize server log
    • ⚑️ [#1648] optimize transaction_name length when building the table
    • [#1576] eliminate the impact of instructions reordering on session async committing task
    • ⚑️ [#1618] optimize undolog manager and fix delete undolog support oracle
    • πŸ”’ [#1469] reduce the number of lock conflict exception
    • [#1619] replace StringBuffer with StringBuilder
    • ⚑️ [#1580] optimize LockKeyConflictException and change register method
    • ⚑️ [#1574] optimize once delete GlobalSession locks for db mode when commit success
    • ⚑️ [#1601] optimize typo
    • πŸ”’ [#1602] upgrade fastjson version to 1.2.60 for security issue
    • ⚑️ [#1583] optimize get oracle primary index
    • [#1575] add UT for RegisterTMRequest
    • ⚑️ [#1559] optimize delay to delete the expired undo log
    • [#1547] TableRecords delete jackson annotation
    • ⚑️ [#1542] optimize AbstractSessionManager debug log
    • 🚚 [#1535] remove H2 and pgsql get primary index code and close resultSet
    • [#1541] code clean
    • 🚚 [#1544] remove Chinese comment
    • ♻️ [#1533] refactor of the logics of Multi-configuration Isolation
    • [#1493] add table meta checker switch
    • πŸ‘» [#1530] throw Exception when no index in the table
    • [#1444] simplify operation of map
    • [#1497] add seata-all dependencies
    • 🚚 [#1490] remove unnecessary code

    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.

  • v0.8.0 Changes

    August 16, 2019

    ⚑️ The version is updated as follows:

    πŸ”‹ feature:

    • πŸ‘ [#902] support oracle database in AT mode
    • πŸ‘ [#1447] support oracle batch operation
    • πŸ”§ [#1392] support undo log table name configurable
    • ⚑️ [#1353] support mysql batch update and batch delete
    • πŸ‘ [#1379] support -Dkey=value SysConfig
    • ⏱ [#1365] support schedule check table mata
    • πŸ‘ [#1371] support mysql preparedStatement batch self-increment primary keys
    • πŸ‘ [#1337] support mysql batch insert for non-self-inc primary keys
    • πŸ‘ [#1453] support delete expired undolog use protobuf codec
    • πŸ‘ [#1235] support to delete undolog in back task use seata codec
    • πŸ”§ [#1323] support database driver class configuration item

    πŸ›  bugfix:

    • [#1456] fix xid would be duplicate in cluster mode
    • [#1454] fix DateCompareUtils can not compare byte array
    • ⚑️ [#1452] fix select for update retry get dirty value
    • [#1443] fix serialize the type of timestamp lost nano value
    • πŸ”§ [#1374] fix store.mode get configuration inconsistent
    • [#1409] fix map.toString() error
    • πŸ›  [#1344] fix ByteBuffer allocates a fixed length, which cause BufferOverflowException
    • [#1419] fix if the connection is autocommit=false will cause fail to delete
    • πŸš€ [#1370] fix begin failed not release channel and throw exception
    • [#1396] fix ClassNotFound problem for Nacos config implementation
    • [#1395] fix check null channel
    • βͺ [#1385] fix get SessionManager error when rollback retry timeout
    • 🚚 [#1378] fix clusterAddressMap did not remove the instance after the instance was offline
    • πŸ”§ [#1332] fix nacos script initialization the configuration value contains ’=β€˜ failed
    • βͺ [#1341] fix multiple operations on the same record in the same local transaction, rollback failed
    • βͺ [#1339] fix when image is EmptyTableRecords, rollback failed
    • [#1314] fix if don't specify the startup parameters, db mode don't take effect
    • [#1342] fix ByteBuffer allocate len error
    • [#1333] fix netty memory leak
    • πŸ”’ [#1338] fix lock is not acquired when multiple branches have cross locks
    • πŸ”’ [#1334] fix lock key npe bug, when tcc use protobuf
    • 0️⃣ [#1313] fix DefaultFailureHandler check status NPE

    ⚑️ optimize:

    • ⚑️ [#1474] optimize data image compare log
    • ⚑️ [#1446] optimize the server's schedule tasks
    • ♻️ [#1448] refactor executor class remove the duplicate code
    • πŸ“¦ [#1408] change ChannelFactory package in TmRpcClientTest
    • [#1432] implement equals and hashcode of the object that is used as the hash key
    • 🚚 [#1429] remove unused imports
    • [#1426] fix syntax error
    • [#1425] fix typo
    • ⚑️ [#1356] optimize sql join
    • ⚑️ [#1416] optimize some javadoc comments
    • ⚑️ [#1417] optimize oracle keyword
    • ⚑️ [#1404] optimize BranchStatus comments
    • ⚑️ [#1414] optimize mysql keywords
    • βœ… [#1407] disable unstable unit tests
    • ⚑️ [#1398] optimize eureka registry serviceUrl with default port
    • ⚑️ [#1364] optimize table columns name defined as constants
    • πŸ‘ [#1389] add the oracle support prompt information
    • 🌲 [#1375] add compareRows failed log
    • [#1358] clean temporary file file runs when UT is finished
    • βœ… [#1355] add test case for rpc protocol
    • [#1357] code clean of Consul&Etcd config center implementations
    • 🌲 [#1345] code clean and modify log level
    • [#1329] add STORE_FILE_DIR default value

    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.

  • v0.7.1 Changes

    July 15, 2019
    • [#1297] seata-spring add dependency seata-codec-all
    • [#1305] fix unable to instantiate org.springframework.cloud.alibaba.seata.GlobalTransactionAutoConfiguration
    • πŸ›  fix in the 0.7.0 version, unable to get the seata dependency problem from the central repository
  • v0.7.0 Changes

    July 12, 2019
    • [#1276] New RPC protocol
    • πŸ”§ [#1266] add enabled configuration for metrics (97)
    • πŸ‘ [#1236] support metrics for tc server
    • ⚑️ [#1214] add config shutdown.wait and update version to 0.7.0-SNAPSHOT (1212)
    • 0️⃣ [#1206] setting default values using trinomial operators
    • [#1174] add nacos config initialization python script (1172)
    • [#1145] Change LockMode from MEMORY to DB when the StoreMode is DB
    • πŸ“œ [#1125] Add protostuff as serializer of UndoLogParser.
    • πŸ‘ [#1007] support protobuf feature (97)
    • πŸ›  [#1286] bugfix: add some configuration and exclude log dependency (97)
    • πŸ›  [#1278] bugfix: pass txId into TCC interceptor
    • [#1274] 1. optimization SQL join
    • πŸ›  [#1271] bugfix: @GlobalLock get error with Response (97, 1224)
    • πŸ›  [#1270] bugfix: print error exception
    • πŸ›  [#1269] bugfix: fix TMClinet reconnect exception
    • [#1265] Invoke addBatch of targetStatement if not in global transaction
    • ⚑️ [#1264] configuration:update ignore and coverage (97)
    • πŸ“„ [#1263] docs: add doc about contribution (97)
    • πŸ›  [#1262] bugfix: fix find target class issue if scan the web scope bean such a… (97)
    • 🌲 [#1261] add warn log when fail to get auto-generated keys. (#1259) (97, 1259)
    • 🚚 [#1258] move metrics config keys and simplify metrics modules dependency
    • [#1250] fix codecov for protobuf (97)
    • ♻️ [#1245] refactor metrics let it initialize by configuration
    • [#1242] perfect sql
    • πŸ›  [#1239] bugfix:fix CME in ZK discovery implementation. (97)
    • πŸ›  [#1237] bugfix:server start and handle remain branch session may cause NPE (97)
    • βœ… [#1232] Add unit tests for io.seata.common.util CompressUtil, DurationUtil, ReflectionUtil
    • [#1230] prioritize global transaction scanner #1227 (97, 1227)
    • [#1229] fix a typo (97)
    • ⚑️ [#1225] optimize the name of seata config environment. (97, 1209)
    • [#1222] fix bug of refresh cluster (1160)
    • πŸ›  [#1221] bugfix: fix in which SQL and database field names are inconsistent#1217 (1217)
    • πŸ›  [#1218] bugfix:containsPK ignoreCase (1217)
    • ⚑️ [#1210] 1. optimize arrayList single value
    • [#1207] All overriding methods must be preceded by @override annotations.
    • 🚚 [#1205] remove useless code
    • βͺ [#1202] output branchRollback failed log (97)
    • πŸ›  [#1200] bugfix:DefaultCoreTest.branchRegisterTest (1199)
    • [#1198] check the third-party dependencies license (1197)
    • [#1195] Clear the transaction context in TCC prepare methed
    • [#1193] Get lockmode by the storemode
    • 🚚 [#1190] remove unused semicolons (97, 540)
    • 0️⃣ [#1179] fix jackson default content
    • πŸ”’ [#1177] write session may be failed,throw TransactionException but hold lock. (97, 1154)
    • πŸ›  [#1169] bugfix: use Set to avoid duplicate listeners. fixes #1126 (1126)
    • [#1165] add a missing placeholder in INSERT_UNDO_LOG_SQL (1164)
    • [#1162] Reset initialized flag & instance while destroy(). split [##1105 (983, 97)
    • πŸ›  [#1159] bugfix: AT mode resourceId(row_key) too long (97, 1158)
    • ⚑️ [#1150] updates seata's version in README.md (97)
    • πŸ›  [#1148] bugfix:the buffer may cause overflows when sql statement is long
    • πŸ“¦ [#1146] revise the package name of the module (97)
    • ♻️ [#1105] refactor TmRpcClient & RmClient for common use. (97)
    • [#1075] Multiple environmental isolation
    • [#768] #751 add event bus mechanism and apply it in tc