I am using Firebird 4.0 release candidate 1 on Linux (attempting to use it either in a C application or with the ODBC driver). When I attempt to open an embedded database (/path/to/db/name.db
), I get "Unable to complete network request to host XXX. Failed to establish a connection." I know that this means that the libEngine13.so can't be found so it is defaulting to the localhost. However, libEngine13.so has been built, and is in the default install location for the git repo /path/to/firebird/gen/Release/firebird/lib/plugin
so I'm not sure why it isn't being found. I have also tried adding the folder containing it (plugin) to LD_LIBRARY_PATH, copying libEngine13.so to the same directory as libfbclient.so (/path/to/firebird/gen/Release/firebird/lib
), adding it to a plugin folder in the directory containing libfbclient.so (etc.) Any ideas?
Asked
Active
Viewed 295 times
0

Mark Rotteveel
- 100,966
- 191
- 140
- 197

mlawsonca
- 103
- 1
- 6
-
1Is binary architecture the same between your app and the library? On Windows x86-compiled app can not load x64 compiled DLLs and vice versa, and i think same with Linux? Also, are you sure the plugin is not found or is found but failed to load, or plugin is perfectly loaded but was denied access to the database file (it could be locked by other Firebird instances, for example) ? Perhaps there is something in Linux that can log the files and SOs access attempts for you app to check what REALLY happenning not what you GUESS was happenning, like `strace` or whatever analogue of MS Process Monitor – Arioch 'The Mar 02 '21 at 07:42
-
If you're using Firebird 3, why do you have a libengine13? libengine13 is for Firebird 4, not Firebird 3. AFAIK, libengine12 should be in the plugins directory, where the plugins directory needs to be in the same location as libfbclient.so.3 (unless it was built with a custom layout). – Mark Rotteveel Mar 02 '21 at 12:45
-
1In any case, it might be better to ask this question on the [firebird-support Google Group](https://groups.google.com/g/firebird-support) – Mark Rotteveel Mar 02 '21 at 12:46
-
Thank you! strace was a good idea. It enabled me to figure out that the libengine was being found, but was still having the connection error. Changing my database file path to a directory on the parallel file system resolved the issue. – mlawsonca Mar 02 '21 at 22:38
-
@mlawsonca It could be helpful if you provided an answer detailing the steps you took to solve the problem. That might help others in the future who have the same problem. – Mark Rotteveel Mar 03 '21 at 16:52
-
Thanks @MarkRotteveel. I should clarify this issue was actually for Firebird 4.0 release candidate 1 (which I was not aware of, but should have been). I used strace to confirm that it was finding libEngine13.so. It was looking for it in /path/to/firebird/install/plugins instead of /path/to/firebird/gen/Release/firebird/plugins. When I copied it there, I then received an "unavailable database. SQLCODE:-904" error. When I switched the database location from /path/to/proj/databases to /path/to/my/dir/on/parallel/file/system/databases it worked. – mlawsonca Mar 03 '21 at 21:02
-
@mlawsonca Good to hear. Could you post this as an answer? Or otherwise, would you mind if I post it as a community wiki answer? – Mark Rotteveel Mar 04 '21 at 08:31
1 Answers
1
I should clarify this issue was actually for Firebird 4.0 release candidate 1 (which I was not aware of, but should have been). I used strace to confirm that it was finding libEngine13.so. It was looking for it in /path/to/firebird/install/plugins instead of /path/to/firebird/gen/Release/firebird/plugins. When I copied it there, I then received an "unavailable database. SQLCODE:-904" error. When I switched the database location from /path/to/proj/databases to /path/to/my/dir/on/parallel/file/system/databases it worked.

mlawsonca
- 103
- 1
- 6