Loading sharding-jdbc/src/main/java/io/shardingsphere/core/jdbc/adapter/AbstractConnectionAdapter.java +3 −2 Original line number Diff line number Diff line Loading @@ -24,10 +24,10 @@ import io.shardingsphere.core.hint.HintManagerHolder; import io.shardingsphere.core.jdbc.unsupported.AbstractUnsupportedOperationConnection; import io.shardingsphere.core.routing.router.masterslave.MasterVisitedManager; import io.shardingsphere.core.util.EventBusInstance; import io.shardingsphere.transaction.api.ShardingTransactionManagerFactory; import io.shardingsphere.transaction.api.local.LocalTransactionManager; import io.shardingsphere.transaction.common.TransactionContext; import io.shardingsphere.transaction.common.TransactionContextHolder; import io.shardingsphere.transaction.api.ShardingTransactionManagerFactory; import io.shardingsphere.transaction.common.event.LocalTransactionEvent; import io.shardingsphere.transaction.common.event.TransactionEvent; import io.shardingsphere.transaction.common.event.TransactionEventFactory; Loading Loading @@ -67,7 +67,8 @@ public abstract class AbstractConnectionAdapter extends AbstractUnsupportedOpera * @throws SQLException SQL exception */ public final Connection getConnection(final String dataSourceName) throws SQLException { ShardingTransactionManagerFactory.getTransactionManager(TransactionContextHolder.get().getTransactionType()); TransactionType transactionType = TransactionContextHolder.get().getTransactionType(); TransactionContextHolder.set(new TransactionContext(ShardingTransactionManagerFactory.getShardingTransactionManager(transactionType), transactionType)); if (cachedConnections.containsKey(dataSourceName)) { return cachedConnections.get(dataSourceName); } Loading sharding-jdbc/src/main/java/io/shardingsphere/core/jdbc/adapter/AbstractDataSourceAdapter.java +5 −2 Original line number Diff line number Diff line Loading @@ -19,10 +19,12 @@ package io.shardingsphere.core.jdbc.adapter; import com.google.common.base.Preconditions; import io.shardingsphere.core.constant.DatabaseType; import io.shardingsphere.core.constant.TransactionType; import io.shardingsphere.core.jdbc.unsupported.AbstractUnsupportedOperationDataSource; import io.shardingsphere.core.listener.JDBCListenerRegister; import io.shardingsphere.transaction.common.TransactionContextHolder; import io.shardingsphere.transaction.api.ShardingTransactionManagerFactory; import io.shardingsphere.transaction.common.TransactionContext; import io.shardingsphere.transaction.common.TransactionContextHolder; import lombok.Getter; import javax.sql.DataSource; Loading @@ -40,7 +42,8 @@ import java.util.logging.Logger; public abstract class AbstractDataSourceAdapter extends AbstractUnsupportedOperationDataSource { static { ShardingTransactionManagerFactory.getTransactionManager(TransactionContextHolder.get().getTransactionType()); TransactionType transactionType = TransactionContextHolder.get().getTransactionType(); TransactionContextHolder.set(new TransactionContext(ShardingTransactionManagerFactory.getShardingTransactionManager(transactionType), transactionType)); JDBCListenerRegister.register(); } Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/config/RuleRegistry.java +4 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,8 @@ import io.shardingsphere.jdbc.orchestration.internal.eventbus.ProxyEventBusEvent import io.shardingsphere.proxy.backend.jdbc.datasource.JDBCBackendDataSource; import io.shardingsphere.transaction.api.ShardingTransactionManager; import io.shardingsphere.transaction.api.ShardingTransactionManagerFactory; import io.shardingsphere.transaction.common.TransactionContext; import io.shardingsphere.transaction.common.TransactionContextHolder; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; Loading Loading @@ -106,7 +108,8 @@ public final class RuleRegistry { showSQL = shardingProperties.getValue(ShardingPropertiesConstant.SQL_SHOW); connectionMode = ConnectionMode.valueOf(shardingProperties.<String>getValue(ShardingPropertiesConstant.CONNECTION_MODE)); transactionType = TransactionType.valueOf(shardingProperties.<String>getValue(ShardingPropertiesConstant.PROXY_TRANSACTION_MODE)); transactionManager = ShardingTransactionManagerFactory.getTransactionManager(transactionType); transactionManager = ShardingTransactionManagerFactory.getShardingTransactionManager(transactionType); TransactionContextHolder.set(new TransactionContext(transactionManager, transactionType)); acceptorSize = shardingProperties.getValue(ShardingPropertiesConstant.ACCEPTOR_SIZE); executorSize = shardingProperties.getValue(ShardingPropertiesConstant.EXECUTOR_SIZE); // TODO :jiaqi force off use NIO for backend, this feature is not complete yet Loading sharding-transaction/src/main/java/io/shardingsphere/transaction/api/ShardingTransactionManagerFactory.java +3 −10 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ package io.shardingsphere.transaction.api; import io.shardingsphere.core.constant.TransactionType; import io.shardingsphere.transaction.api.local.LocalTransactionManager; import io.shardingsphere.transaction.api.xa.XATransactionManagerSPILoader; import io.shardingsphere.transaction.common.TransactionContext; import io.shardingsphere.transaction.common.TransactionContextHolder; import lombok.AccessLevel; import lombok.NoArgsConstructor; Loading @@ -39,20 +37,15 @@ public final class ShardingTransactionManagerFactory { * @param transactionType transaction type * @return sharding transaction manager */ public static ShardingTransactionManager getTransactionManager(final TransactionType transactionType) { ShardingTransactionManager result; public static ShardingTransactionManager getShardingTransactionManager(final TransactionType transactionType) { switch (transactionType) { case LOCAL: result = new LocalTransactionManager(); break; return new LocalTransactionManager(); case XA: result = XATransactionManagerSPILoader.getInstance().getTransactionManager(); break; return XATransactionManagerSPILoader.getInstance().getTransactionManager(); case BASE: default: return null; } TransactionContextHolder.set(new TransactionContext(result, transactionType)); return result; } } Loading
sharding-jdbc/src/main/java/io/shardingsphere/core/jdbc/adapter/AbstractConnectionAdapter.java +3 −2 Original line number Diff line number Diff line Loading @@ -24,10 +24,10 @@ import io.shardingsphere.core.hint.HintManagerHolder; import io.shardingsphere.core.jdbc.unsupported.AbstractUnsupportedOperationConnection; import io.shardingsphere.core.routing.router.masterslave.MasterVisitedManager; import io.shardingsphere.core.util.EventBusInstance; import io.shardingsphere.transaction.api.ShardingTransactionManagerFactory; import io.shardingsphere.transaction.api.local.LocalTransactionManager; import io.shardingsphere.transaction.common.TransactionContext; import io.shardingsphere.transaction.common.TransactionContextHolder; import io.shardingsphere.transaction.api.ShardingTransactionManagerFactory; import io.shardingsphere.transaction.common.event.LocalTransactionEvent; import io.shardingsphere.transaction.common.event.TransactionEvent; import io.shardingsphere.transaction.common.event.TransactionEventFactory; Loading Loading @@ -67,7 +67,8 @@ public abstract class AbstractConnectionAdapter extends AbstractUnsupportedOpera * @throws SQLException SQL exception */ public final Connection getConnection(final String dataSourceName) throws SQLException { ShardingTransactionManagerFactory.getTransactionManager(TransactionContextHolder.get().getTransactionType()); TransactionType transactionType = TransactionContextHolder.get().getTransactionType(); TransactionContextHolder.set(new TransactionContext(ShardingTransactionManagerFactory.getShardingTransactionManager(transactionType), transactionType)); if (cachedConnections.containsKey(dataSourceName)) { return cachedConnections.get(dataSourceName); } Loading
sharding-jdbc/src/main/java/io/shardingsphere/core/jdbc/adapter/AbstractDataSourceAdapter.java +5 −2 Original line number Diff line number Diff line Loading @@ -19,10 +19,12 @@ package io.shardingsphere.core.jdbc.adapter; import com.google.common.base.Preconditions; import io.shardingsphere.core.constant.DatabaseType; import io.shardingsphere.core.constant.TransactionType; import io.shardingsphere.core.jdbc.unsupported.AbstractUnsupportedOperationDataSource; import io.shardingsphere.core.listener.JDBCListenerRegister; import io.shardingsphere.transaction.common.TransactionContextHolder; import io.shardingsphere.transaction.api.ShardingTransactionManagerFactory; import io.shardingsphere.transaction.common.TransactionContext; import io.shardingsphere.transaction.common.TransactionContextHolder; import lombok.Getter; import javax.sql.DataSource; Loading @@ -40,7 +42,8 @@ import java.util.logging.Logger; public abstract class AbstractDataSourceAdapter extends AbstractUnsupportedOperationDataSource { static { ShardingTransactionManagerFactory.getTransactionManager(TransactionContextHolder.get().getTransactionType()); TransactionType transactionType = TransactionContextHolder.get().getTransactionType(); TransactionContextHolder.set(new TransactionContext(ShardingTransactionManagerFactory.getShardingTransactionManager(transactionType), transactionType)); JDBCListenerRegister.register(); } Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/config/RuleRegistry.java +4 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,8 @@ import io.shardingsphere.jdbc.orchestration.internal.eventbus.ProxyEventBusEvent import io.shardingsphere.proxy.backend.jdbc.datasource.JDBCBackendDataSource; import io.shardingsphere.transaction.api.ShardingTransactionManager; import io.shardingsphere.transaction.api.ShardingTransactionManagerFactory; import io.shardingsphere.transaction.common.TransactionContext; import io.shardingsphere.transaction.common.TransactionContextHolder; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; Loading Loading @@ -106,7 +108,8 @@ public final class RuleRegistry { showSQL = shardingProperties.getValue(ShardingPropertiesConstant.SQL_SHOW); connectionMode = ConnectionMode.valueOf(shardingProperties.<String>getValue(ShardingPropertiesConstant.CONNECTION_MODE)); transactionType = TransactionType.valueOf(shardingProperties.<String>getValue(ShardingPropertiesConstant.PROXY_TRANSACTION_MODE)); transactionManager = ShardingTransactionManagerFactory.getTransactionManager(transactionType); transactionManager = ShardingTransactionManagerFactory.getShardingTransactionManager(transactionType); TransactionContextHolder.set(new TransactionContext(transactionManager, transactionType)); acceptorSize = shardingProperties.getValue(ShardingPropertiesConstant.ACCEPTOR_SIZE); executorSize = shardingProperties.getValue(ShardingPropertiesConstant.EXECUTOR_SIZE); // TODO :jiaqi force off use NIO for backend, this feature is not complete yet Loading
sharding-transaction/src/main/java/io/shardingsphere/transaction/api/ShardingTransactionManagerFactory.java +3 −10 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ package io.shardingsphere.transaction.api; import io.shardingsphere.core.constant.TransactionType; import io.shardingsphere.transaction.api.local.LocalTransactionManager; import io.shardingsphere.transaction.api.xa.XATransactionManagerSPILoader; import io.shardingsphere.transaction.common.TransactionContext; import io.shardingsphere.transaction.common.TransactionContextHolder; import lombok.AccessLevel; import lombok.NoArgsConstructor; Loading @@ -39,20 +37,15 @@ public final class ShardingTransactionManagerFactory { * @param transactionType transaction type * @return sharding transaction manager */ public static ShardingTransactionManager getTransactionManager(final TransactionType transactionType) { ShardingTransactionManager result; public static ShardingTransactionManager getShardingTransactionManager(final TransactionType transactionType) { switch (transactionType) { case LOCAL: result = new LocalTransactionManager(); break; return new LocalTransactionManager(); case XA: result = XATransactionManagerSPILoader.getInstance().getTransactionManager(); break; return XATransactionManagerSPILoader.getInstance().getTransactionManager(); case BASE: default: return null; } TransactionContextHolder.set(new TransactionContext(result, transactionType)); return result; } }