natehuangting opened a new issue, #19894:
URL: https://github.com/apache/shardingsphere/issues/19894

   ## Bug Report
   The data source is messed up
   
   ### Which version of ShardingSphere did you use?
   master
   
   ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
   ShardingSphere-Proxy
   
   ### Actual behavior
   Data that should have been inserted into another data source is inserted 
into another data source.
   
   ### Reason analyze (If you can)
   In a transaction, different logical libraries are operated, and the wrong 
data source is obtained due to the existence of cachedConnections.
   
   ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule 
configuration, when exception occur etc.
   ```SQL
   mysql> begin;
   ERROR 2013 (HY000): Lost connection to MySQL server during query
   No connection. Trying to reconnect...
   Connection id:    1
   Current database: *** NONE ***
   
   Query OK, 0 rows affected (0.61 sec)
   
   mysql> insert into sharding_blob.t_order_0 values(132, 48,12,3);
   Query OK, 1 row affected (0.22 sec)
   
   mysql> insert into sharding_db2.t_order values(122, 48,12,3);
   ```
   
   `values(122, 48,12,3);` need insert into `xx.xx.xx.34:3366`, but insert into 
`xx.xx.49:3306`;
   
   ### Example codes for reproduce this issue (such as a github link).
   ```yaml
   databaseName: sharding_blob
   
   dataSources:
     ds_0:
       url: jdbc:mysql://xx.xx.49:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
       username: test
       password: 123456
       connectionTimeoutMilliseconds: 30000
       idleTimeoutMilliseconds: 60000
       maxLifetimeMilliseconds: 1800000
       maxPoolSize: 50
       minPoolSize: 1
   ```
   
   ```yaml
   databaseName: sharding_db2
   
   dataSources:
     ds_0:
       url: 
jdbc:mysql://xx.xx.xx.34:3366/demo_ds_0?serverTimezone=UTC&useSSL=false
       username: test
       password: 123456
       connectionTimeoutMilliseconds: 30000
       idleTimeoutMilliseconds: 60000
       maxLifetimeMilliseconds: 1800000
       maxPoolSize: 50
       minPoolSize: 1
     ds_1:
       url: 
jdbc:mysql://xx.xx.xx.49:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
       username: test
       password: 123456
       connectionTimeoutMilliseconds: 30000
       idleTimeoutMilliseconds: 60000
       maxLifetimeMilliseconds: 1800000
       maxPoolSize: 50
       minPoolSize: 1
   
   rules:
     - !SHARDING
       broadcastTables:
         - t_order_9999
       tables:
         t_order:
           actualDataNodes: ds_${0..1}.t_order_${0..1}
           tableStrategy:
             standard:
               shardingColumn: order_id
               shardingAlgorithmName: t_order_inline
           keyGenerateStrategy:
             column: order_id
             keyGeneratorName: snowflake
         t_order_item:
           actualDataNodes: ds_${0..1}.t_order_item_${0..1}
           tableStrategy:
             standard:
               shardingColumn: order_id
               shardingAlgorithmName: t_order_item_inline
           keyGenerateStrategy:
             column: order_item_id
             keyGeneratorName: snowflake
       defaultDatabaseStrategy:
         standard:
           shardingColumn: user_id
           shardingAlgorithmName: database_inline
       defaultTableStrategy:
         none:
       shardingAlgorithms:
         database_inline:
           type: INLINE
           props:
             algorithm-expression: ds_${user_id % 2}
             allow-range-query-with-inline-sharding: true
         t_order_inline:
           type: INLINE
           props:
             algorithm-expression: t_order_${order_id % 2}
             allow-range-query-with-inline-sharding: true
         t_order_item_inline:
           type: INLINE
           props:
             algorithm-expression: t_order_item_${order_id % 2}
             allow-range-query-with-inline-sharding: true
   
       keyGenerators:
         snowflake:
           type: SNOWFLAKE
   
   ```
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: 
[email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to