yritech
作者yritech·2010-05-18 12:34
数据库管理员·国信网联

SQL0818N发生时间戳记冲突

字数 2461阅读 4512评论 0赞 0
我的一个应用transfer,运行报错,日志如下:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2010-05-17 13:09:41 Node::PreDataForNoParaFile  对数据库进行的操作语句为:begin db   操作成功!
2010-05-17 13:09:42 Node::PreDataForNoParaFile  对数据库进行的操作语句为:UPDATE P01_TOD_INDEX SET TRANS_TAG = 2 WHERE TRANS_TAG = 0 AND STATE_TAG = 1
 操作失败!失败的原因为:没有得到错误原因,但返回值为:-818
2010-05-17 13:09:42 Node::PreDataForNoParaFile  对数据库进行的操作语句为:rollback db   操作成功!
2010-05-17 13:09:42 Node::PreDataForNoParaFile  对数据库进行的操作语句为:begin db   操作成功!
2010-05-17 13:09:42 Node::PreDataForNoParaFile  对数据库进行的操作语句为:update P02_E_TOD set TRANS_TAG = 2 where TRANS_TAG = 0 AND STATE_TAG = 1
 操作失败!失败的原因为:没有得到错误原因,但返回值为:-818
2010-05-17 13:09:42 Node::PreDataForNoParaFile  对数据库进行的操作语句为:rollback db   操作成功!
2010-05-17 13:09:42 Node::PreDataForNoParaFile  对数据库进行的操作语句为:begin db   操作成功!
2010-05-17 13:09:42 Node::PreDataForNoParaFile  对数据库进行的操作语句为:update P03_X_TOD set TRANS_TAG = 2 where TRANS_TAG = 0 AND STATE_TAG = 1
 操作失败!失败的原因为:没有得到错误原因,但返回值为:-818
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
查看818详细描述,可能需要重新绑定,于是我重新绑定数据库,但是报错,于是重新启动计算机,问题依旧,再次绑定,竟然成功了。。。。。很奇怪。。。。

以下三个时间戳必须一致,否则就会提示sql818错误。
1、绑定文件中头部的时间戳
2、应用程序本身的时间戳
3、数据库应用程序包内部的时间戳

1、db2bfd -s -b -v tsdb2.bnd----->得到timestamp = TBXYOCEW:2006/04/02 14:24:23:81
2、包含在程序tsdb2.c的头部
3、select unique_id from syscat.packages where pkgname = 'TSDB2'
   unique_id =TBXYOCEW
可以删除这个程序包,重新绑定
db2 drop package tsdb2
db2 bind *.bnd

db2 => ? sql818
SQL0818N发生时间戳记冲突。
解释:
预编译时由预编译器生成的时间戳记与绑定时存储在程序包内的时间戳记不
同。
此问题可能是由下列各项导致的:
o   应用程序已预编译、编译和链接,但是未绑定。
o   应用程序已预编译和绑定,但是未编译和/或链接,所以正在执行的应
    用程序不是最新的。
o   程序包由与生成编译并链接至应用程序可执行文件的已修改源文件的预
    编译不同的源文件预编译生成的绑定文件绑定。
o   新应用程序与相同名称和现有的程序包绑定,这样就替换了现有的程序
    包。如果运行与替换的程序包相关联的应用程序,则将导致此错误。
 
联合系统用户:除了前面列示的原因之外,该问题还可因未在所有适用数据
源上绑定必需的程序包而引起。
不能处理该语句。
用户响应:
使用与对象模块匹配的程序的绑定文件再次绑定应用程序。或者,执行与存
储在数据库中的程序包相应的程序。
若正在安装样本数据库,则记录此消息的编号和文本,然后与
技术服务代表 联系。
联合系统用户:除了前面列示的操作之外,确保在适用的数据源上绑定联合
服务器所必需的程序包。参阅联合系统指南以了解有关将程序包与数据源绑
定的更多信息。
 sqlcode :  -818
 sqlstate :  51003

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广