Hello,

With a transactional queue (CollectionConfiguration.atomicityMode =
TRANSACTIONAL), the queue implementation starts a transaction
internally [1].

If a transaction already exists in the current thread, queue operation
will fail with "Failed to start new transaction (current thread
already has a transaction)" [2]


[1] 
https://github.com/apache/ignite/blob/ee955df9fb80737292aac5f7ad3c82f8f0d8ea8e/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridTransactionalCacheQueueImpl.java#L56
[2] 
https://github.com/apache/ignite/blob/297bc9cc470c569d4c0e6ed12c734e3b92bc3d58/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTransactionsImpl.java#L194

On Thu, Jun 5, 2025 at 5:24 AM Alex Roytman <roytm...@gmail.com> wrote:
>
> Hello,
>
> Can Ignite 2.0 queue be transactional and if so what does it mean?
> If a thread starts a transaction will it block the queue for other 
> threads/clients?
> If a thread rolls back its transaction will it return the taken item(s) the 
> queue? In what place on the queue?
>
> Thank you,
> Alex
>

Reply via email to