首页 > 数据库 >DB2 .NET Data Provider, reason code 10

DB2 .NET Data Provider, reason code 10

时间:2022-11-14 10:44:34浏览次数:40  
标签:10 code dll reason db2app DB2 Data

最近使用DB2 .NET Data Provider访问DB2报了reason code 10,解决废了很大力气,记录一下

错误现象

SQL1159 Initialization error with DB2 .NET Data Provider, reason code 10, tokens 9.5.0, 9.5.2  

错误分析

SQL1159表明错误是在DB2 .NET data provider(IBM.Data.DB2.dll)初始化过程发生的

DB2 .NET data provider初始化过程中会对可用性进行自检,其中一项检查则是对DB2 native client library(db2app.dll)调用测试,reason code 10则表示db2app.dll与IBM.Data.DB2.dll无法匹配。出现reason code 10会附带返回两个tokens,也就是错误信息reason code 10, tokens 9.5.0, 9.5.2  中的tokens 9.5.0, 9.5.2 。第一个token 9.5.0表示db2app.dll版本号,第二个token9.5.2表示IBM.Data.DB2.dll版本号。此时解决方法就是使用版本号一致的db2app.dll和IBM.Data.DB2.dll。

本地项目有了些年头,DB2 .NET Data Provider32位、64位版本从9到11都有,调用时没注意使用了不同版本。

错误处理

重新引用DB2 .NET data provider版本。使用DB2 .NET data provider安装目录C:\Program Files (x86)\IBM\SQLLIB\BIN下的两个dll,其中db2app.dll位于C:\Program Files (x86)\IBM\SQLLIB\BIN,IBM.Data.DB2.dll位于对应.net版本的C:\Program Files (x86)\IBM\SQLLIB\BIN\netfx.x目录,例如.net framwork3.5程序引用C:\Program Files (x86)\IBM\SQLLIB\BIN\netf20下的IBM.Data.DB2.dll。重建引用后reason code 10解决。

错误扩展

如果 reason code 10返回的db2app.dll版本号为0.0.0,即错误信息 reason code 10, tokens 0.0.0, 9.5.2 。该错误表示db2app.dll在初始化过程中遇到错误,错误原因有两个

1.程序引用的db2app.dll与本地安装的版本不匹配,此时检查调用版本与安装版本

2.db2app.dll在初始化时遇到权限问题,此时提升程序运行权限或者将程序调用用户加入DB2ADMNS 和 DB2USERS 用户组

组件引用扩展:

引用处理不当还会引发reason code 2、reason code 3问题,可能情况有以下几个

1.缺少db2app.dll

db2app.dll不能直接引用,不能加入到GAC中,调试时提示缺失时需要手动复制该文件到程序生成目录XXX\bin,注意是bin目录而非bin\Debug

2.64位与32位不兼容,64位的DB2 native client library文件为db2app64.dll

3.主程序及程序相关引用组件的32位与64位也要与DB2 .NET data provider统一,仅仅在调试时由Any CPU配置切换x86不一定解决问题,主程序及相关引用组件属性也切换为x86

标签:10,code,dll,reason,db2app,DB2,Data
From: https://www.cnblogs.com/zhiguzhidao/p/16888278.html

相关文章

  • 月薪10k,20k,40k的Java工程师,差别到底在哪?
    最近某乎又有了一个热议话题:月薪10k,20k,40k的Java工程师,差别到底在哪?出现这种现象,表面上是每个人所在的岗位、公司、级别不同,本质的原因其实是因为大家的能力不同。不管什么......
  • Xmind 2022 for Mac(思维导图软件) 22.10.927中文版
    Xmind2022forMac是一款全功能的思维导图软件,拥有专业实用的功能,包括思维管理、商务演示、与办公软件协同工作等功能,让您的办公更有效,还加入了演讲模式,在演说模式可自动生......
  • leetcode622. 设计循环队列
    题目设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队......
  • office2010添加宏到自定义快速访问工具栏
    1.建立相应的宏,名称分别:查找填充默认  2.点击“文件”菜单,“选项”卡  3.选择“快速访问工具栏”4.从“从下列位置选择命令”,选择“宏”5.则刚才的宏名自动出......
  • SM.1049-1 边境地区地面业务邻国之间相互频率协调的方法
    ScopeThisRecommendationcontainsthemethodsofmutualfrequencycoordinationbetweenneighboringcountriesinborderareas.本建议书包含边境地区邻国之间相互......
  • Codeforces 833 题解
    A\(n\)是奇数时恰好可以用完,\(n\)是偶数时多出来的一块没用,所以直接输出\((n+1)/2\)即可。B每个字符出现次数都小于等于字符总数,令\(\Sigma\)是字符集大小,那显然......
  • leetcode 70. 爬楼梯 js实现
    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例1:输入:n=2输出:2解释:有两种方法可以爬......
  • [Typescript] 100. Hard - IsAny
    Sometimesit'susefultodetectifyouhaveavaluewith any type.Thisisespeciallyhelpfulwhileworkingwiththird-partyTypescriptmodules,whichcanex......
  • leetcode 3. 无重复字符的最长子串
    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度......
  • Day10.2:九九乘法表打印详解思路
    九九乘法表打印按照以下格式对九九乘法表正确输出:/*1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2......