ttXactAdmin 用于显示未完成事务处理的锁信息。

语法

   ttXactAdmin [LockOptions | LatchOptions |
   		TransactionOptions | ConnectionOptions | XAOptions]
   		{DSN | {[-connstr] ConnectionString}}

   LockOptions 的语法:
   		[-v VerbosityLevel] [-lsn] [-mt MaximumTransactions]
   		[-ml MaximumLocks] [-pid ProcessID]
   		[-xact TransactionID] [-tbl [Owner.]TableName]
	   	[interval Seconds] [-count NumReport]
  • -v:确定是否显示行锁的表名(默认值:1 [显示行锁的表名])
  • -lsn:显示由事务处理生成的第一条和最后一条日志记录的日志序列号 (LSN)。如果第一个 LSN 和最后一个 LSN 的值均为 –1.–000001,则表示事务处理为只读。
  • -mt:指定最多显示 MaximumTransactions 个事务处理(默认值:显示所有未完成的事务处理)
  • -ml:指定最多显示每个事务处理的 MaximumLocks 个锁(默认值:6000)

  • -pid:只显示由指定进程启动的事务处理的锁信息。在 Linux 系统上,该信息是指打开了连接的线程的 PID。
  • -xact:只显示指定事务处理的锁信息
  • -tbl:只显示指定表的锁信息
  • -interval:指定每隔 Seconds 秒生成并显示一个报告。它与 -count 选项一起使用(默认值:1)。
  • -count:指定报告应生成并显示 NumReport 次(默认值:1)
  • LatchOptions 的语法

    		{-latch | {-latchstats [clear | on | off | show]}}
    		[-interval Seconds] [-count NumReport] 

  • -latch:显示数据存储上的闩锁信息。闩锁是一些低级别的并发资源,用于禁止对内部数据结构进行并发访问,这些闩锁对应用程序来说是透明的。闩锁的运行速度非常快,而且持有时间非常短,而且不能通过交互方式跨应用程序运行。
  • -latchstats:将闩锁统计信息重置为零 (clear)、启用闩锁统计信息的收集 (on)、禁用闩锁统计信息的收集 (off),或显示访问计数之类的闩锁统计信息 (show)。默认选
    项是显示闩锁统计信息。
  • 保留 -latch 和 -latchstats 选项的目的,通常为了让 TimesTen 技术支持解决系统挂起或响应时间较长等问题。

    -interval 和 -count 选项与 LockOptions 中的选项相同。

    TransactionOptions 的语法

    		-xactIdRollback TransactionID

  • –xactIdRollback:通过先停止在指定的事务处理内部执行的操作(包括正进行的所有检查点操作)来回退该事务处理。
  • 如果该事务处理尝试执行回退之外的其它操作,则会向受影响的事务处理返回 TimesTen错误 1203(This transaction needs rollback since rollback was forced(此事务处理需要回退,因为已强制实施回退))。

    如果实例启用了访问控制,则只有实例管理员或具有 ADMIN 权限的用户能够回退其它连接的事务处理。

    ConnectionOptions 的语法

    		 -connections [-pid ProcessID] [-interval Seconds]
       		[-count NumReport]
  • -connections:显示数据存储上有关连接的信息,例如连接中暂挂的未完成事务处理、连接名以及这些连接的封装进程的 ID。此选项在排除挂起系统的问题时很有用,因为在收集和显示连接信息时不会获取闩锁。
  • -pid:显示由指定进程建立的数据存储连接的信息。在 Linux 系统上,该信息是指打开了连接的线程的 PID。
  • -interval 和 -count 选项与 LockOptions 中的选项相同。

    XAOptions 的语法:

    {-HCommit | -HAbort | -HForget} TransactionID
      
  • -HCommit:试探性提交包含指定的本地 TimesTen 事务处理的 XA 事务处理分支
  • -HAbort:试探性退出包含指定的本地 TimesTen 事务处理的 XA 事务处理分支
  • -HForget:试探性忽略包含指定的本地 TimesTen 事务处理的 XA 事务处理分支TransactionID 是本地 TimesTen 事务处理的 ID。
  • ttXactAdmin 报告的各字段

  • Program File Name(程序文件名):启动了事务处理的应用程序可执行文件的文件名。如果应用程序使用客户机/服务器连接到数据存储,则该文件名为 TimesTen服务器进程的可执行文件名。如果客户机应用程序和服务器进程正在通过 TCP/IP进行通信,则报告中还会显示运行该客户机应用程序的系统的名称和 IP 地址,以及客户机应用程序的进程 ID。
  • PID:启动了事务处理的应用程序的进程 ID(在 Linux 上,则为打开了连接的线程的 PID)。
  • Context(上下文):区分一个进程中到数据存储的多个连接的内部标识符。
  • TransID(事务处理 ID):持有锁或等待锁的事务处理的唯一标识符。事务处理ID 的第一部分是连接编号,第二部分是事务处理编号。
  • TransStatus(事务处理状态):事务处理的当前状态
    • - Active(活动):活动的事务处理
    • - Committing(提交中):正在提交事务处理;正在释放锁
    • - Aborting(退出中):正在回退事务处理;正在释放锁
    • - Aborted(已退出):事务处理已回退;锁已释放
    • - Idle(空闲):事务处理分支当前没有访问数据
    • - Prepared(已准备):已准备的事务处理分支
    • - Heur-Committed(试探性提交):试探性地提交了事务处理分支
    • - Heur-Aborted(试探性退出):试探性地退出了事务处理分支
  • Resource(资源):锁定的实体
    • - Row(行):行级锁
    • - EndScan(结束扫描):表或 T 树的结束扫描锁
    • - HashedKey(散列键):散列索引键值上的持有锁;在操作需要更新散列索引时会获取该锁
    • - Table(表):表级锁
    • - Prepare(准备):准备语句时获取的锁
    • - Database(数据库):数据存储级锁
    • - GrpComm(组提交):组提交锁
    • - ReplHold(复制持有):复制书签的锁
    • - XlaHold(XLA 持有):XLA 书签的锁
    • - Command(命令):命令锁
    • - OraCommit(Oracle 提交):向 Oracle 提交高速缓存组更新时获取的锁定
  • ResourceID(资源 ID):每个资源的唯一标识符。标识符以十六进制格式显示,但“Table(表)”和“Command(命令)”标识符以十进制显示。对于行,此字段指示其行 ID。
  • Mode(模式):用于确定锁提供的并发级别的值
    • - IS:连续隔离中的意向共享锁
    • - IRC:在“读取已提交”隔离中用于读取表的锁;防止在表上执行 DDL 语句
    • - S:连续隔离中的共享锁
    • - Sn:“读取已提交”隔离中的共享锁
    • - IX:连续隔离中的意向排它锁
    • - IXn:“读取已提交”隔离中的意向排它锁
    • - SIX:有意在连续隔离中设置排它锁的共享锁
    • - SIXn:有意在“读取已提交”隔离中设置排它锁的共享锁
    • - IU:连续隔离中的意向更新锁
    • - IUn:“读取已提交”隔离中的意向更新锁
    • - U:连续隔离中的更新锁
    • - X:连续隔离中的排它锁
    • - W:更新、插入或删除表锁
    • - Xw:“读取已提交”隔离中的排它锁
    • - XNi:要插入表或非唯一索引中的下一个锁
    • - Un:“读取已提交”隔离中的更新锁
    • - En:“读取已提交”隔离中的结束扫描锁
    • - NS:与连续隔离中的表锁相冲突的“读取已提交”隔离中的表锁
  • Name(名称):在其上或者在其中持有锁或请求锁的表的名称
  • RMode:等待事务处理请求持有锁的请求模式
  • HolderTransID:持有锁的争用事务处理的事务处理 ID
  • HMode:争用事务处理持有等待事务处理请求锁的持有模式
  • 各列代表持有模式或 HMode,各行代表请求模式或 RMode。如果某一资源上的锁以特定模式 (HMode)授予了一个事务处理,当后续事务处理以特定模式 (RMode) 请求同一资源上的锁时,当持有模式与请求模式兼容 (+)时,该锁就会授予后续事务处理。否则,如果锁模式不兼容 (–),则后续事务处理必须等待,直至第一个事务处理释放锁。

    留言