This is an automated email from the ASF dual-hosted git repository.

ascherbakov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 601a33d503b IGNITE-24962 Refactor public transaction configuration
601a33d503b is described below

commit 601a33d503bc7d71d8e907ea08ded570f98c16e9
Author: Alexey Scherbakov <[email protected]>
AuthorDate: Tue Apr 8 15:56:22 2025 +0300

    IGNITE-24962 Refactor public transaction configuration
---
 .../apache/ignite/client/fakes/FakeTxManager.java  |   5 +
 .../rebalance/ItRebalanceDistributedTest.java      |   1 +
 .../replicator/ItAbstractColocationTest.java       |   2 +-
 .../replicator/ItColocationTxRecoveryTest.java     |  10 +-
 .../replicator/ItTransactionsVacuumTest.java       |  21 +---
 .../partition/replicator/fixtures/Node.java        |   1 +
 .../TxBalanceRetryOperationBenchmark.java          |  19 +--
 .../benchmark/TxUpsertRetryOperationBenchmark.java |  20 +---
 .../internal/client/ItClientDirectMappingTest.java |   6 +-
 .../runner/app/ItIgniteNodeRestartTest.java        |   1 +
 .../ignite/internal/table/ItTableScanTest.java     |   2 +-
 .../org/apache/ignite/internal/app/IgniteImpl.java |   1 +
 .../internal/sql/sqllogic/ItSqlLogicTest.java      |   2 +-
 .../exec/rel/TableScanNodeExecutionTest.java       |   6 +-
 .../ItAbstractInternalTableScanTest.java           |   5 +
 .../ItInternalTableReadOnlyOperationsTest.java     |   5 +
 .../apache/ignite/distributed/ItLockTableTest.java |   8 +-
 .../ItTxDistributedCleanupRecoveryTest.java        |   1 +
 ...xDistributedTestSingleNodeNoCleanupMessage.java |   6 +
 .../ignite/distributed/ItTxStateLocalMapTest.java  |   5 +
 .../ignite/internal/table/ItColocationTest.java    |   6 +-
 .../internal/table/distributed/TableManager.java   |  12 +-
 .../distributed/storage/InternalTableImpl.java     |  12 +-
 .../internal/table/InteropOperationsTest.java      |   5 +
 .../table/TableKvOperationsMockedTest.java         |   7 +-
 .../replication/PartitionReplicaListenerTest.java  |   3 +-
 .../storage/InternalTableEstimatedSizeTest.java    |   1 -
 .../distributed/storage/InternalTableImplTest.java |   1 -
 .../apache/ignite/distributed/ItTxTestCluster.java |  14 ++-
 .../internal/table/TxInfrastructureTest.java       |   5 +
 .../table/impl/DummyInternalTableImpl.java         |  18 ++-
 .../ignite/internal/tx/KillTransactionTest.java    |   2 +-
 .../ItTransactionPrimaryChangeTest.java            |   5 +-
 .../tx/distributed/ItTransactionRecoveryTest.java  |  18 +--
 .../tx/distributed/ItTxResourcesVacuumTest.java    |  22 ++--
 .../org/apache/ignite/internal/tx/TxManager.java   |   7 ++
 ...eadlockPreventionPolicyConfigurationSchema.java |  35 ------
 .../TransactionConfigurationSchema.java            |  28 +----
 .../tx/impl/DeadlockPreventionPolicyImpl.java      |  12 --
 .../ignite/internal/tx/impl/OrphanDetector.java    |  31 +----
 .../ignite/internal/tx/impl/TxManagerImpl.java     |  66 +++++++++--
 .../ignite/internal/tx/impl/TxMessageSender.java   |  14 +--
 .../DeadlockPreventionPolicyConfigurationTest.java | 130 ---------------------
 .../apache/ignite/internal/tx/TxCleanupTest.java   |   3 +-
 .../apache/ignite/internal/tx/TxManagerTest.java   |   5 +
 .../internal/tx/impl/OrphanDetectorTest.java       |   3 +-
 46 files changed, 221 insertions(+), 371 deletions(-)

diff --git 
a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeTxManager.java
 
b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeTxManager.java
index 8f4fcd061c2..af6389a48c5 100644
--- 
a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeTxManager.java
+++ 
b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeTxManager.java
@@ -263,6 +263,11 @@ public class FakeTxManager implements TxManager {
         return nullCompletedFuture();
     }
 
