IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

重新绑定问题


IBM大型机论坛 -> DB2
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2013年4月24日星期三下午7:59
引用回复

你好

我们正在维护同一软件包的多个版本。通常,在更改任何表之后,我们通过假定最新的软件包版本是具有最新时间戳的软件包版本,从目录中生成重新绑定语句。

我们最近遇到了其中一种重新绑定问题。当我们按照上述假设绑定软件包时,其中一个软件包在执行程序时失败,并显示-904。之后,待命的DBA必须重新绑定该软件包的正确版本。在这种情况下,最新的软件包版本不是所使用的正确版本。

我的问题是-我们如何确定要执行的最新软件包版本以生成rebind语句?
回到顶部
查看用户资料 发送私信
苏珊斯·鲍比

高级会员


已加入:2008年7月29日
帖子:1018
地点:印度

发布发表:2013年4月25日,星期四,上午9:29
引用回复

你好 吉尔巴拉特,

如果使用的是V10,请检查SYSPACKAGE表的LASTUSED列。

更改后,当前用于生成REBIND语句的查询是什么?

问候,
苏珊斯
回到顶部
查看用户资料 发送私信
阿努·达万(Anuj Dhawan)

高级会员


已加入:2006年4月22日
帖子:6250
地点:印度孟买

发布发表:2013年4月25日,星期四,上午10:14
引用回复

除非'弄错了-否则“ SQLCODE -904”是“由于无法使用的资源导致的未成功执行”,那么这真的是REBIND问题吗?
回到顶部
查看用户资料 发送私信
潘多拉魔盒

主持人


已加入:2006年9月7日
职位:1565
地点:仙女座星系

发布发表:2013年4月25日,星期四,上午10:31
引用回复

阿奴

在少数情况下,我通过重新绑定解决了-904(我真的无法回忆)

另外,当我们使用EXPLAIN(YES)时,在绑定时我们可能会遇到-904
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2013年4月25日,星期四2:01 pm
引用回复

你好

请在下面找到用于生成重新绑定卡的查询。

码:
                                                               
 WITH PACKDEP AS (                                                       
 SELECT 以“ A”代替“重新绑定”,                                       
 当DTYPE ='T'然后以'TRIGGER PACKAGE'否则'BACKAGE'结束为B时的情况,   
 '('||STRIP (DCOLLID, T)||'.'||DNAME||'.('||STRIP(VERSION,T)||')' AS C, 
 ' QUALIFIER('||STRIP(QUALIFIER,T)||')' AS D,                           
 ' VALIDATE(BIND)' AS E,                                                 
 ' ISOLATION(UR)' AS F,                                                 
 ' EXPLAIN(YES) ' AS G,                                                 
 ' DYNAMICRULES(RUN)' AS H,                                             
 ' DEGREE(1  )' AS I,                                                   
 ' DBPROTOCOL(DRDA)' AS J,                                               
 ' OWNER('||STRIP(OWNER,T)||')' AS K                                     
 从SYSIBM.SYSPACKDEP A,SYSIBM.SYSPACKAGE B                           
 WHERE A.BTYPE IN ('T','V')                                             
 AND A.BNAME IN (                                                       
    'TABLE01'                                                           
              )                                                         
 AND A.BQUALIFIER IN ( 'COLL01')                                           
 AND A.DCOLLID = B.COLLID                                               
 AND A.DNAME   = B.NAME                                                 
 AND B.BINDTIME = ( 选择最大(C.BINDTIME) FROM                         
                    SYSIBM.SYSPACKAGE C                                 
                    WHERE  B.COLLID = C.COLLID                           
                    AND    B.NAME   = C.NAME                             
                  )                                                     
 )                                                                       
使用UR从PACKDEP ORDER中选择A || B || C || D || E || F || G || H || I || J || K;


在这种情况下,我们使用的是MAX(C.BINDTIME)-但​​这一次它选择了错误的版本,因为此语句选择的最新版本不是当前使用的版本。
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2013年4月25日,星期四,下午2:05
引用回复

我认为一种方法可能是-读取所有版本的一致性令牌,然后尝试将其与loadlib匹配。但是为此,它需要大量自动化。如果我们可以使用SQL查询找到相同的内容,那么从DB2目录中查找将是更好的方法。
回到顶部
查看用户资料 发送私信
阿努·达万(Anuj Dhawan)

高级会员


已加入:2006年4月22日
帖子:6250
地点:印度孟买

发布发表:2013年4月25日,星期四,下午6:55
引用回复

