DB2 11.5.9:用于查找在特定包上持有共享锁(内部计划锁)的应用程序的 SQL

问题描述 投票:0回答:1

我正在 zLinux SLES 12SP5 上运行 DB2 v11.5.9。

我正在尝试构建一个 SQL 语句(因此不使用 db2pd 实用程序),以便查找当前在特定包上持有内部计划锁(共享锁)的所有应用程序/连接/应用程序句柄。 我拥有的唯一信息是包架构和名称。 我没有使用表函数 MON_GET_LOCKS 和 MPN_FORMAT_LOCK_NAME 到达那里...

谢谢

尝试了我知道的所有表功能/管理视图

db2
1个回答
0
投票

试试这个:

SELECT L.LOCK_NAME, L.APPLICATION_HANDLE
FROM TABLE (MON_GET_LOCKS ('<lock_object_type>plan</lock_object_type>', -2)) L
CROSS JOIN TABLE
(
  SELECT VALUE AS UNIQUE_ID
  FROM TABLE (MON_FORMAT_LOCK_NAME (L.LOCK_NAME))
  WHERE NAME = 'PACKAGE_TOKEN'
) F
JOIN SYSCAT.PACKAGES P ON P.UNIQUE_ID = F.UNIQUE_ID
WHERE (P.PKGSCHEMA, P.PKGNAME) = ('MY_PKG_SCHEMA', 'MY_PKG_NAME') 
© www.soinside.com 2019 - 2024. All rights reserved.