4

如何在 firebird 中使用与交易相关的元数据(使用 2.1 版)?

例如:

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

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

SELECT * FROM RDB$TRANSACTIONS;

不返回任何行。我需要什么特别的东西才能获得这些信息吗?

4

1 回答 1

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)
于 2012-11-28T08:55:52.383 回答