IDT Oracle连接抛出DBDriver无法加载:dbd_oci.dll(访问被拒绝)错误

2020-08-27 14:48发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

发布验证所有SAP KBA和SAP线程(232403)的信息,我在这里发布查询,请检查以下详细信息并做有需要的事情。

BO版本:4.2 SP6 Patch4预生产环境

操作系统: Windows 2016 Standard

验证:服务器桌面上的IDT(尝试以管理员和管理员身份运行)

错误:当我们测试基于Oracle的连接时,抛出以下错误(所有Oracle连接)

DBDriver无法加载:<安装目录> \ dataAccess \ connectionServer \ drivers \ lib32 \ dbd_oci.dll(访问被拒绝)

我们的分析:

  1. 已安装Oracle 32和64客户端
  2. 在两个位置(32/64)中更新了tnsnames.ora文件
  3. 使用.jar文件路径更新了.sbo配置
  4. .dll文件存在于该位置,并且似乎是正确的文件大小
  5. 在.dll所在的文件夹上分配的安全性
  6. 具有相关详细信息的环境变量中的更新路径
  7. 一组报告​​在浏览器中运行良好,因此64位客户端和驱动程序也很好

请检查一下,让我们知道我们还错过了什么?

谢谢

Ram

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

发布验证所有SAP KBA和SAP线程(232403)的信息,我在这里发布查询,请检查以下详细信息并做有需要的事情。

BO版本:4.2 SP6 Patch4预生产环境

操作系统: Windows 2016 Standard

验证:服务器桌面上的IDT(尝试以管理员和管理员身份运行)

错误:当我们测试基于Oracle的连接时,抛出以下错误(所有Oracle连接)

DBDriver无法加载:<安装目录> \ dataAccess \ connectionServer \ drivers \ lib32 \ dbd_oci.dll(访问被拒绝)

我们的分析:

  1. 已安装Oracle 32和64客户端
  2. 在两个位置(32/64)中更新了tnsnames.ora文件
  3. 使用.jar文件路径更新了.sbo配置
  4. .dll文件存在于该位置,并且似乎是正确的文件大小
  5. 在.dll所在的文件夹上分配的安全性
  6. 具有相关详细信息的环境变量中的更新路径
  7. 一组报告​​在浏览器中运行良好,因此64位客户端和驱动程序也很好

请检查一下,让我们知道我们还错过了什么?

谢谢

Ram

付费偷看设置
发送
6条回答
土豆飞人
1楼-- · 2020-08-27 15:17

您好Ramanaidu,

请检查已安装的ORACLE驱动程序(而非SAP BOE路径)的文件夹权限,并检查路径中驱动程序的顺序。 在我们的系统上,写入路径中的64位在32位之前。 也许它没有任何作用,但是据我所知,我们从头开始设置系统时也遇到了类似的问题。

致谢

Markus

奄奄一息的小鱼
2楼-- · 2020-08-27 14:59

感谢Markus,

是的,我们发现存在此问题(4.2 SP6 Patch4)的Oracle/BOE上的文件夹权限与正常运行的其他环境(4.2 SP3 Patch2旧Pre-Prod环境)不同。

路径变量没有问题(64位Oracle Client路径首先在PATH变量中列出,然后在32位Oracle Client路径中列出。)

compass1988
3楼-- · 2020-08-27 15:09

问题是该应用程序需要Oracle客户端32和 无法正常运行,因为Oracle客户端64和32位版本同时安装在同一台计算机上。 因此,需要特殊的配置。

进行以下配置:

1。 例如,假设您的

oci.dll 64位版本位于 C:\ oracle \ product \ 11.2.0 \ dbhome_1 \ bin

32 C:\ oracle32 \ instantclient

temnames.ora在 C:\ oracle \ product \ 11.2.0 \ dbhome_1 \ NETWORK \中的oci.dll的位版本 管理

2。 以管理员身份打开cmd窗口

3。 运行以下命令:

mklink/d%SystemRoot%\ SysWOW64 \ orabin C:\ oracle32 \ instantclient \

mklink/d%SystemRoot%\ System32 \ orabin C:\ oracle \ product \ 11.2.0 \ dbhome_1 \ bin \

4。 在PATH环境变量中,将 C:\ oracle \ product \ 11.2.0 \ dbhome_1 \ bin 替换为%SystemRoot%\ System32 \ orabin

5。 定义一个新的环境变量TNS_ADMIN(如果不存在),其值为 C:\ oracle \ product \ 11.2.0 \ dbhome_1 \ NETWORK \ ADMIN

...

现在32位和64位应用程序都可以自动与正确的OCI库一起使用。

...

希望可以为您提供帮助

吹牛啤
4楼-- · 2020-08-27 15:15

到目前为止,此解决方案对我来说没有问题。

您不必拍摄Windows快照。

完成第3步(mklink)后,您应该 像在步骤4中那样更改PATH(如您所见,它适用于64位)。

Aaron 3364
5楼-- · 2020-08-27 15:07

我们已经安装了IDT,并且在BusinessObjects服务器上运行良好。 我们在BusinessObjects服务器上同时安装了32位和64位Oracle Client。 进行此操作的关键是首先在PATH变量中列出64位Oracle Client路径,然后再列出32位Oracle Client路径。 如果32位列在第一位,我们会遇到问题。 我记不清确切的错误消息了,因为它已经很久了,但是您可能想尝试一下作为解决方案。 两个Oracle Client文件夹下都有TNSNAMES文件的副本。

nice_wp
6楼-- · 2020-08-27 15:00

感谢Michael,

我们已经按照您提到的路径变量(在PATH变量中首先列出的64位Oracle Client路径,然后在32位Oracle Client路径中列出)和TNSNAMES文件位于两个Oracle Client文件夹下的相同方案。

但是问题仍然存在。

一周热门 更多>