Show and terminate transactions
Transactions can be managed using the Cypher commands SHOW TRANSACTIONS and TERMINATE TRANSACTIONS.
Multiple SHOW TRANSACTIONS and TERMINATE TRANSACTIONS commands can be combined in the same query.
As of Neo4j 2026.05, using Cypher 25, it is also possible to combine the transaction commands with general Cypher clauses.
For general information about the SHOW command, see the Cypher Manual → SHOW.
Show transactions
The SHOW TRANSACTIONS command displays currently running transactions across the instance.
To track transactions on remote database aliases, run SHOW TRANSACTIONS while connected to the remote database alias.
A user with the SHOW TRANSACTION privilege can view currently executing transactions, but only to the extent allowed by their granted permissions.
All users can always view their own active transactions.
Syntax
For full details about the syntax descriptions, see Administration command syntax.
| Action | Syntax | ||
|---|---|---|---|
Show transactions on the current server |
|
|
When using the |
Return columns
SHOW TRANSACTIONS returns the following columns:
| Column | Description | Type | Default output |
|---|---|---|---|
|
The name of the database the transaction is executing against. |
|
|
|
The transaction ID. |
|
|
|
The ID of the query currently executing in this transaction, or |
|
|
|
The ID of the database connection attached to the transaction or an empty |
|
|
|
The client address of the connection issuing the transaction or |
|
|
|
The username of the user executing the transaction. |
|
|
|
The query text of the query currently executing in this transaction, or |
|
|
|
The time at which the transaction was started. |
|
|
|
The current status of the transaction ( |
|
|
|
The time that has elapsed since the transaction was started. |
|
|
|
The ID of this transaction’s outer transaction, if such exists, otherwise |
|
|
|
Any metadata associated with the transaction, or an empty map if there is none. |
|
|
|
A map containing all the parameters used by the query currently executing in this transaction, or |
|
|
|
The name of the Cypher planner used to plan the query currently executing in this transaction, or |
|
|
|
The name of the Cypher runtime used by the query currently executing in this transaction, or |
|
|
|
The indexes utilized by the query currently executing in this transaction, or |
|
|
|
The time at which the query currently executing in this transaction was started, or |
|
|
|
The protocol used by the connection issuing the transaction. This is not necessarily an internet protocol, such as http, etc., although it could be. It might also be "embedded", for example, if this connection represents an embedded session. |
|
|
|
The request URI used by the client connection issuing the transaction, or |
|
|
|
The current status of the query currently executing in this transaction ( |
|
|
|
Provide additional status details from the underlying transaction or an empty |
|
|
|
Information about any blocked transactions, or an empty map if there is none. |
|
|
|
Count of active locks held by the transaction. |
|
|
|
Count of active locks held by the query currently executing in this transaction. |
|
|
|
CPU time that has been actively spent executing the transaction or |
|
|
|
Wait time that has been spent waiting to acquire locks. |
|
|
|
Idle time for this transaction, or |
|
|
|
The time that has elapsed since the query currently executing in this transaction was started, or |
|
|
|
CPU time that has been actively spent executing the query currently executing in this transaction, or |
|
|
|
Wait time that has been spent waiting to acquire locks for the query currently executing in this transaction, or |
|
|
|
Idle time for the query currently executing in this transaction, or |
|
|
|
The number of bytes allocated on the heap so far by the query currently executing in this transaction, or |
|
|
|
Amount of off-heap (native) memory allocated by the transaction in bytes or |
|
|
|
The estimated amount of used heap memory allocated by the transaction in bytes or |
|
|
|
The total number of page cache hits that the transaction performed. |
|
|
|
The total number of page cache faults that the transaction performed. |
|
|
|
The total number of page cache hits that the query currently executing in this transaction performed. |
|
|
|
The total number of page cache faults that the query currently executing in this transaction performed. |
|
|
|
The initialization stacktrace for this transaction, or an empty |
|
|
|
Cypher 25 Introduced in Neo4j 2026.03 A map containing real time metrics of data modifications made by the query currently executing in this transaction, or |
|
| Key | Description |
|---|---|
|
Total number of nodes created. |
|
Total number of nodes deleted. |
|
Total number of relationships created. |
|
Total number of relationships deleted. |
|
Total number of properties set. |
|
Total number of labels added. |
|
Total number of labels removed. |
|
Total number of CSV file lines read. |
|
Total number of inner transactions started by the |
|
Total number of inner transactions committed by the |
|
Total number of inner transactions rolled back by the |
For more information about transactionsStarted, transactionsCommitted, and transactionsRolledBack see the Cypher Manual → CALL subqueries in transactions.
Examples
SHOW TRANSACTIONS
SHOW TRANSACTIONS YIELD *
SHOW TRANSACTIONS "neo4j-transaction-3"
SHOW TRANSACTIONS with WHERESHOW TRANSACTIONS YIELD database, currentQuery
WHERE currentQuery contains 'Mark'
SHOW TRANSACTIONS
YIELD transactionId, elapsedTime, cpuTime, waitTime, idleTime,
currentQueryElapsedTime, currentQueryCpuTime, currentQueryWaitTime, currentQueryIdleTime
RETURN
transactionId AS txId,
elapsedTime.milliseconds AS elapsedTimeMillis,
cpuTime.milliseconds AS cpuTimeMillis,
waitTime.milliseconds AS waitTimeMillis,
idleTime.seconds AS idleTimeSeconds,
currentQueryElapsedTime.milliseconds AS currentQueryElapsedTimeMillis,
currentQueryCpuTime.milliseconds AS currentQueryCpuTimeMillis,
currentQueryWaitTime.microseconds AS currentQueryWaitTimeMicros,
currentQueryIdleTime.seconds AS currentQueryIdleTimeSeconds
Terminate transactions
The TERMINATE TRANSACTIONS command is used to terminate running transactions by their IDs.
A user with the TERMINATE TRANSACTION privilege can terminate transactions, subject to the scope of their granted permissions.
All users may terminate their own currently executing transactions.
Syntax
For full details about the syntax descriptions, see Administration command syntax.
| Action | Syntax | ||
|---|---|---|---|
Terminate transactions by ID on the current server |
|
|
When using the |
Return columns
All columns are returned by default for TERMINATE TRANSACTIONS.
As a result, appending YIELD * to TERMINATE TRANSACTIONS does not return any additional information.
TERMINATE TRANSACTIONS returns the following columns:
| Column | Description | Type |
|---|---|---|
|
The transaction ID. |
|
|
The username of the user executing the transaction. |
|
|
The result of the |
|
Examples
TERMINATE TRANSACTIONS "neo4j-transaction-1","neo4j-transaction-2"
TERMINATE TRANSACTIONS with WHERETERMINATE TRANSACTIONS "neo4j-transaction-1","neo4j-transaction-2"
YIELD transactionId, message
WHERE message <> "Transaction terminated."
|
Unlike the |
Combine transaction commands
SHOW TRANSACTIONS can be combined with TERMINATE TRANSACTIONS to identify and terminate transactions in the same statement.
Multiple SHOW and TERMINATE transactions can be included in a single statement.
|
When combining |
Alice and terminate themSHOW TRANSACTIONS
YIELD transactionId AS txId, username AS user
WHERE user = "Alice"
TERMINATE TRANSACTIONS txId
YIELD message
RETURN txId, message
SHOW TRANSACTIONS
YIELD transactionId, waitTime
WHERE waitTime > duration({minutes: 30})
TERMINATE TRANSACTIONS transactionId
YIELD username, message
RETURN *
TERMINATE TRANSACTION 'neo4j-transaction-1', 'neo4j-transaction-2'
YIELD username AS terminatedUser
SHOW TRANSACTIONS
YIELD username AS showUser, transactionId AS txId, database, currentQuery, status
WHERE showUser = terminatedUser AND NOT status STARTS WITH 'Terminated'
RETURN txId, showUser AS user, database, currentQuery
SHOW TRANSACTION 'neo4j-transaction-1'
YIELD username AS originalUser, transactionId AS originalTxId
SHOW TRANSACTIONS
YIELD username AS newUser, transactionId AS txId, database, currentQuery, status
WHERE newUser = originalUser AND NOT txId = originalTxId
RETURN txId, newUser AS user, database, currentQuery, status
Combine transaction commands with other Cypher commandsCypher 25Introduced in 2026.05
SHOW TRANSACTIONS and TERMINATE TRANSACTIONS can be combined with other Cypher commands to form a single query.
|
When combining |
WITH ['neo4j-transaction-1', 'neo4j-transaction-2', 'mydb-transaction-1'] AS idsToTerminate
TERMINATE TRANSACTION idsToTerminate
YIELD username AS terminatedUser
WITH DISTINCT terminatedUser, idsToTerminate (1)
SHOW TRANSACTIONS
YIELD username AS showUser, transactionId AS txId, database, currentQuery
WHERE showUser = terminatedUser AND NOT txId IN idsToTerminate
RETURN txId, showUser AS user, database, currentQuery
| 1 | WITH DISTINCT is used to remove any duplicate users and transaction IDs. |