潘多拉魔盒(Pandora-Box)-正如巴拉特所说,重点是我
引用:
之后,待命的DBA必须与 软件包的正确版本。在这种情况下,最新的软件包版本不是所使用的正确版本。
-因此,换句话说,使用了该软件包的“不正确的版本”-对于DB2,如果任何试图运行该应用程序“旧版本”的用户都将收到SQLCODE -818,表明时间戳错误不匹配 如此处所述。 (尽管链接较旧,但仍然有效)。

因此,从发布的内容中得出的推论是-从DB2的角度来看,执行REBIND的资源(包的版本)在REBIND时“不可用”,而对于DB2“资源不可用”,则发出- 904,而不是-818。这就是为什么要问一个问题,这真的是REBIND问题吗?
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2013年4月25日,星期四,下午7:23
引用回复

嗨阿努吉,

我认为此软件包无法正常运行,因为它与错误的版本绑定在一起。当程序运行时,DB2尝试使用正确的软件包版本进行自动绑定,但是由于目录争用而导致失败的某些原因-可能导致-904。
回到顶部
查看用户资料 发送私信
卡尔提凯扬·斯巴拉巴拉扬

新的用户


已加入:2008年2月24日
帖子:62
地点:波士顿

发布发表:2013年4月26日,星期五1:54上午
引用回复

您的应用程序会尝试自动绑定吗?
回到顶部
查看用户资料 发送私信
苏珊斯·鲍比

高级会员


已加入:2008年7月29日
帖子:1018
地点:印度

发布发表于:星期五四月26,2013 10:33上午
引用回复

你好

它不是重新绑定的问题,而是实际执行该程序包的哪个版本。

在场景中,如果您在生产中实施某些东西并决定在实施之后将其退回,那么您将把旧的装载模块放回原处,并且该装载将使用第二个而不是最新的装载模块。

您正在使用,
码:
 AND B.BINDTIME = ( 选择最大(C.BINDTIME) FROM                         
                    SYSIBM.SYSPACKAGE C           

另一个想法
码:
 AND A.TIMESTAMP = (SELECT MAX(TIMESTAMP)从SYSIBM.SYSPACKAGE

弄清楚实际上正在运行哪些程序包,我可以想到几种方法,但我还没有尝试过,
1. CA检测器能够将所有跟踪信息存储在下面的表中,我们用来从这些表中获取所有例外程序和错误详细信息。您可以检查那里是否有任何关联列。
2. DB2PM表
3.从DB2 V10的LASTUSED列的SYSPACKAGE表中

问候,
苏珊斯
回到顶部
查看用户资料 发送私信
陀螺仪

活跃的成员


已加入:2009年7月31日
帖子:565
地点:班加罗尔

发布发表:2013年4月26日,星期五2:06 pm
引用回复

嗨苏珊斯,

我们仍在向V10迁移的过程中。

您能否详细说明

1. CA检测器能够将所有跟踪信息存储在下面的表中,我们用来从这些表中获取所有例外程序和错误详细信息。您可以检查那里是否有任何关联列。
2. DB2PM表
回到顶部
查看用户资料 发送私信
苏珊斯·鲍比

高级会员


已加入:2008年7月29日
帖子:1018
地点:印度

发布发表:2013年4月26日,星期五3:30 pm
引用回复

你好,

CA检测器
在CA Detector中看到的所有实时信息都存储在数据存储中(而不是表,可能在VSAM中)。但是,detector允许您卸载该信息并将其加载到DB2表中,该表可用于分析。您可以从《检测器用户指南》中获取有关它的详细信息& Reference Manauals. 我通过谷歌搜索发现了这个word文档,请检查一下,它将为您提供一个想法。

我的想法是,如果在向下钻取时可以在CA-Detector中看到程序包的一致性令牌,那么它肯定会在数据存储区中可用,因此可以从数据存储区中卸载并将其加载到表中。

设置它是一项非常艰巨的任务,在我以前的公司中,购买产品时,CA人员已经设置了该过程。

DB2PM表
如果您已经设置了DB2 Performance Database来捕获所需的信息。您可以从表DB2PMFACCT_PROGRAM和列(PCK_COLLECTION_ID,PCK_ID,PCK_CONSIST_TOKEN)中获得有关软件包及其令牌的详细信息。

谢谢,
苏珊斯
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> DB2

 


类似主题
话题 论坛 回覆
该主题已锁定:您无法编辑帖子或回复。 语法错误的问题 同步排序 2
没有新帖 提取列时发生问题(Nullabl ... DB2 18
没有新帖 在浏览器中读取文件时出现问题... TSO / ISPF 7
没有新帖 在SFTP中发布文件 所有其他大型机主题 1
没有新帖 创建KWIKKEY实用程序时出现问题... JCL和VSAM 2
搜索我们的论坛:


回到顶部