Link to home
Start Free TrialLog in
Avatar of chrismarx
chrismarxFlag for United States of America

asked on

Can't connect to postgresql from 3rd party application

Hi,
 I'm running postgresql 8.3.5 on win xp. I have no problem seeing and querying my db's through pgadmin. However, I'm trying to make a connection from a 3rd party program, (Manifold GIS -http://www.manifold.net/index.shtml), and I am getting this error

Entry Point Not Found

The prodecure entry point krb5_cc_get_principal couldnt not be located in the dynamic link library krb5_32.dll

the application states that it needs the /bin folder of the postgresql install on the PATH variable, which i have done. It appears it is at least finding some of the .dlls  (if i remove the bin folder from the path, i get a more generalized "can't connect" error, which is expected).

any ideas?
other uses have reported that they could connect to this version of postgresql from manifold after placing the .dll's in the PATH environmental variable.
Avatar of gheist
gheist
Flag of Belgium image

Umm.... And what sort of connection API you are using?
Avatar of chrismarx

ASKER

i'm not sure,
 i've used this program in the past to make connections to oracle, and when i do so , i use a connection profile that utilizes the native oracle oci interface. there are also options to use odbc or oledb. for postgres, this is also a native postgresql option, which im assuming also using whatever the equivalent of native drivers for postgres uses-
Do you have different versions of krb5_32.dll installed on your system. If yes please ensure that the postgres directory is inserted in the %PATH% before the location of the other occourences of krb5_32.dll.
i did a full system search and i turned up a couple of other krb5_32.dll files

krb5_32.dll   C:\WINDOWS
krb5_32.dll   C:\Program Files\TortoiseCVS

these two both seem to be related to kerberos security, but they are not on the "Path" environmental system variable. how should i proceed?
C:\WINDOWS\ is defienetly in path, just rename your private copy of dll and system will use default one from c:\windows\
The file krb5_32.dll refers to the MIT Kerberos implementation for windows. The question is now which software installed a version of this software directly into windows?

1. I would suggest to check if replacing the version in c:\windows\ with the version from your postgres installation. PLEASE MAKE A BACKUP OF THE FILE IN C:\WINDOWS\ before.

2. Ensure that postgres appears in the path before tortoisesvn

Could you please also check the versions of the DLLs (please select the file, right button and then "Details")? You should see a string "Fileversion" like 1.x.x (for my postgres release it's 1.6.2.13)
You can install this:
http://www.dependencywalker.com/
And check if two instances of same DLL are not loaded in same app.
ok,
 i checked the version number of the krb5_32.dll from postgres, its  1.6.2.13
which is different than the orginal krb5_32.dll that was in the windows directory. i placed the new one in the windows directory, and even restarted the machine, but still the exact same error. also, tortoisesvn isnt on the "path", nor is any other location that has a copy of that dll.

i installed the dependencywalker, but im unsure how to use it to make the test you describe. i sure would like to get this working!
Open postgresql executable with depends.exe, then have a look at dlls in strange places.
i did that, all the dlls that its looking for are either in its own bin folder, or windows\system32\
i feel like the problem is that manifold maybe isnt finding the right dlls, not postgresql. but i dont see how i would be able to test that?
You have to look for case when same dll is in two places.
ASKER CERTIFIED SOLUTION
Avatar of sreindl04
sreindl04
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
i freakin love you, thank youuuuuuuuuuuuu!!!!!
that was it, so simple, wish more people knew about this-