|
1. Problem description
XP system to install the AX1 application and upgrade AX2, the same connection in the local Oracle client configuration example, where AX2 shows the link is successful, and AX1 has failed to link, which Oracle instance configuration must be correct, because the AX2 Already linked successfully. Before AX2 and AX1 are able to connect successfully, the user after using the 360 antivirus, AX1 only problems.
2. Problem analysis
Through the log analysis, AX1 returned the error message is found "ORA-12545: because the target host or object does not exist, the connection failed." Obviously this information is wrong, Oracle wrong to determine the cause of the problem, because we configured the host is there, and has been linked on the AX2 has been successful.
3. Solutions
In order to avoid the AX1 dynamic library impact, we write pure OCI test program TestOCI.exe, the exe only rely on Windows and OCI dynamic library, the test program were placed AX2 Program, AX1 Program and the desktop casually a file Folder, only the AX1 program shows the link failed, the other two folders under the test program are successful. This proves that it is certain that the AX1 Program under what documents affect the connection process.
The use of two-point shielding method of the AX1 Program all files for group testing, the final test program TestoCI.exe and ws2_32.dll in the same folder, the connection will fail, apparently ws2_32.dll is the Windows Socket library, this Library appears in the AX1 Program in the abnormal, it can be concluded that this problem is caused by the ws2_32.dll file.
Then we will why the library will affect our test procedures were analyzed, respectively, on the problem machine test two TestOCI.exe, a group is a folder only test exe, another group contains the test folder exe and Ws2_32.dll, respectively, to print the exe startup runtime loaded dynamic library. The following are two sets of test results, only excerpts of some important information.
Group 1: Only TestOCI.exe in the folder
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.
Group 2: The folder contains both TestOCI.exe and 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.
From the above two test results we can see that the two test program to load the dynamic library search path is the same, but loaded ws2_32.dll dynamic library is different, run successfully is to load c: \ windows \ system32 the following ws2_32 .dll, and run the failure is loaded g: \ aaa \ program under ws2_32.dll. G: \ aaa \ program \ ws2_32.dll is only 85K, and c: \ windows \ system32 \ WS2_32.DLL there are 291K, obviously g: aaa programws2_32.dll is a wrong library, while the Windows Socket is A set of only this one library is loaded, the other Socket library is not loaded will be a problem.
This problem only occurs in XP, but does not appear in Win7, one possible reason is XP and Win7 search path priority level is not the same bar, or something changed the dynamic library loading environment, but can not determine.
4. Solutions
Delete AX1 / Program under the ws2_32.dll, you can restore the connection Oracle database. |
|
|
|