ORA-12545: 因目标主机或对象不存在, 连接失败
通过日志分析,发现AX1返回的错误信息是ldquo;ORA-12545: 因目标主机或对象不存在, 连接失败rdquo;。显然这个信息是错误的, O
1. 问题描述
XP系统下同时安装了AX1应用程序和升级版AX2,连接同一个在本机Oracle客户端上配置的连接实例,其中AX2显示链接成功,而AX1却链接失败,其中Oracle实例配置一定正确,因为AX2已经链接成功。在此之前AX2和AX1都是能连接成功的,用户使用360杀毒后,AX1才出现问题。
2. 问题分析
通过日志分析,发现AX1返回的错误信息是“ORA-12545: 因目标主机或对象不存在, 连接失败”。显然这个信息是错误的, Oracle错误的判断了问题的原因,因为我们所配置的主机是存在的,并且在AX2上已经链接成功了。
3. 解决办法
为避免AX1的动态库影响,我们编写纯OCI的测试程序TestOCI.exe,这个exe只依赖Windows和OCI的动态库,将这个测试程序分别放到AX2的Program、AX1的 Program以及桌面随便的一个文件夹中,结果只有AX1的Program的显示链接失败,其他的两个文件夹下的测试程序都成功了。这就证明一定是AX1的 Program下的什么文件影响了连接过程。
采用二分屏蔽法对AX1的Program所有文件进行分组测试,最后测试程序TestOCI.exe与ws2_32.dll 在同一个文件夹时,才会出现连接失败的问题,显然ws2_32.dll是Windows的Socket库,这个库出现在AX1的Program中时不正常的,所以可以断定这个问题是由ws2_32.dll文件引起的。
然后我们就为什么这个库会影响我们的测试程序进行了分析,分别在问题机器上进行测试两组TestOCI.exe,一组是文件夹中只有测试exe,另一组文件夹中则包含测试exe和ws2_32.dll,分别打印这个exe启动运行时所加载的动态库。下面是两组测试结果,只摘录了部分重要信息。
组1:文件夹中只有TestOCI.exe
Starting Directory: G:\AAA\Program\
Search Path:
C:\Program Files\Intel\iCLS Client\;
G:\app\Administrator\product\11.2.0\client_2\bin;
C:\Program Files\AMD APP\bin\x86;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;
C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;
C:\Program Files\Common Files\Autodesk Shared\;
G:\AAA\program;
G:\AAA\program
Loaded "c:\windows\system32\WS2_32.DLL" at address 0x71A20000.Successfully hooked module.
组2:文件夹中同时包含TestOCI.exe和ws2_32.dll
Starting Directory: G:\AAA\Program\
Search Path:
C:\Program Files\Intel\iCLS Client\;
G:\app\Administrator\product\11.2.0\client_2\bin;
C:\Program Files\AMD APP\bin\x86;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;
C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;
C:\Program Files\Common Files\Autodesk Shared\;
G:\AAA\program;
G:\AAA\program
Loaded "g:\aaa\program\WS2_32.DLL" at address 0x71A20000.Successfully hooked module.
从上面两个测试结果我们可以看出,两个测试程序的加载动态库的搜索路径是相同的,但是加载的ws2_32.dll动态库却不同,运行成功是加载c:\windows\system32下面的ws2_32.dll,而运行失败则是加载g:\aaa\program下的ws2_32.dll。g:\aaa\program\ws2_32.dll只有85K,而c:\windows\system32\WS2_32.DLL却有291K,显然g:\aaa\program\ws2_32.dll是一个错误的库,同时Windows的Socket是一整套的,只有这一个库被加载后,其他Socket库没有被加载也会出现问题。
这个问题只出现在XP中,而在Win7中却不出现,,可能的一个原因是XP和Win7搜索路径的优先级别不大相同吧,或是某些东西改变了动态库加载的环境等,但是不能确定。
4. 解决办法
删除AX1/Program下的ws2_32.dll,即可恢复连接Oracle数据库。
本文永久更新链接地址:

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



L'article discute de l'utilisation de l'instruction ALTER TABLE de MySQL pour modifier les tables, notamment en ajoutant / abandon les colonnes, en renommant des tables / colonnes et en modifiant les types de données de colonne.

L'article discute de la configuration du cryptage SSL / TLS pour MySQL, y compris la génération et la vérification de certificat. Le problème principal est d'utiliser les implications de sécurité des certificats auto-signés. [Compte de caractère: 159]

L'article traite des stratégies pour gérer de grands ensembles de données dans MySQL, y compris le partitionnement, la rupture, l'indexation et l'optimisation des requêtes.

L'article traite des outils de GUI MySQL populaires comme MySQL Workbench et PhpMyAdmin, en comparant leurs fonctionnalités et leur pertinence pour les débutants et les utilisateurs avancés. [159 caractères]

L'article discute de la suppression des tables dans MySQL en utilisant l'instruction TABLE DROP, mettant l'accent sur les précautions et les risques. Il souligne que l'action est irréversible sans sauvegardes, détaillant les méthodes de récupération et les risques potentiels de l'environnement de production.

L'article discute de l'utilisation de clés étrangères pour représenter les relations dans les bases de données, en se concentrant sur les meilleures pratiques, l'intégrité des données et les pièges communs à éviter.

L'article discute de la création d'index sur les colonnes JSON dans diverses bases de données comme PostgreSQL, MySQL et MongoDB pour améliorer les performances de la requête. Il explique la syntaxe et les avantages de l'indexation des chemins JSON spécifiques et répertorie les systèmes de base de données pris en charge.

L'article discute de la sécurisation MySQL contre l'injection SQL et les attaques brutales à l'aide de déclarations préparées, de validation des entrées et de politiques de mot de passe solides (159 caractères)