+    @Override
+    public int lockRetryCount() {
+        return 0;
+    }
+
     @Override
     public int finished() {
         return 0;
diff --git 
a/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
 
b/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
index a87fa050494..0888a2429bc 100644
--- 
a/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
+++ 
b/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
@@ -1419,6 +1419,7 @@ public class ItRebalanceDistributedTest extends 
BaseIgniteAbstractTest {
 
             txManager = new TxManagerImpl(
                     txConfiguration,
+                    systemDistributedConfiguration,
                     clusterService,
                     replicaSvc,
                     lockManager,
diff --git 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItAbstractColocationTest.java
 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItAbstractColocationTest.java
index 1a5141ba604..66b5ab3fa13 100644
--- 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItAbstractColocationTest.java
+++ 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItAbstractColocationTest.java
@@ -108,7 +108,7 @@ abstract class ItAbstractColocationTest extends 
IgniteAbstractTest {
     private StorageConfiguration storageConfiguration;
 
     @InjectConfiguration("mock.idleSafeTimeSyncIntervalMillis = " + 
Node.METASTORAGE_IDLE_SYNC_TIME_INTERVAL_MS)
-    private SystemDistributedConfiguration systemDistributedConfiguration;
+    protected SystemDistributedConfiguration systemDistributedConfiguration;
 
     @InjectConfiguration
     private ReplicationConfiguration replicationConfiguration;
diff --git 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItColocationTxRecoveryTest.java
 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItColocationTxRecoveryTest.java
index 0cdfab104bc..9e662e1a52f 100644
--- 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItColocationTxRecoveryTest.java
+++ 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItColocationTxRecoveryTest.java
@@ -17,10 +17,10 @@
 
 package org.apache.ignite.internal.partition.replicator;
 
-import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
-import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
+import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.partition.replicator.fixtures.Node;
 import org.apache.ignite.internal.placementdriver.ReplicaMeta;
 import org.apache.ignite.table.KeyValueView;
@@ -44,8 +44,10 @@ class ItColocationTxRecoveryTest extends 
ItAbstractColocationTest {
      * </ol>
      */
     @Test
-    void abandonedTransactionGetsAbortedOnTouch() throws Exception {
-        assertThat(txConfiguration.abandonedCheckTs().update(600_000L), 
willCompleteSuccessfully());
+    void abandonedTransactionGetsAbortedOnTouch(
+            
@InjectConfiguration("mock.properties.txnAbandonedCheckTs=\"600000\"") 
SystemDistributedConfiguration systemCfg)
+            throws Exception {
+        this.systemDistributedConfiguration = systemCfg;
 
         startCluster(3);
 
diff --git 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItTransactionsVacuumTest.java
 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItTransactionsVacuumTest.java
index e0ae3b4483e..cdebe744153 100644
--- 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItTransactionsVacuumTest.java
+++ 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItTransactionsVacuumTest.java
@@ -19,16 +19,15 @@ package org.apache.ignite.internal.partition.replicator;
 
 import static org.apache.ignite.internal.TestWrappers.unwrapIgniteTransaction;
 import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
-import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willSucceedFast;
 import static 
org.apache.ignite.internal.tx.impl.ResourceVacuumManager.RESOURCE_VACUUM_INTERVAL_MILLISECONDS_PROPERTY;
-import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.Map;
 import java.util.UUID;
-import java.util.concurrent.CompletableFuture;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
+import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.distributionzones.DistributionZonesTestUtil;
 import org.apache.ignite.internal.partition.replicator.fixtures.Node;
 import org.apache.ignite.internal.table.TableTestUtils;
@@ -59,8 +58,9 @@ public class ItTransactionsVacuumTest extends 
ItAbstractColocationTest {
      * @throws Exception If failed.
      */
     @Test
-    public void testTransactionsVacuum() throws Exception {
-        updateTxnResourceTtl(50L);
+    public void testTransactionsVacuum(
+            @InjectConfiguration("mock.properties.txnResourceTtl=\"50\"") 
SystemDistributedConfiguration systemCfg) throws Exception {
+        this.systemDistributedConfiguration = systemCfg;
 
         startCluster(1);
         Node node = cluster.get(0);
@@ -94,17 +94,6 @@ public class ItTransactionsVacuumTest extends 
ItAbstractColocationTest {
         assertTrue(waitForCondition(() -> persistentTxState(node, zoneId, 0, 
txId) == null, 10_000));
     }
 
-    /**
-     * Updates txn resource time-to-live value..
-     *
-     * @param ttl Time-to-live value.
-     */
-    private void updateTxnResourceTtl(long ttl) {
-        CompletableFuture<?> updateFuture = txConfiguration.change(change -> 
change.changeTxnResourceTtl(ttl));
-
-        assertThat(updateFuture, willSucceedFast());
-    }
-
     /**
      * Returns transaction's meta from volatile storage.
      *
diff --git 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java
 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java
index f59c0fb3f9a..aa7da1842db 100644
--- 
a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java
+++ 
b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/fixtures/Node.java
@@ -581,6 +581,7 @@ public class Node {
 
         txManager = new TxManagerImpl(
                 transactionConfiguration,
+                systemConfiguration,
                 clusterService,
                 replicaSvc,
                 lockManager,
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/TxBalanceRetryOperationBenchmark.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/TxBalanceRetryOperationBenchmark.java
index 19a2eb70025..8aafaf1af65 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/TxBalanceRetryOperationBenchmark.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/TxBalanceRetryOperationBenchmark.java
@@ -74,21 +74,14 @@ public class TxBalanceRetryOperationBenchmark extends 
AbstractMultiNodeBenchmark
     @Param({"waitTimeout", "replicaOperationRetry"})
     private String txRetryMode;
 
+    @Param({"0", "10"})
+    private int replicaOperationRetryInterval;
+
     @Override
     protected String clusterConfiguration() {
-        if (txRetryMode.equals("waitTimeout")) {
-            return "ignite {"
-                    + "transaction: { deadlockPreventionPolicy: { waitTimeout: 
30, txIdComparator: NATURAL } },"
-                    + "replication: { replicaOperationRetryInterval: 0 }"
-                    + "}";
-        } else {
-            assert txRetryMode.equals("replicaOperationRetry");
-
-            return "ignite {"
-                    + "transaction: { deadlockPreventionPolicy: { waitTimeout: 
0, txIdComparator: NATURAL } },"
-                    + "replication: { replicaOperationRetryInterval: 10 }"
-                    + "}";
-        }
+        return "ignite {"
+                + "replication: { replicaOperationRetryInterval: " + 
replicaOperationRetryInterval + " }"
+                + "}";
     }
 
     /**
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/TxUpsertRetryOperationBenchmark.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/TxUpsertRetryOperationBenchmark.java
index ee20e8b7d07..4acaf3ffcce 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/TxUpsertRetryOperationBenchmark.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/benchmark/TxUpsertRetryOperationBenchmark.java
@@ -71,24 +71,14 @@ public class TxUpsertRetryOperationBenchmark extends 
AbstractMultiNodeBenchmark
     @Param({"100", "1000"})
     private int keysUpperBound;
 
-    @Param({"waitTimeout", "replicaOperationRetry"})
-    private String txRetryMode;
+    @Param({"0", "10"})
+    private int replicaOperationRetryInterval;
 
     @Override
     protected String clusterConfiguration() {
-        if (txRetryMode.equals("waitTimeout")) {
-            return "ignite {"
-                    + "transaction: { deadlockPreventionPolicy: { waitTimeout: 
30, txIdComparator: NATURAL } },"
-                    + "replication: { replicaOperationRetryInterval: 0 }"
-                    + "}";
-        } else {
-            assert txRetryMode.equals("replicaOperationRetry");
-
-            return "ignite {"
-                    + "transaction: { deadlockPreventionPolicy: { waitTimeout: 
0, txIdComparator: NATURAL } },"
-                    + "replication: { replicaOperationRetryInterval: 10 }"
-                    + "}";
-        }
+        return "ignite {"
+                + "replication: { replicaOperationRetryInterval: " + 
replicaOperationRetryInterval + " }"
+                + "}";
     }
 
     /**
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/client/ItClientDirectMappingTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/client/ItClientDirectMappingTest.java
index 0a76e3a4abf..192869ec261 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/client/ItClientDirectMappingTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/client/ItClientDirectMappingTest.java
@@ -75,9 +75,8 @@ public class ItClientDirectMappingTest extends 
ClusterPerTestIntegrationTest {
 
         builder.clusterConfiguration("ignite {"
                 + "  transaction: {"
-                + "      readOnlyTimeout: 30000,"
-                + "      readWriteTimeout: 30000,"
-                + "      txnResourceTtl: 2"
+                + "      readOnlyTimeoutMillis: 30000,"
+                + "      readWriteTimeoutMillis: 30000"
                 + "  },"
                 + "  replication: {"
                 + "      rpcTimeoutMillis: 30000"
@@ -144,6 +143,7 @@ public class ItClientDirectMappingTest extends 
ClusterPerTestIntegrationTest {
         return findNode(0, initialNodes(), n -> leaseholder.equals(n.name()));
     }
 
+    @Override
     protected int initialNodes() {
         return 2;
     }
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
index e0e92032a49..d2a30b6674e 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
@@ -624,6 +624,7 @@ public class ItIgniteNodeRestartTest extends 
BaseIgniteRestartTest {
         var txManager = new TxManagerImpl(
                 name,
                 txConfiguration,
+                systemDistributedConfiguration,
                 messagingServiceReturningToStorageOperationsPool,
                 clusterSvc.topologyService(),
                 replicaService,
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItTableScanTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItTableScanTest.java
index 061e7b5f297..165ba3fae9c 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItTableScanTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItTableScanTest.java
@@ -125,7 +125,7 @@ public class ItTableScanTest extends BaseSqlIntegrationTest 
{
     protected void configureInitParameters(InitParametersBuilder builder) {
         // Set a short timeout for the test because it uses defaultTimeouts 
for implicit transactions,
         // It is too long to wait for 30 seconds (default value for Read-Write 
Transactions).
-        builder.clusterConfiguration("{ignite.transaction.readWriteTimeout: 
5000}");
+        
builder.clusterConfiguration("{ignite.transaction.readWriteTimeoutMillis: 
5000}");
     }
 
     @BeforeEach
diff --git 
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java 
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index c4921a0e08a..cd3e3155ed1 100644
--- 
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ 
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -993,6 +993,7 @@ public class IgniteImpl implements Ignite {
         txManager = new TxManagerImpl(
                 name,
                 txConfig,
+                systemDistributedConfiguration,
                 messagingServiceReturningToStorageOperationsPool,
                 clusterSvc.topologyService(),
                 replicaSvc,
diff --git 
a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java
 
b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java
index bd0760b5820..6e0c4f802ae 100644
--- 
a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java
+++ 
b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/sqllogic/ItSqlLogicTest.java
@@ -361,7 +361,7 @@ public class ItSqlLogicTest extends BaseIgniteAbstractTest {
                 .metaStorageNodes(nodes.get(0))
                 .clusterName("cluster")
                 .clusterConfiguration("ignite {"
-                        + "transaction.readWriteTimeout: " + TX_RW_TIMEOUT + 
",\n"
+                        + "transaction.readWriteTimeoutMillis: " + 
TX_RW_TIMEOUT + ",\n"
                         + "system.idleSafeTimeSyncIntervalMillis: " + 
METASTORAGE_IDLE_SYNC_TIME_INTERVAL_MS + ",\n"
                         // TODO: Set dataAvailabilityTimeMillis to 5000 after 
IGNITE-24002 is fixed.
                         + "gc.lowWatermark.dataAvailabilityTimeMillis: 
30000,\n"
diff --git 
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
 
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
index e38bcc34da7..6f3992bd79c 100644
--- 
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
+++ 
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/TableScanNodeExecutionTest.java
@@ -45,6 +45,7 @@ import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 import java.util.stream.StreamSupport;
 import org.apache.calcite.rel.type.RelDataType;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.hlc.ClockService;
@@ -115,6 +116,9 @@ public class TableScanNodeExecutionTest extends 
AbstractExecutionTest<Object[]>
     @InjectConfiguration
     private TransactionConfiguration txConfiguration;
 
+    @InjectConfiguration("mock.properties.txnLockRetryCount=\"0\"")
+    private SystemDistributedConfiguration systemDistributedConfiguration;
+
     @InjectExecutorService
     private ScheduledExecutorService commonExecutor;
 
@@ -176,6 +180,7 @@ public class TableScanNodeExecutionTest extends 
AbstractExecutionTest<Object[]>
 
             TxManagerImpl txManager = new TxManagerImpl(
                     txConfiguration,
+                    systemDistributedConfiguration,
                     clusterService,
                     replicaSvc,
                     HeapLockManager.smallInstance(),
@@ -329,7 +334,6 @@ public class TableScanNodeExecutionTest extends 
AbstractExecutionTest<Object[]>
                     timestampTracker,
                     mock(PlacementDriver.class),
                     mock(TransactionInflights.class),
-                    0,
                     null,
                     mock(StreamerReceiverRunner.class),
                     () -> 10_000L,
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItAbstractInternalTableScanTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItAbstractInternalTableScanTest.java
index 1a67509ceb0..7cf1b7a161d 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItAbstractInternalTableScanTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItAbstractInternalTableScanTest.java
@@ -43,6 +43,7 @@ import java.util.concurrent.Flow.Subscription;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -95,6 +96,9 @@ public abstract class ItAbstractInternalTableScanTest extends 
IgniteAbstractTest
     @InjectConfiguration
     private ReplicationConfiguration replicationConfiguration;
 
+    @InjectConfiguration("mock.properties.txnLockRetryCount=\"0\"")
+    private SystemDistributedConfiguration systemDistributedConfiguration;
+
     /** Mock partition storage. */
     @Mock
     private MvPartitionStorage mockStorage;
@@ -140,6 +144,7 @@ public abstract class ItAbstractInternalTableScanTest 
extends IgniteAbstractTest
                 mockStorage,
                 ROW_SCHEMA,
                 txConfiguration,
+                systemDistributedConfiguration,
                 replicationConfiguration
         );
     }
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItInternalTableReadOnlyOperationsTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItInternalTableReadOnlyOperationsTest.java
index 8603f5da67e..9283d9fae87 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItInternalTableReadOnlyOperationsTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItInternalTableReadOnlyOperationsTest.java
@@ -40,6 +40,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.hlc.HybridClock;
@@ -92,6 +93,9 @@ public class ItInternalTableReadOnlyOperationsTest extends 
IgniteAbstractTest {
     @InjectConfiguration
     private ReplicationConfiguration replicationConfiguration;
 
+    @InjectConfiguration
+    private SystemDistributedConfiguration systemDistributedConfiguration;
+
     private static final HybridClock CLOCK = new HybridClockImpl();
 
     private static final Row ROW_1 = createKeyValueRow(1, 1001);
@@ -132,6 +136,7 @@ public class ItInternalTableReadOnlyOperationsTest extends 
IgniteAbstractTest {
                 mockStorage,
                 SCHEMA,
                 txConfiguration,
+                systemDistributedConfiguration,
                 replicationConfiguration
         );
 
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItLockTableTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItLockTableTest.java
index cdbf2665a75..6c7c9c2ae4a 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItLockTableTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItLockTableTest.java
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ScheduledExecutorService;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import org.apache.ignite.internal.configuration.SystemLocalConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
@@ -92,7 +93,7 @@ public class ItLockTableTest extends IgniteAbstractTest {
     @InjectConfiguration("mock: { fsync: false }")
     protected static RaftConfiguration raftConfiguration;
 
-    @InjectConfiguration("mock: { deadlockPreventionPolicy: { waitTimeout: -1, 
txIdComparator: NONE } }")
+    @InjectConfiguration()
     protected static TransactionConfiguration txConfiguration;
 
     @InjectConfiguration
@@ -101,6 +102,9 @@ public class ItLockTableTest extends IgniteAbstractTest {
     @InjectConfiguration("mock.properties: { lockMapSize: \"" + CACHE_SIZE + 
"\" }")
     private static SystemLocalConfiguration systemLocalConfiguration;
 
+    @InjectConfiguration("mock.properties.txnLockRetryCount=\"0\"")
+    private static SystemDistributedConfiguration 
systemDistributedConfiguration;
+
     @InjectExecutorService
     protected ScheduledExecutorService commonExecutor;
 
@@ -123,6 +127,7 @@ public class ItLockTableTest extends IgniteAbstractTest {
                 testInfo,
                 raftConfiguration,
                 txConfiguration,
+                systemDistributedConfiguration,
                 workDir,
                 1,
                 1,
@@ -144,6 +149,7 @@ public class ItLockTableTest extends IgniteAbstractTest {
             ) {
                 return new TxManagerImpl(
                         txConfiguration,
+                        systemDistributedConfiguration,
                         clusterService,
                         replicaSvc,
                         new HeapLockManager(systemLocalConfiguration),
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedCleanupRecoveryTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedCleanupRecoveryTest.java
index 206bb1d7155..e7f9ab5307a 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedCleanupRecoveryTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedCleanupRecoveryTest.java
@@ -54,6 +54,7 @@ public class ItTxDistributedCleanupRecoveryTest extends 
TxAbstractTest {
                 testInfo,
                 raftConfiguration,
                 txConfiguration,
+                systemDistributedConfiguration,
                 workDir,
                 nodes(),
                 replicas(),
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
index 58bce6160e7..c58bbf7101d 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
@@ -34,6 +34,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.Executor;
 import java.util.function.Supplier;
 import org.apache.ignite.internal.catalog.CatalogService;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import org.apache.ignite.internal.configuration.SystemLocalConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.failure.FailureProcessor;
@@ -93,6 +94,9 @@ public class ItTxDistributedTestSingleNodeNoCleanupMessage 
extends TxAbstractTes
     @InjectConfiguration
     private SystemLocalConfiguration systemLocalConfiguration;
 
+    @InjectConfiguration("mock.properties.txnLockRetryCount=\"0\"")
+    private SystemDistributedConfiguration systemDistributedConfiguration;
+
     /**
      * The constructor.
      *
@@ -109,6 +113,7 @@ public class ItTxDistributedTestSingleNodeNoCleanupMessage 
extends TxAbstractTes
                 testInfo,
                 raftConfiguration,
                 txConfiguration,
+                systemDistributedConfiguration,
                 workDir,
                 nodes(),
                 replicas(),
@@ -130,6 +135,7 @@ public class ItTxDistributedTestSingleNodeNoCleanupMessage 
extends TxAbstractTes
             ) {
                 return new TxManagerImpl(
                         txConfiguration,
+                        systemDistributedConfiguration,
                         clusterService,
                         replicaSvc,
                         new HeapLockManager(systemLocalConfiguration),
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxStateLocalMapTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxStateLocalMapTest.java
index 36659e3dc01..66510e8dcf0 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxStateLocalMapTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxStateLocalMapTest.java
@@ -29,6 +29,7 @@ import java.util.UUID;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Consumer;
 import java.util.stream.IntStream;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -68,6 +69,9 @@ public class ItTxStateLocalMapTest extends IgniteAbstractTest 
{
     @InjectConfiguration
     private TransactionConfiguration txConfiguration;
 
+    @InjectConfiguration("mock.properties.txnLockRetryCount=\"0\"")
+    private SystemDistributedConfiguration systemDistributedConfiguration;
+
     @InjectConfiguration
     private ReplicationConfiguration replicationConfiguration;
 
@@ -98,6 +102,7 @@ public class ItTxStateLocalMapTest extends 
IgniteAbstractTest {
                 testInfo,
                 raftConfig,
                 txConfiguration,
+                systemDistributedConfiguration,
                 workDir,
                 NODES,
                 NODES,
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
index 8b3d00cb6d3..8a57939a432 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItColocationTest.java
@@ -55,6 +55,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import org.apache.ignite.internal.configuration.SystemLocalConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
@@ -177,6 +178,9 @@ public class ItColocationTest extends 
BaseIgniteAbstractTest {
     @InjectConfiguration
     private static SystemLocalConfiguration systemLocalConfiguration;
 
+    @InjectConfiguration
+    private static SystemDistributedConfiguration 
systemDistributedConfiguration;
+
     @InjectExecutorService
     private static ScheduledExecutorService commonExecutor;
 
@@ -209,6 +213,7 @@ public class ItColocationTest extends 
BaseIgniteAbstractTest {
 
         txManager = new TxManagerImpl(
                 txConfiguration,
+                systemDistributedConfiguration,
                 clusterService,
                 replicaService,
                 new HeapLockManager(systemLocalConfiguration),
@@ -362,7 +367,6 @@ public class ItColocationTest extends 
BaseIgniteAbstractTest {
                 observableTimestampTracker,
                 new TestPlacementDriver(clusterNode),
                 transactionInflights,
-                0,
                 null,
                 mock(StreamerReceiverRunner.class),
                 () -> 10_000L,
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
index 0ccf4282238..efc6b2236de 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
@@ -407,8 +407,6 @@ public class TableManager implements IgniteTablesInternal, 
IgniteComponent {
 
     private final PartitionReplicaLifecycleManager 
partitionReplicaLifecycleManager;
 
-    private int attemptsObtainLock;
-
     @Nullable
     private ScheduledExecutorService streamerFlushExecutor;
 
@@ -547,8 +545,7 @@ public class TableManager implements IgniteTablesInternal, 
IgniteComponent {
         TxMessageSender txMessageSender = new TxMessageSender(
                 messagingService,
                 replicaSvc,
-                clockService,
-                txCfg
+                clockService
         );
 
         transactionStateResolver = new TransactionStateResolver(
@@ -655,8 +652,6 @@ public class TableManager implements IgniteTablesInternal, 
IgniteComponent {
 
             partitionReplicatorNodeRecovery.start();
 
-            attemptsObtainLock = txCfg.attemptsObtainLock().value();
-
             if (!enabledColocation) {
                 
executorInclinedPlacementDriver.listen(PrimaryReplicaEvent.PRIMARY_REPLICA_EXPIRED,
 onPrimaryReplicaExpiredListener);
             }
@@ -1655,11 +1650,10 @@ public class TableManager implements 
IgniteTablesInternal, IgniteComponent {
                 observableTimestampTracker,
                 executorInclinedPlacementDriver,
                 transactionInflights,
-                attemptsObtainLock,
                 this::streamerFlushExecutor,
                 Objects.requireNonNull(streamerReceiverRunner),
-                () -> txCfg.value().readWriteTimeout(),
-                () -> txCfg.value().readOnlyTimeout()
+                () -> txCfg.value().readWriteTimeoutMillis(),
+                () -> txCfg.value().readOnlyTimeoutMillis()
         );
 
         return new TableImpl(
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
index b247feb74dd..169fc4b5d84 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
@@ -208,9 +208,6 @@ public class InternalTableImpl implements InternalTable {
     /** Map update guarded by {@link #updatePartitionMapsMux}. */
     private volatile Int2ObjectMap<PendingComparableValuesTracker<Long, Void>> 
storageIndexTrackerByPartitionId = emptyMap();
 
-    /** Attempts to take lock. */
-    private final int attemptsObtainLock;
-
     /** Default read-write transaction timeout. */
     private final Supplier<Long> defaultRwTxTimeout;
 
@@ -232,7 +229,6 @@ public class InternalTableImpl implements InternalTable {
      * @param clockService A hybrid logical clock service.
      * @param placementDriver Placement driver.
      * @param transactionInflights Transaction inflights.
-     * @param attemptsObtainLock Attempts to take lock.
      * @param streamerFlushExecutor Streamer flush executor.
      * @param streamerReceiverRunner Streamer receiver runner.
      * @param defaultRwTxTimeout Default read-write transaction timeout.
@@ -252,7 +248,6 @@ public class InternalTableImpl implements InternalTable {
             HybridTimestampTracker observableTimestampTracker,
             PlacementDriver placementDriver,
             TransactionInflights transactionInflights,
-            int attemptsObtainLock,
             Supplier<ScheduledExecutorService> streamerFlushExecutor,
             StreamerReceiverRunner streamerReceiverRunner,
             Supplier<Long> defaultRwTxTimeout,
@@ -271,7 +266,6 @@ public class InternalTableImpl implements InternalTable {
         this.observableTimestampTracker = observableTimestampTracker;
         this.placementDriver = placementDriver;
         this.transactionInflights = transactionInflights;
-        this.attemptsObtainLock = attemptsObtainLock;
         this.streamerFlushExecutor = streamerFlushExecutor;
         this.streamerReceiverRunner = streamerReceiverRunner;
         this.defaultRwTxTimeout = defaultRwTxTimeout;
@@ -379,7 +373,7 @@ public class InternalTableImpl implements InternalTable {
                     false,
                     enlistment,
                     noWriteChecker,
-                    attemptsObtainLock
+                    txManager.lockRetryCount()
             );
         } else {
             fut = enlistAndInvoke(
@@ -494,7 +488,7 @@ public class InternalTableImpl implements InternalTable {
                         false,
                         enlistment,
                         noOpChecker,
-                        attemptsObtainLock
+                        txManager.lockRetryCount()
                 );
             } else {
                 fut = enlistAndInvoke(
@@ -636,7 +630,7 @@ public class InternalTableImpl implements InternalTable {
     ) {
         return enlist(partId, tx)
                 .thenCompose(enlistment ->
-                        trackingInvoke(tx, partId, mapFunc, full, enlistment, 
noWriteChecker, attemptsObtainLock));
+                        trackingInvoke(tx, partId, mapFunc, full, enlistment, 
noWriteChecker, txManager.lockRetryCount()));
     }
 
     /**
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
index 004e8956ef3..0517f4bc892 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
@@ -37,6 +37,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.UUID;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.network.ClusterService;
@@ -101,6 +102,9 @@ public class InteropOperationsTest extends 
BaseIgniteAbstractTest {
     @InjectConfiguration
     private static TransactionConfiguration txConfiguration;
 
+    @InjectConfiguration
+    private static SystemDistributedConfiguration 
systemDistributedConfiguration;
+
     @InjectConfiguration
     private static ReplicationConfiguration replicationConfiguration;
 
@@ -134,6 +138,7 @@ public class InteropOperationsTest extends 
BaseIgniteAbstractTest {
         
when(clusterService.topologyService().localMember().address()).thenReturn(DummyInternalTableImpl.ADDR);
 
         intTable = new DummyInternalTableImpl(mock(ReplicaService.class, 
RETURNS_DEEP_STUBS), schema, txConfiguration,
+                systemDistributedConfiguration,
                 replicationConfiguration);
 
         SchemaRegistry schemaRegistry = new DummySchemaManagerImpl(schema);
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/TableKvOperationsMockedTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/TableKvOperationsMockedTest.java
index eb08e25b45b..afcfbe12ec1 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/TableKvOperationsMockedTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/TableKvOperationsMockedTest.java
@@ -43,6 +43,7 @@ import java.util.Random;
 import java.util.Set;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.marshaller.MarshallersProvider;
@@ -94,6 +95,9 @@ public class TableKvOperationsMockedTest extends 
BaseIgniteAbstractTest {
     @InjectConfiguration
     private ReplicationConfiguration replicationConfiguration;
 
+    @InjectConfiguration
+    private SystemDistributedConfiguration systemDistributedConfiguration;
+
     @Mock(answer = RETURNS_DEEP_STUBS)
     private ReplicaService replicaService;
 
@@ -302,6 +306,7 @@ public class TableKvOperationsMockedTest extends 
BaseIgniteAbstractTest {
     }
 
     private DummyInternalTableImpl createInternalTable(SchemaDescriptor 
schema) {
-        return new DummyInternalTableImpl(replicaService, schema, 
txConfiguration, replicationConfiguration);
+        return new DummyInternalTableImpl(replicaService, schema, 
txConfiguration, systemDistributedConfiguration,
+                replicationConfiguration);
     }
 }
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
index 6eaaee6a224..35eefd31a95 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
@@ -651,8 +651,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 new TxMessageSender(
                         messagingService,
                         mock(ReplicaService.class),
-                        clockService,
-                        transactionConfiguration
+                        clockService
                 )
         );
 
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java
index e0a028c10d1..4407fbfaa6d 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java
@@ -225,7 +225,6 @@ public class InternalTableEstimatedSizeTest extends 
BaseIgniteAbstractTest {
                 HybridTimestampTracker.atomicTracker(null),
                 placementDriver,
                 new TransactionInflights(placementDriver, clockService),
-                0,
                 () -> null,
                 mock(StreamerReceiverRunner.class),
                 () -> 10_000L,
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImplTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImplTest.java
index 11edf401728..185bef8c63c 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImplTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImplTest.java
@@ -241,7 +241,6 @@ public class InternalTableImplTest extends 
BaseIgniteAbstractTest {
                 HybridTimestampTracker.atomicTracker(null),
                 placementDriver,
                 new TransactionInflights(placementDriver, clockService),
-                0,
                 () -> mock(ScheduledExecutorService.class),
                 mock(StreamerReceiverRunner.class),
                 () -> 10_000L,
diff --git 
a/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
 
b/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
index 4e08b5e7722..3a5f7072185 100644
--- 
a/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
+++ 
b/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
@@ -77,6 +77,7 @@ import 
org.apache.ignite.internal.cluster.management.topology.api.LogicalTopolog
 import 
org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologyService;
 import 
org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
 import org.apache.ignite.internal.configuration.RaftGroupOptionsConfigHelper;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import org.apache.ignite.internal.failure.NoOpFailureManager;
 import org.apache.ignite.internal.hlc.ClockService;
 import org.apache.ignite.internal.hlc.ClockWaiter;
@@ -211,6 +212,8 @@ public class ItTxTestCluster {
 
     private final TransactionConfiguration txConfiguration;
 
+    private final SystemDistributedConfiguration systemCfg;
+
     private final Path workDir;
 
     private final int nodes;
@@ -337,6 +340,7 @@ public class ItTxTestCluster {
             TestInfo testInfo,
             RaftConfiguration raftConfig,
             TransactionConfiguration txConfiguration,
+            SystemDistributedConfiguration systemCfg,
             Path workDir,
             int nodes,
             int replicas,
@@ -346,6 +350,7 @@ public class ItTxTestCluster {
     ) {
         this.raftConfig = raftConfig;
         this.txConfiguration = txConfiguration;
+        this.systemCfg = systemCfg;
         this.workDir = workDir;
         this.nodes = nodes;
         this.replicas = replicas;
@@ -592,6 +597,7 @@ public class ItTxTestCluster {
         return new TxManagerImpl(
                 node.name(),
                 txConfiguration,
+                systemCfg,
                 clusterService.messagingService(),
                 clusterService.topologyService(),
                 replicaSvc,
@@ -668,7 +674,6 @@ public class ItTxTestCluster {
                 timestampTracker,
                 placementDriver,
                 clientTransactionInflights,
-                0,
                 null,
                 mock(StreamerReceiverRunner.class),
                 () -> 10_000L,
@@ -702,8 +707,7 @@ public class ItTxTestCluster {
                         new TxMessageSender(
                                 
clusterServices.get(assignment).messagingService(),
                                 replicaServices.get(assignment),
-                                clockServices.get(assignment),
-                                txConfiguration
+                                clockServices.get(assignment)
                         );
 
                 var transactionStateResolver = new TransactionStateResolver(
@@ -1294,6 +1298,7 @@ public class ItTxTestCluster {
         clientTxManager = new TxManagerImpl(
                 "client",
                 txConfiguration,
+                systemCfg,
                 client.messagingService(),
                 client.topologyService(),
                 clientReplicaSvc,
@@ -1331,8 +1336,7 @@ public class ItTxTestCluster {
                 new TxMessageSender(
                         client.messagingService(),
                         clientReplicaSvc,
-                        clientClockService,
-                        txConfiguration
+                        clientClockService
                 )
         );
 
diff --git 
a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/TxInfrastructureTest.java
 
b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/TxInfrastructureTest.java
index aad2ee84d1f..428e18dbf03 100644
--- 
a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/TxInfrastructureTest.java
+++ 
b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/TxInfrastructureTest.java
@@ -28,6 +28,7 @@ import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ScheduledExecutorService;
 import org.apache.ignite.distributed.ItTxTestCluster;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.hlc.HybridClock;
@@ -117,6 +118,9 @@ public abstract class TxInfrastructureTest extends 
IgniteAbstractTest {
     @InjectConfiguration("mock: { fsync: false }")
     protected RaftConfiguration raftConfiguration;
 
+    @InjectConfiguration("mock.properties.txnLockRetryCount=\"0\"")
+    protected SystemDistributedConfiguration systemDistributedConfiguration;
+
     @InjectConfiguration
     protected TransactionConfiguration txConfiguration;
 
@@ -173,6 +177,7 @@ public abstract class TxInfrastructureTest extends 
IgniteAbstractTest {
                 testInfo,
                 raftConfiguration,
                 txConfiguration,
+                systemDistributedConfiguration,
                 workDir,
                 nodes(),
                 replicas(),
diff --git 
a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
 
b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
index 9b665e56b7e..4d87c7ac8d1 100644
--- 
a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
+++ 
b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
@@ -50,6 +50,7 @@ import org.apache.ignite.internal.catalog.Catalog;
 import org.apache.ignite.internal.catalog.CatalogService;
 import org.apache.ignite.internal.catalog.descriptors.CatalogIndexDescriptor;
 import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import org.apache.ignite.internal.failure.FailureProcessor;
 import org.apache.ignite.internal.hlc.ClockService;
 import org.apache.ignite.internal.hlc.HybridClock;
@@ -198,12 +199,14 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
      * @param replicaSvc Replica service.
      * @param schema Schema.
      * @param txConfiguration Transaction configuration.
+     * @param systemCfg System configuration.
      * @param replicationConfiguration Replication configuration.
      */
     public DummyInternalTableImpl(
             ReplicaService replicaSvc,
             SchemaDescriptor schema,
             TransactionConfiguration txConfiguration,
+            SystemDistributedConfiguration systemCfg,
             ReplicationConfiguration replicationConfiguration
     ) {
         this(
@@ -212,6 +215,7 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
                 new TestMvPartitionStorage(0),
                 schema,
                 txConfiguration,
+                systemCfg,
                 replicationConfiguration
         );
     }
@@ -224,6 +228,7 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
      * @param storage Storage.
      * @param schema Schema.
      * @param txConfiguration Transaction configuration.
+     * @param systemCfg System configuration.
      * @param replicationConfiguration Replication Configuration.
      */
     public DummyInternalTableImpl(
@@ -232,6 +237,7 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
             MvPartitionStorage storage,
             SchemaDescriptor schema,
             TransactionConfiguration txConfiguration,
+            SystemDistributedConfiguration systemCfg,
             ReplicationConfiguration replicationConfiguration
     ) {
         this(
@@ -244,6 +250,7 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
                 placementDriver,
                 replicationConfiguration,
                 txConfiguration,
+                systemCfg,
                 new RemotelyTriggeredResourceRegistry(),
                 new TransactionInflights(placementDriver, CLOCK_SERVICE)
         );
@@ -261,6 +268,10 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
      * @param tracker Observable timestamp tracker.
      * @param placementDriver Placement driver.
      * @param replicationConfiguration Replication configuration.
+     * @param txConfiguration Transaction configuration.
+     * @param systemCfg System configuration.
+     * @param resourcesRegistry Resource registry.
+     * @param transactionInflights Inflights.
      */
     public DummyInternalTableImpl(
             ReplicaService replicaSvc,
@@ -272,6 +283,7 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
             PlacementDriver placementDriver,
             ReplicationConfiguration replicationConfiguration,
             TransactionConfiguration txConfiguration,
+            SystemDistributedConfiguration systemCfg,
             RemotelyTriggeredResourceRegistry resourcesRegistry,
             TransactionInflights transactionInflights
     ) {
@@ -281,7 +293,7 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
                 nextTableId.getAndIncrement(), // table id.
                 1, // number of partitions.
                 new SingleClusterNodeResolver(LOCAL_NODE),
-                txManager(replicaSvc, placementDriver, txConfiguration, 
resourcesRegistry),
+                txManager(replicaSvc, placementDriver, txConfiguration, 
systemCfg, resourcesRegistry),
                 mock(MvTableStorage.class),
                 new TestTxStateStorage(),
                 replicaSvc,
@@ -289,7 +301,6 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
                 tracker,
                 placementDriver,
                 transactionInflights,
-                0,
                 null,
                 mock(StreamerReceiverRunner.class),
                 () -> 10_000L,
@@ -637,12 +648,14 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
      * @param replicaSvc Replica service to use.
      * @param placementDriver Placement driver.
      * @param txConfiguration Transaction configuration.
+     * @param systemCfg System configuration.
      * @param resourcesRegistry Resources registry.
      */
     public static TxManagerImpl txManager(
             ReplicaService replicaSvc,
             PlacementDriver placementDriver,
             TransactionConfiguration txConfiguration,
+            SystemDistributedConfiguration systemCfg,
             RemotelyTriggeredResourceRegistry resourcesRegistry
     ) {
         TopologyService topologyService = mock(TopologyService.class);
@@ -657,6 +670,7 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
 
         var txManager = new TxManagerImpl(
                 txConfiguration,
+                systemCfg,
                 clusterService,
                 replicaSvc,
                 HeapLockManager.smallInstance(),
diff --git 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/internal/tx/KillTransactionTest.java
 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/internal/tx/KillTransactionTest.java
index eb61e2e11bb..09b37ad92d5 100644
--- 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/internal/tx/KillTransactionTest.java
+++ 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/internal/tx/KillTransactionTest.java
@@ -50,7 +50,7 @@ public class KillTransactionTest extends 
ClusterPerClassIntegrationTest {
     protected void configureInitParameters(InitParametersBuilder builder) {
         super.configureInitParameters(builder);
 
-        builder.clusterConfiguration("ignite.transaction.txnResourceTtl=0");
+        
builder.clusterConfiguration("ignite.system.properties.txnResourceTtl=\"0\"");
     }
 
     @Test
diff --git 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTransactionPrimaryChangeTest.java
 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTransactionPrimaryChangeTest.java
index 5c8d559f521..9ddb2eae67f 100644
--- 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTransactionPrimaryChangeTest.java
+++ 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTransactionPrimaryChangeTest.java
@@ -85,9 +85,8 @@ public class ItTransactionPrimaryChangeTest extends 
ClusterPerTestIntegrationTes
 
         builder.clusterConfiguration("ignite {"
                 + "  transaction: {"
-                + "      readOnlyTimeout: 30000,"
-                + "      readWriteTimeout: 30000,"
-                + "      txnResourceTtl: 2"
+                + "      readOnlyTimeoutMillis: 30000,"
+                + "      readWriteTimeoutMillis: 30000,"
                 + "  },"
                 + "  replication: {"
                 + "      rpcTimeoutMillis: 30000"
diff --git 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTransactionRecoveryTest.java
 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTransactionRecoveryTest.java
index c6917008a21..0c018d32751 100644
--- 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTransactionRecoveryTest.java
+++ 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTransactionRecoveryTest.java
@@ -89,7 +89,6 @@ import 
org.apache.ignite.internal.tx.PendingTxPartitionEnlistment;
 import org.apache.ignite.internal.tx.TxMeta;
 import org.apache.ignite.internal.tx.TxState;
 import org.apache.ignite.internal.tx.TxStateMeta;
-import 
org.apache.ignite.internal.tx.configuration.TransactionExtensionConfiguration;
 import org.apache.ignite.internal.tx.message.FinishedTransactionsBatchMessage;
 import org.apache.ignite.internal.tx.message.TxFinishReplicaRequest;
 import org.apache.ignite.internal.tx.message.TxRecoveryMessage;
@@ -140,9 +139,10 @@ public class ItTransactionRecoveryTest extends 
ClusterPerTestIntegrationTest {
         super.customizeInitParameters(builder);
 
         builder.clusterConfiguration("ignite {\n"
-                + "  \"transaction\": {\n"
-                + "  \"abandonedCheckTs\": 600000\n"
-                + "  \"attemptsObtainLock\": 0\n"
+                + "system.properties = "
+                + "  {\n"
+                + "  \"txnAbandonedCheckTs\": \"600000\",\n"
+                + "  \"txnLockRetryCount\": \"0\"\n"
                 + "  }\n"
                 + "}\n");
     }
@@ -247,16 +247,6 @@ public class ItTransactionRecoveryTest extends 
ClusterPerTestIntegrationTest {
 
         assertEquals(orphanTxId, recoveryTxMsgCaptureFut.join());
         assertEquals(1, msgCount.get());
-
-        unwrapIgniteImpl(node(0)).clusterConfiguration()
-                
.getConfiguration(TransactionExtensionConfiguration.KEY).transaction()
-                .change(transactionChange -> 
transactionChange.changeAbandonedCheckTs(1));
-
-        assertTrue(waitForCondition(() -> {
-            runConflictingTransaction(node(0), node(0).transactions().begin());
-
-            return msgCount.get() > 1;
-        }, 10_000));
     }
 
     @Test
diff --git 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTxResourcesVacuumTest.java
 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTxResourcesVacuumTest.java
index 01e5c4879e5..b03e1eb7c66 100644
--- 
a/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTxResourcesVacuumTest.java
+++ 
b/modules/transactions/src/integrationTest/java/org/apache/ignite/tx/distributed/ItTxResourcesVacuumTest.java
@@ -56,6 +56,8 @@ import org.apache.ignite.InitParametersBuilder;
 import org.apache.ignite.internal.ClusterPerTestIntegrationTest;
 import org.apache.ignite.internal.TestWrappers;
 import org.apache.ignite.internal.app.IgniteImpl;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
+import 
org.apache.ignite.internal.configuration.SystemDistributedExtensionConfiguration;
 import org.apache.ignite.internal.placementdriver.ReplicaMeta;
 import org.apache.ignite.internal.replicator.TablePartitionId;
 import org.apache.ignite.internal.testframework.SystemPropertiesExtension;
@@ -65,8 +67,6 @@ import org.apache.ignite.internal.thread.ThreadOperation;
 import org.apache.ignite.internal.tx.TransactionMeta;
 import org.apache.ignite.internal.tx.TxState;
 import org.apache.ignite.internal.tx.TxStateMeta;
-import org.apache.ignite.internal.tx.configuration.TransactionConfiguration;
-import 
org.apache.ignite.internal.tx.configuration.TransactionExtensionConfiguration;
 import org.apache.ignite.internal.tx.impl.TxManagerImpl;
 import org.apache.ignite.internal.tx.message.TxCleanupMessage;
 import org.apache.ignite.internal.tx.message.TxFinishReplicaRequest;
@@ -140,12 +140,8 @@ public class ItTxResourcesVacuumTest extends 
ClusterPerTestIntegrationTest {
         super.customizeInitParameters(builder);
 
         builder.clusterConfiguration("ignite {"
-                + "  transaction: {"
-                + "      txnResourceTtl: 0"
-                + "  },"
-                + "  replication: {"
-                + "      rpcTimeoutMillis: 30000"
-                + "  },"
+                + "  system.properties.txnResourceTtl: \"0\","
+                + "  replication.rpcTimeoutMillis: 30000"
                 + "}");
     }
 
@@ -817,11 +813,13 @@ public class ItTxResourcesVacuumTest extends 
ClusterPerTestIntegrationTest {
     }
 
     private void setTxResourceTtl(long ttl) {
-        TransactionConfiguration transactionConfiguration = 
anyNode().clusterConfiguration()
-                
.getConfiguration(TransactionExtensionConfiguration.KEY).transaction();
-        CompletableFuture<Void> changeFuture = 
transactionConfiguration.change(c -> c.changeTxnResourceTtl(ttl));
+        SystemDistributedConfiguration system = 
anyNode().clusterConfiguration()
+                
.getConfiguration(SystemDistributedExtensionConfiguration.KEY).system();
 
-        assertThat(changeFuture, willCompleteSuccessfully());
+        CompletableFuture<Void> changeFut = system.change(
+                c -> c.changeProperties(c0 -> c0.update("txnResourceTtl", c1 
-> c1.changePropertyValue(ttl + ""))));
+
+        assertThat(changeFut, willCompleteSuccessfully());
     }
 
     /**
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/TxManager.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/TxManager.java
index 94936c08cf4..3cdf6771940 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/TxManager.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/TxManager.java
@@ -249,6 +249,13 @@ public interface TxManager extends IgniteComponent {
      */
     CompletableFuture<Boolean> kill(UUID txId);
 
+    /**
+     * Returns lock retry count.
+     *
+     * @return The count.
+     */
+    int lockRetryCount();
+
     /**
      * Returns a number of finished transactions.
      *
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/configuration/DeadlockPreventionPolicyConfigurationSchema.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/configuration/DeadlockPreventionPolicyConfigurationSchema.java
deleted file mode 100644
index 4058823673c..00000000000
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/configuration/DeadlockPreventionPolicyConfigurationSchema.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.tx.configuration;
-
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.Value;
-import org.apache.ignite.configuration.validation.OneOf;
-
-/**
- * Configuration schema for deadlock prevention policy.
- */
-@Config
-public class DeadlockPreventionPolicyConfigurationSchema {
-    @OneOf({"NATURAL", "REVERSED", "NONE"})
-    @Value(hasDefault = true)
-    public String txIdComparator = "NATURAL";
-
-    @Value(hasDefault = true)
-    public long waitTimeout = 0;
-}
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/configuration/TransactionConfigurationSchema.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/configuration/TransactionConfigurationSchema.java
index 2b59eca8532..5debc79a987 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/configuration/TransactionConfigurationSchema.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/configuration/TransactionConfigurationSchema.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.tx.configuration;
 
 import java.util.concurrent.TimeUnit;
 import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.ConfigValue;
 import org.apache.ignite.configuration.annotation.Value;
 import org.apache.ignite.configuration.validation.Range;
 
@@ -28,36 +27,13 @@ import org.apache.ignite.configuration.validation.Range;
  */
 @Config
 public class TransactionConfigurationSchema {
-    /** How often abandoned transactions are searched for (milliseconds). */
-    @Range(min = 0)
-    @Value(hasDefault = true)
-    public final long abandonedCheckTs = 5_000;
-
     /** Default timeout for read-only transactions. */
     @Range(min = 1)
     @Value(hasDefault = true)
-    public final long readOnlyTimeout = TimeUnit.MINUTES.toMillis(10);
+    public final long readOnlyTimeoutMillis = TimeUnit.MINUTES.toMillis(10);
 
     /** Default timeout for read-write transactions. */
     @Range(min = 1)
     @Value(hasDefault = true)
-    public final long readWriteTimeout = TimeUnit.SECONDS.toMillis(30);
-
-    /** A transaction tries to take lock several times until it throws an 
exception {@lonk org.apache.ignite.tx.TransactionException}. */
-    @Range(min = 0)
-    @Value(hasDefault = true)
-    public final int attemptsObtainLock = 3;
-
-    /** Transaction resource time to live (ms), the minimum lifetime of a 
transaction state. */
-    @Value(hasDefault = true)
-    @Range(min = 0)
-    public long txnResourceTtl = TimeUnit.SECONDS.toMillis(30);
-
-    /** Transaction system remote call timeout. RPC timeout for operations 
like cleanup and write intent resolution. */
-    @Value(hasDefault = true)
-    @Range(min = 1000)
-    public long rpcTimeout = TimeUnit.SECONDS.toMillis(60);
-
-    @ConfigValue
-    public DeadlockPreventionPolicyConfigurationSchema 
deadlockPreventionPolicy;
+    public final long readWriteTimeoutMillis = TimeUnit.SECONDS.toMillis(30);
 }
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/DeadlockPreventionPolicyImpl.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/DeadlockPreventionPolicyImpl.java
index 478f3841af5..1e017b1e7f5 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/DeadlockPreventionPolicyImpl.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/DeadlockPreventionPolicyImpl.java
@@ -17,8 +17,6 @@
 
 package org.apache.ignite.internal.tx.impl;
 
-import static java.util.Objects.requireNonNull;
-
 import java.util.Comparator;
 import java.util.UUID;
 import org.apache.ignite.internal.tx.DeadlockPreventionPolicy;
@@ -33,16 +31,6 @@ public class DeadlockPreventionPolicyImpl implements 
DeadlockPreventionPolicy {
 
     private final long waitTimeout;
 
-    /**
-     * Constructor.
-     *
-     * @param txIdComparator Comparator name.
-     * @param waitTimeout Wait timeout.
-     */
-    public DeadlockPreventionPolicyImpl(String txIdComparator, long 
waitTimeout) {
-        this(TxIdComparators.valueOf(requireNonNull(txIdComparator)), 
waitTimeout);
-    }
-
     /**
      * Constructor.
      *
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/OrphanDetector.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/OrphanDetector.java
index 995e8f6daea..d785d62f975 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/OrphanDetector.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/OrphanDetector.java
@@ -32,8 +32,7 @@ import java.util.ArrayList;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
-import org.apache.ignite.configuration.ConfigurationValue;
-import org.apache.ignite.configuration.notifications.ConfigurationListener;
+import java.util.function.Supplier;
 import org.apache.ignite.internal.event.EventListener;
 import org.apache.ignite.internal.logger.IgniteLogger;
 import org.apache.ignite.internal.logger.Loggers;
@@ -88,19 +87,7 @@ public class OrphanDetector {
     /** The executor is used to send a transaction resolution message to the 
commit partition for an orphan transaction. */
     private final Executor partitionOperationsExecutor;
 
-    /**
-     * The time interval in milliseconds in which the orphan resolution sends 
the recovery message again, in case the transaction is still
-     * not finalized.
-     */
-    private long checkTxStateInterval;
-
-    private final ConfigurationListener<Long> checkTxStateIntervalListener = 
ctx -> {
-        this.checkTxStateInterval = ctx.newValue();
-
-        return nullCompletedFuture();
-    };
-
-    private volatile @Nullable ConfigurationValue<Long> 
checkTxStateIntervalProvider;
+    private volatile Supplier<Long> checkTxStateIntervalProvider;
 
     /** Local transaction state storage. */
     private VolatileTxStateMetaStorage txLocalStateStorage;
@@ -134,12 +121,9 @@ public class OrphanDetector {
      * @param txLocalStateStorage Local transaction state storage.
      * @param checkTxStateIntervalProvider Global provider of configuration 
check state interval.
      */
-    public void start(VolatileTxStateMetaStorage txLocalStateStorage, 
ConfigurationValue<Long> checkTxStateIntervalProvider) {
+    public void start(VolatileTxStateMetaStorage txLocalStateStorage, 
Supplier<Long> checkTxStateIntervalProvider) {
         this.txLocalStateStorage = txLocalStateStorage;
         this.checkTxStateIntervalProvider = checkTxStateIntervalProvider;
-        this.checkTxStateInterval = checkTxStateIntervalProvider.value();
-
-        checkTxStateIntervalProvider.listen(checkTxStateIntervalListener);
 
         lockManager.listen(LockEvent.LOCK_CONFLICT, lockConflictListener);
     }
@@ -151,11 +135,6 @@ public class OrphanDetector {
         busyLock.block();
 
         lockManager.removeListener(LockEvent.LOCK_CONFLICT, 
lockConflictListener);
-
-        ConfigurationValue<Long> localCheckTxStateIntervalProvider = 
checkTxStateIntervalProvider;
-        if (localCheckTxStateIntervalProvider != null) {
-            
localCheckTxStateIntervalProvider.stopListen(checkTxStateIntervalListener);
-        }
     }
 
     /**
@@ -295,7 +274,7 @@ public class OrphanDetector {
     }
 
     /**
-     * Checks whether the transaction state is marked as abandoned recently 
(less than {@link #checkTxStateInterval} millis ago).
+     * Checks whether the transaction state is marked as abandoned recently 
(less than {@link #checkTxStateIntervalProvider} millis ago).
      *
      * @param txState Transaction state metadata.
      * @return True if the state recently updated to {@link 
org.apache.ignite.internal.tx.TxState#ABANDONED}.
@@ -309,6 +288,6 @@ public class OrphanDetector {
 
         var txStateAbandoned = (TxStateMetaAbandoned) txState;
 
-        return txStateAbandoned.lastAbandonedMarkerTs() + checkTxStateInterval 
>= coarseCurrentTimeMillis();
+        return txStateAbandoned.lastAbandonedMarkerTs() + 
checkTxStateIntervalProvider.get() >= coarseCurrentTimeMillis();
     }
 }
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
index 31db814c20b..72b2db6995f 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.tx.impl;
 
+import static java.lang.Math.toIntExact;
 import static java.util.concurrent.CompletableFuture.allOf;
 import static java.util.concurrent.CompletableFuture.failedFuture;
 import static java.util.concurrent.CompletableFuture.runAsync;
@@ -62,6 +63,8 @@ import java.util.concurrent.atomic.LongAdder;
 import java.util.function.Consumer;
 import java.util.function.Function;
 import java.util.function.LongSupplier;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
+import org.apache.ignite.internal.configuration.SystemPropertyView;
 import org.apache.ignite.internal.event.EventListener;
 import org.apache.ignite.internal.failure.FailureContext;
 import org.apache.ignite.internal.failure.FailureManager;
@@ -111,6 +114,7 @@ import org.apache.ignite.internal.tx.TxState;
 import org.apache.ignite.internal.tx.TxStateMeta;
 import org.apache.ignite.internal.tx.TxStateMetaFinishing;
 import org.apache.ignite.internal.tx.configuration.TransactionConfiguration;
+import 
org.apache.ignite.internal.tx.impl.DeadlockPreventionPolicyImpl.TxIdComparators;
 import 
org.apache.ignite.internal.tx.impl.TransactionInflights.ReadWriteTxContext;
 import org.apache.ignite.internal.tx.message.WriteIntentSwitchReplicatedInfo;
 import org.apache.ignite.internal.tx.views.LocksViewProvider;
@@ -128,8 +132,24 @@ import org.jetbrains.annotations.TestOnly;
  * <p>Uses 2PC for atomic commitment and 2PL for concurrency control.
  */
 public class TxManagerImpl implements TxManager, NetworkMessageHandler, 
SystemViewProvider {
-    /** Expirarion trigger frequency. */
-    public static final long EXPIRE_FREQ_MILLIS = 1000;
+    private static final String ABANDONED_CHECK_TS_PROP = 
"txnAbandonedCheckTs";
+
+    private static final long ABANDONED_CHECK_TS_PROP_DEFAULT_VALUE = 5_000;
+
+    private static final String LOCK_RETRY_COUNT_PROP = "txnLockRetryCount";
+
+    private static final int LOCK_RETRY_COUNT_PROP_DEFAULT_VALUE = 3;
+
+    private static final String RESOURCE_TTL_PROP = "txnResourceTtl";
+
+    private static final int RESOURCE_TTL_PROP_DEFAULT_VALUE = 30 * 1000;
+
+    private static final TxIdComparators DEFAULT_TX_ID_COMPARATOR = 
TxIdComparators.NATURAL;
+
+    private static final long DEFAULT_LOCK_TIMEOUT = 0;
+
+    /** Expiration trigger frequency. */
+    private static final long EXPIRE_FREQ_MILLIS = 1000;
 
     /** The logger. */
     private static final IgniteLogger LOG = 
Loggers.forClass(TxManagerImpl.class);
@@ -137,6 +157,9 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
     /** Transaction configuration. */
     private final TransactionConfiguration txConfig;
 
+    /** Transaction configuration. */
+    private final SystemDistributedConfiguration systemCfg;
+
     /** Lock manager. */
     private final LockManager lockManager;
 
@@ -226,10 +249,13 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
 
     private final boolean enabledColocation = 
IgniteSystemProperties.enabledColocation();
 
+    private volatile int lockRetryCount = 0;
+
     /**
      * Test-only constructor.
      *
      * @param txConfig Transaction configuration.
+     * @param systemCfg System configuration.
      * @param clusterService Cluster service.
      * @param replicaService Replica service.
      * @param lockManager Lock manager.
@@ -245,6 +271,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
     @TestOnly
     public TxManagerImpl(
             TransactionConfiguration txConfig,
+            SystemDistributedConfiguration systemCfg,
             ClusterService clusterService,
             ReplicaService replicaService,
             LockManager lockManager,
@@ -261,6 +288,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
         this(
                 clusterService.nodeName(),
                 txConfig,
+                systemCfg,
                 clusterService.messagingService(),
                 clusterService.topologyService(),
                 replicaService,
@@ -283,6 +311,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
      * The constructor.
      *
      * @param txConfig Transaction configuration.
+     * @param systemCfg System configuration.
      * @param messagingService Messaging service.
      * @param topologyService Topology service.
      * @param replicaService Replica service.
@@ -300,6 +329,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
     public TxManagerImpl(
             String nodeName,
             TransactionConfiguration txConfig,
+            SystemDistributedConfiguration systemCfg,
             MessagingService messagingService,
             TopologyService topologyService,
             ReplicaService replicaService,
@@ -317,6 +347,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
             FailureProcessor failureProcessor
     ) {
         this.txConfig = txConfig;
+        this.systemCfg = systemCfg;
         this.lockManager = lockManager;
         this.clockService = clockService;
         this.transactionIdGenerator = transactionIdGenerator;
@@ -355,7 +386,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
                 partitionOperationsExecutor
         );
 
-        txMessageSender = new TxMessageSender(messagingService, 
replicaService, clockService, txConfig);
+        txMessageSender = new TxMessageSender(messagingService, 
replicaService, clockService);
 
         var writeIntentSwitchProcessor = new 
WriteIntentSwitchProcessor(placementDriverHelper, txMessageSender, 
topologyService);
 
@@ -453,7 +484,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
 
         UUID txId = transactionIdGenerator.transactionIdFor(beginTimestamp, 
options.priority());
 
-        long timeout = getTimeoutOrDefault(options, 
txConfig.readWriteTimeout().value());
+        long timeout = getTimeoutOrDefault(options, 
txConfig.readWriteTimeoutMillis().value());
 
         var transaction = new ReadWriteTransactionImpl(this, timestampTracker, 
txId, localNodeId, implicit, timeout);
 
@@ -503,7 +534,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
         try {
             CompletableFuture<Void> txFuture = new CompletableFuture<>();
 
-            long timeout = getTimeoutOrDefault(options, 
txConfig.readOnlyTimeout().value());
+            long timeout = getTimeoutOrDefault(options, 
txConfig.readOnlyTimeoutMillis().value());
 
             var transaction = new ReadOnlyTransactionImpl(
                     this, timestampTracker, txId, localNodeId, implicit, 
timeout, readTimestamp, txFuture
@@ -891,7 +922,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
         assert commitPartId.tableId() > 0 && commitPartId.partitionId() >= 0 : 
"Illegal condition for direct mapping: " + commitPartId;
 
         // Switch to default timeout if needed.
-        timeout = timeout == USE_CONFIGURED_TIMEOUT_DEFAULT ? 
txConfig.readWriteTimeout().value() : timeout;
+        timeout = timeout == USE_CONFIGURED_TIMEOUT_DEFAULT ? 
txConfig.readWriteTimeoutMillis().value() : timeout;
 
         // Adjust the timeout so local expiration happens after coordinator 
expiration.
         var tx = new RemoteReadWriteTransaction(txId, commitPartId, coord, 
token, topologyService.localMember(),
@@ -931,10 +962,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
     @Override
     public CompletableFuture<Void> startAsync(ComponentContext 
componentContext) {
         return inBusyLockAsync(busyLock, () -> {
-            var deadlockPreventionPolicy = new DeadlockPreventionPolicyImpl(
-                    
txConfig.deadlockPreventionPolicy().txIdComparator().value(),
-                    txConfig.deadlockPreventionPolicy().waitTimeout().value()
-            );
+            var deadlockPreventionPolicy = new 
DeadlockPreventionPolicyImpl(DEFAULT_TX_ID_COMPARATOR, DEFAULT_LOCK_TIMEOUT);
 
             // TODO https://issues.apache.org/jira/browse/IGNITE-23539
             lockManager.start(deadlockPreventionPolicy);
@@ -955,7 +983,8 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
 
             txViewProvider.init(localNodeId, 
txStateVolatileStorage.statesMap());
 
-            orphanDetector.start(txStateVolatileStorage, 
txConfig.abandonedCheckTs());
+            orphanDetector.start(txStateVolatileStorage,
+                    () -> longProperty(systemCfg, ABANDONED_CHECK_TS_PROP, 
ABANDONED_CHECK_TS_PROP_DEFAULT_VALUE));
 
             txCleanupRequestSender.start();
 
@@ -968,6 +997,8 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
             transactionExpirationJobFuture = 
commonScheduler.scheduleAtFixedRate(this::expireTransactionsUpToNow,
                     EXPIRE_FREQ_MILLIS, EXPIRE_FREQ_MILLIS, MILLISECONDS);
 
+            lockRetryCount = toIntExact(longProperty(systemCfg, 
LOCK_RETRY_COUNT_PROP, LOCK_RETRY_COUNT_PROP_DEFAULT_VALUE));
+
             return nullCompletedFuture();
         });
     }
@@ -1065,7 +1096,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
 
         return txStateVolatileStorage.vacuum(
                 vacuumObservationTimestamp,
-                txConfig.txnResourceTtl().value(),
+                longProperty(systemCfg, RESOURCE_TTL_PROP, 
RESOURCE_TTL_PROP_DEFAULT_VALUE),
                 persistentTxStateVacuumizer::vacuumPersistentTxStates);
     }
 
@@ -1085,6 +1116,11 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
         return falseCompletedFuture();
     }
 
+    @Override
+    public int lockRetryCount() {
+        return lockRetryCount;
+    }
+
     @Override
     public CompletableFuture<Void> executeWriteIntentSwitchAsync(Runnable 
runnable) {
         return runAsync(runnable, writeIntentSwitchPool);
@@ -1225,4 +1261,10 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler, SystemVi
             return null;
         });
     }
+
+    private static long longProperty(SystemDistributedConfiguration 
systemProperties, String name, long defaultValue) {
+        SystemPropertyView property = 
systemProperties.properties().value().get(name);
+
+        return property == null ? defaultValue : 
Long.parseLong(property.propertyValue());
+    }
 }
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxMessageSender.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxMessageSender.java
index 49968b68e88..4cf305d66a9 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxMessageSender.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxMessageSender.java
@@ -38,7 +38,6 @@ import 
org.apache.ignite.internal.replicator.message.ReplicationGroupIdMessage;
 import org.apache.ignite.internal.tx.PartitionEnlistment;
 import org.apache.ignite.internal.tx.TransactionMeta;
 import org.apache.ignite.internal.tx.TransactionResult;
-import org.apache.ignite.internal.tx.configuration.TransactionConfiguration;
 import org.apache.ignite.internal.tx.message.EnlistedPartitionGroupMessage;
 import org.apache.ignite.internal.tx.message.PartitionEnlistmentMessage;
 import org.apache.ignite.internal.tx.message.TxMessagesFactory;
@@ -49,6 +48,8 @@ import org.jetbrains.annotations.Nullable;
  * This class is responsible for interacting with the messaging layer. Sends 
transaction messages.
  */
 public class TxMessageSender {
+    private static final int RPC_TIMEOUT_MILLIS = 60 * 1000;
+
     /** Tx messages factory. */
     private static final TxMessagesFactory TX_MESSAGES_FACTORY = new 
TxMessagesFactory();
 
@@ -63,26 +64,21 @@ public class TxMessageSender {
 
     private final ClockService clockService;
 
-    private final TransactionConfiguration transactionConfiguration;
-
     /**
      * Constructor.
      *
      * @param messagingService Messaging service.
      * @param replicaService Replica service.
      * @param clockService Clock service.
-     * @param transactionConfiguration Transaction configuration.
      */
     public TxMessageSender(
             MessagingService messagingService,
             ReplicaService replicaService,
-            ClockService clockService,
-            TransactionConfiguration transactionConfiguration
+            ClockService clockService
     ) {
         this.messagingService = messagingService;
         this.replicaService = replicaService;
         this.clockService = clockService;
-        this.transactionConfiguration = transactionConfiguration;
     }
 
     /**
@@ -141,7 +137,7 @@ public class TxMessageSender {
                         .timestamp(clockService.now())
                         .groups(toPartitionMessages(enlistedPartitionGroups))
                         .build(),
-                transactionConfiguration.rpcTimeout().value());
+                RPC_TIMEOUT_MILLIS);
     }
 
     /**
@@ -226,7 +222,7 @@ public class TxMessageSender {
                                 .readTimestamp(timestamp)
                                 .txId(txId)
                                 .build(),
-                        transactionConfiguration.rpcTimeout().value())
+                        RPC_TIMEOUT_MILLIS)
                 .thenApply(resp -> {
                     assert resp instanceof TxStateResponse : "Unsupported 
response type [type=" + resp.getClass().getSimpleName() + ']';
 
diff --git 
a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/DeadlockPreventionPolicyConfigurationTest.java
 
b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/DeadlockPreventionPolicyConfigurationTest.java
deleted file mode 100644
index 62710cfa3f3..00000000000
--- 
a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/DeadlockPreventionPolicyConfigurationTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.tx;
-
-import static 
org.apache.ignite.internal.tx.impl.DeadlockPreventionPolicyImpl.TxIdComparators.NATURAL;
-import static 
org.apache.ignite.internal.tx.impl.DeadlockPreventionPolicyImpl.TxIdComparators.NONE;
-import static 
org.apache.ignite.internal.tx.impl.DeadlockPreventionPolicyImpl.TxIdComparators.REVERSED;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.Comparator;
-import java.util.UUID;
-import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
-import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
-import org.apache.ignite.internal.tx.configuration.TransactionConfiguration;
-import org.apache.ignite.internal.tx.impl.DeadlockPreventionPolicyImpl;
-import 
org.apache.ignite.internal.tx.impl.DeadlockPreventionPolicyImpl.TxIdComparators;
-import org.apache.ignite.internal.tx.impl.TxIdPriorityComparator;
-import org.jetbrains.annotations.Nullable;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-
-/**
- * Tests for {@link 
org.apache.ignite.internal.tx.configuration.DeadlockPreventionPolicyConfigurationSchema}.
- */
-@ExtendWith(ConfigurationExtension.class)
-public class DeadlockPreventionPolicyConfigurationTest extends 
BaseIgniteAbstractTest {
-    @InjectConfiguration
-    private TransactionConfiguration transactionConfigurationDefault;
-
-    @InjectConfiguration("mock: { deadlockPreventionPolicy: { waitTimeout: 
1000, txIdComparator: NATURAL } }")
-    private TransactionConfiguration transactionConfigurationMockedNatural;
-
-    @InjectConfiguration("mock: { deadlockPreventionPolicy: { waitTimeout: 
100, txIdComparator: REVERSED } }")
-    private TransactionConfiguration transactionConfigurationMockedReversed;
-
-    @InjectConfiguration("mock: { deadlockPreventionPolicy: { waitTimeout: 0, 
txIdComparator: NONE } }")
-    private TransactionConfiguration transactionConfigurationMockedNone;
-
-    @Test
-    public void checkDefaults() {
-        assertEquals(0, 
transactionConfigurationDefault.deadlockPreventionPolicy().waitTimeout().value());
-        assertEquals(NATURAL.toString(),
-                
transactionConfigurationDefault.deadlockPreventionPolicy().txIdComparator().value());
-
-        assertPolicyIsCorrect(createPolicy(transactionConfigurationDefault), 
transactionConfigurationDefault);
-    }
-
-    @Test
-    public void checkMockedNatural() {
-        assertEquals(1000, 
transactionConfigurationMockedNatural.deadlockPreventionPolicy().waitTimeout().value());
-        assertEquals(NATURAL.toString(),
-                
transactionConfigurationMockedNatural.deadlockPreventionPolicy().txIdComparator().value());
-
-        
assertPolicyIsCorrect(createPolicy(transactionConfigurationMockedNatural), 
transactionConfigurationMockedNatural);
-    }
-
-    @Test
-    public void checkMockedReversed() {
-        assertEquals(100, 
transactionConfigurationMockedReversed.deadlockPreventionPolicy().waitTimeout().value());
-        assertEquals(REVERSED.toString(),
-                
transactionConfigurationMockedReversed.deadlockPreventionPolicy().txIdComparator().value());
-
-        
assertPolicyIsCorrect(createPolicy(transactionConfigurationMockedReversed), 
transactionConfigurationMockedReversed);
-    }
-
-    @Test
-    public void checkMockedNone() {
-        assertEquals(0, 
transactionConfigurationMockedNone.deadlockPreventionPolicy().waitTimeout().value());
-        assertEquals(NONE.toString(),
-                
transactionConfigurationMockedNone.deadlockPreventionPolicy().txIdComparator().value());
-
-        
assertPolicyIsCorrect(createPolicy(transactionConfigurationMockedNone), 
transactionConfigurationMockedNone);
-    }
-
-    private void assertPolicyIsCorrect(DeadlockPreventionPolicy policy, 
TransactionConfiguration cfg) {
-        assertEquals(cfg.deadlockPreventionPolicy().waitTimeout().value(), 
policy.waitTimeout());
-        assertComparatorIsCorrect(policy.txIdComparator(), 
cfg.deadlockPreventionPolicy().txIdComparator().value());
-    }
-
-    private DeadlockPreventionPolicy createPolicy(TransactionConfiguration 
cfg) {
-        return new DeadlockPreventionPolicyImpl(
-                cfg.deadlockPreventionPolicy().txIdComparator().value(),
-                cfg.deadlockPreventionPolicy().waitTimeout().value()
-        );
-    }
-
-    private void assertComparatorIsCorrect(@Nullable Comparator<UUID> 
actualComparator, String configured) {
-        TxIdComparators configuredEnum = TxIdComparators.valueOf(configured);
-
-        if (actualComparator == null) {
-            assertEquals(NONE, configuredEnum);
-            return;
-        }
-
-        TxIdPriorityComparator naturalComparator = new 
TxIdPriorityComparator();
-
-        UUID uuid1 = UUID.randomUUID();
-        UUID uuid2;
-
-        do {
-            uuid2 = UUID.randomUUID();
-        } while (naturalComparator.compare(uuid1, uuid2) == 0);
-
-        UUID greater = naturalComparator.compare(uuid1, uuid2) > 0 ? uuid1 : 
uuid2;
-        UUID lesser = naturalComparator.compare(uuid1, uuid2) > 0 ? uuid2 : 
uuid1;
-
-        int cmp = actualComparator.compare(greater, lesser);
-        if (cmp > 0) {
-            assertEquals(NATURAL, configuredEnum);
-        } else {
-            assertEquals(REVERSED, configuredEnum);
-        }
-    }
-}
diff --git 
a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxCleanupTest.java
 
b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxCleanupTest.java
index 7ceb1b34853..c5ac123bcc3 100644
--- 
a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxCleanupTest.java
+++ 
b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxCleanupTest.java
@@ -122,8 +122,7 @@ public class TxCleanupTest extends IgniteAbstractTest {
                 new TxMessageSender(
                         messagingService,
                         replicaService,
-                        clockService,
-                        transactionConfiguration
+                        clockService
                 )
         );
 
diff --git 
a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java
 
b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java
index a0fb8182dbf..e8f1730499c 100644
--- 
a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java
+++ 
b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/TxManagerTest.java
@@ -63,6 +63,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.function.LongSupplier;
 import java.util.stream.Stream;
+import org.apache.ignite.internal.configuration.SystemDistributedConfiguration;
 import org.apache.ignite.internal.configuration.SystemLocalConfiguration;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
@@ -150,6 +151,9 @@ public class TxManagerTest extends IgniteAbstractTest {
     @InjectConfiguration
     private SystemLocalConfiguration systemLocalConfiguration;
 
+    @InjectConfiguration
+    private SystemDistributedConfiguration systemDistributedConfiguration;
+
     @InjectExecutorService
     private ScheduledExecutorService commonScheduler;
 
@@ -175,6 +179,7 @@ public class TxManagerTest extends IgniteAbstractTest {
 
         txManager = new TxManagerImpl(
                 txConfiguration,
+                systemDistributedConfiguration,
                 clusterService,
                 replicaService,
                 lockManager(),
diff --git 
a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/impl/OrphanDetectorTest.java
 
b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/impl/OrphanDetectorTest.java
index 2b93e512206..ed96b090edc 100644
--- 
a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/impl/OrphanDetectorTest.java
+++ 
b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/impl/OrphanDetectorTest.java
@@ -73,7 +73,6 @@ import org.mockito.junit.jupiter.MockitoExtension;
  */
 @ExtendWith({MockitoExtension.class, ConfigurationExtension.class})
 public class OrphanDetectorTest extends BaseIgniteAbstractTest {
-
     private static final ClusterNode LOCAL_NODE =
             new ClusterNodeImpl(randomUUID(), "local", new 
NetworkAddress("127.0.0.1", 2024), null);
 
@@ -135,7 +134,7 @@ public class OrphanDetectorTest extends 
BaseIgniteAbstractTest {
 
         txStateMetaStorage.start();
 
-        orphanDetector.start(txStateMetaStorage, 
txConfiguration.abandonedCheckTs());
+        orphanDetector.start(txStateMetaStorage, () -> 30_000L);
     }
 
     @AfterEach

Reply via email to