天极Yesky
  • 笔记本电脑
    笔记本
  • 台式电脑
    台式机
  • 手机
    手机
  • 电脑硬件DIY
    DIY硬件
  • CPU
    主板
    音箱
  • 硬盘
    显卡
    键鼠
  • 内存光驱
    显示器
    机箱电源

  • 数码相机DC
    数码相机
  • MP3播放器
    MP3/MP4
  • 数码摄像机DV
    摄像机
  • 电脑外设
    外设
  • 网络
    网络
  • 服务器
    服务器
  • 数字家庭
    数字家庭
  • 群乐
    群乐
  • 产品报价 行情 经销商 渠道 评测 | 软件 设计 网页 开发 安全 论坛 E时代 游戏 图片 壁纸 下载 网摘 博客 索尼专区 Vista 科技奥运
    天极网
    并发作业出现异常,代码为-803
    作者: Craig Mullins
    出处:
    责任编辑: 丁一凡
    [ 2004-12-10 09:56 ]


      我们对同一个批处理的Cobol 程序运行了5个并发作业,向同一个DB2表中插入数据行。表的主键是当前时间标记(Current Time Stamp)。但是这些作业都出现异常了,错误代码是?803(SQL错误代码803)。我们对为什么发生这种情况一无所知。如果您能给我们提出些建议,我们会非常感激。
    此问题提交于2004年12月3日

      哦,也许您不会想要这个答案,但是实际情况确实如此。一个(或者更多个)批处理作业都是和其他的任何一个批处理作业使用同一个确切的时间标记值。而此时,你正在试图插入一个重复的键,独特(unique)的索引会阻止这种情况的发生。

      如果-803并不是经常出现,你可以考虑一下重新对你的程序进行编码,以便于在出现-803的时候再次执行INSERT语句。这样会使得DB2生成一个新的时间标记,这样就不会与先前的时间标记值产生冲突。然而,它仍然有可能与其他的作业产生冲突。当你更改你的代码的时候,确保还要包含一个计数器,用于在5个或者10个失败的尝试之后再次进行重试和异常终止。

      当然,你也可以通过不在同一时间运行这么多个作业来避免-803的问题。那样的话 ,你可以考虑一下缩减并发作业的数量(例如少于5个),或者重新设计你的数据库中的表,令其使用不同的主键。

    笔名:
    请您注意:

     遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

     天极网拥有管理笔名和留言的一切权利。
    相关内容