查询Firebird中的RDB $ TRANSACTIONS表(2.1)

时间:2012-11-28 02:10:27

标签: transactions metadata firebird

如何在firebird中使用与事务相关的元数据(使用版本2.1)?

例如:

1)打开一个isql会话,更改一些表,保持事务处理打开。

2)打开另一个isql会话,执行以下查询:

SELECT * FROM RDB$TRANSACTIONS;

不返回任何行。我需要启用哪些特殊信息才能获取此信息?

1 个答案:

答案 0 :(得分:1)

表RDB $ TRANSACTIONS仅用于分布式事务(即针对多个数据库运行的事务)。对于监控常规交易,请使用表MON $ TRANSACTIONS。

MON$TRANSACTIONS (started transactions)
  - MON$TRANSACTION_ID (transaction ID)
  - MON$ATTACHMENT_ID (attachment ID)
  - MON$STATE (transaction state)
       0: idle
       1: active
  - MON$TIMESTAMP (transaction start date/time)
  - MON$TOP_TRANSACTION (top transaction)
  - MON$OLDEST_TRANSACTION (local OIT number)
  - MON$OLDEST_ACTIVE (local OAT number)
  - MON$ISOLATION_MODE (isolation mode)
       0: consistency
       1: concurrency
       2: read committed record version
       3: read committed no record version
  - MON$LOCK_TIMEOUT (lock timeout)
      -1: infinite wait
       0: no wait
       N: timeout N
  - MON$READ_ONLY (read-only flag)
  - MON$AUTO_COMMIT (auto-commit flag)
  - MON$AUTO_UNDO (auto-undo flag)
  - MON$STAT_ID (statistics ID)