In this blog post, let’s learn about the error message “329 Database not found or no system permission.” in Hydra and the description of the error.
Error Message
329 Database not found or no system permission.
Error Details
The database you tried to open is not visible to the database server. Check the spelling of the name. Possibly the database is located in a different database server (or network system), and you have omitted to specify the server name (or site name) with the database name. If you are sure the database should exist just as you spelled it, your next step depends on the database server you are using.
If you are using INFORMIX-SE, the visible databases are directories with names in the form dbname.dbs. You must be able to read from and write to them. The database server looks first in the current working directory and then in each directory named in the DBPATH environment variable. The most common cause of this error is an incorrect setting or no setting for the DBPATH environment variable.
If you are using Informix Dynamic Server, INFORMIX-Universal Server, or INFORMIX-OnLine Dynamic Server, the database does not exist as you spelled it. In some environments, two or more instances of the database server can run at once and each instance has its own collection of databases. For Version 6.0 and later, the value of the INFORMIXSERVER environment variable determines the instance of the database server that you use. For Versions 5.1x and earlier, the TBCONFIG environment variable points to the configuration file that determines the instance. See your database server administrator if you think you might be using the wrong instance.
The -329 error can be caused by a number of problems – version 4.2 has been updated to throw less general errors in the circumstances we’re seeing. The common errors for an Oracle connection which would throw -329 are:
Unable to translate the database to an Oracle connection (this will normally be accompanied by an ISAM error of -1017). Attempting to issue SQL without a database connection The database driver failed to load
The last case is a little tricky to hunt – depending on the compiler version, you should get more information on the command line which would indicate this problem. In the case of Oracle, the database driver fails to load because it has problems finding the Oracle client library ‘libclntsh.so’.
There are a number of reasons this may happen.
The first is that your LD_LIBRARY_PATH variable does not contain $ORACLE_HOME/lib. The second is that you are using a compiler pre-4.2, which looks for the client library by name (e.g. libclntsh.so.9.0). In this case, if you are using Oracle 10g, you will need to do the following:
ln -s $ORACLE_HOME/lib/libclntsh.so.10.1 $ORACLE_HOME/lib/libclntsh.so.9.0 # it may be called libclntsh.so.10.0
Leave a Reply