Interface ITransactionsClient
Ignite Thin Client transactions facade.
Transactions are bound to the thread started the transaction. After that, each cache operation within this thread will belong to the corresponding transaction until the transaction is committed, rolled back or closed.
Should not be used with async calls.
using (var tx = igniteClient.GetTransactions().TxStart())
{
int v1 = cache<string, int>.Get("k1");
// Check if v1 satisfies some condition before doing a put.
if (v1 > 0)
cache.Put<string, int>("k1", 2);
cache.Remove("k2");
// Commit the transaction.
tx.Commit();
}
Alternatively,
using (var ts = new TransactionScope())
{
int v1 = cache<string, int>.Get("k1");
// Check if v1 satisfies some condition before doing a put.
if (v1 > 0)
cache.Put<string, int>("k1", 2);
cache.Remove("k2");
// Commit the transaction.
ts.Complete();
}
Namespace: Apache.Ignite.Core.Client.Transactions
Assembly: Apache.Ignite.Core.dll
Syntax
public interface ITransactionsClient
Properties
DefaultTimeout
Gets the default transaction timeout.
Declaration
TimeSpan DefaultTimeout { get; }
Property Value
| Type | Description |
|---|---|
| TimeSpan |
DefaultTransactionConcurrency
Gets the default transaction concurrency.
Declaration
TransactionConcurrency DefaultTransactionConcurrency { get; }
Property Value
| Type | Description |
|---|---|
| TransactionConcurrency |
DefaultTransactionIsolation
Gets the default transaction isolation.
Declaration
TransactionIsolation DefaultTransactionIsolation { get; }
Property Value
| Type | Description |
|---|---|
| TransactionIsolation |
Tx
Gets transaction started by this thread or null if this thread does not have a transaction.
Declaration
ITransactionClient Tx { get; }
Property Value
| Type | Description |
|---|---|
| ITransactionClient | Transaction started by this thread or null if this thread does not have a transaction. |
Methods
TxStart()
Starts a new transaction with the default isolation level, concurrency and timeout.
Default values for transaction isolation level, concurrency and timeout can be configured via TransactionClientConfiguration.
Should not be used with async calls.
Declaration
ITransactionClient TxStart()
Returns
| Type | Description |
|---|---|
| ITransactionClient | New transaction. |
TxStart(TransactionConcurrency, TransactionIsolation)
Starts a new transaction with the specified concurrency and isolation.
Should not be used with async calls.
Declaration
ITransactionClient TxStart(TransactionConcurrency concurrency, TransactionIsolation isolation)
Parameters
| Type | Name | Description |
|---|---|---|
| TransactionConcurrency | concurrency | Concurrency. |
| TransactionIsolation | isolation | Isolation. |
Returns
| Type | Description |
|---|---|
| ITransactionClient | New transaction. |
TxStart(TransactionConcurrency, TransactionIsolation, TimeSpan)
Starts a new transaction with the specified concurrency, isolation and timeout.
Should not be used with async calls.
Declaration
ITransactionClient TxStart(TransactionConcurrency concurrency, TransactionIsolation isolation, TimeSpan timeout)
Parameters
| Type | Name | Description |
|---|---|---|
| TransactionConcurrency | concurrency | Concurrency. |
| TransactionIsolation | isolation | Isolation. |
| TimeSpan | timeout | Timeout. TimeSpan. Zero for indefinite timeout. |
Returns
| Type | Description |
|---|---|
| ITransactionClient | New transaction. |
WithLabel(String)
Returns instance of ITransactionsClient to mark a transaction instance with a special label. The label is helpful for diagnostic and exposed to some diagnostic tools like SYS.TRANSACTIONS system view, control.sh commands, JMX TransactionsMXBean, long-running transactions dump in logs and Label via GetLocalActiveTransactions().
Declaration
ITransactionsClient WithLabel(string label)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | label | Label. |
Returns
| Type | Description |
|---|---|
| ITransactionsClient | ITransactionsClient |