Error messages for SQL Connection
This topic includes the following sections:
- Trapping runtime error messages in SQL Connection programs
- Vortex API error messages
- SQL OpenNet error messages
- Socket errors
- ODBC Driver Manager errors (Windows)
The %SSC_GETEMSG function returns Vortex API, SQL OpenNet, socket, and database errors. And if you’re using an ODBC database driver (VTX11 or VTX12_SQLNATIVE), it returns ODBC Driver Manager warnings and errors. It doesn’t, however, return Synergy runtime errors. These errors need to be trapped in your program (see Trapping runtime errors), and you’ll need to use Vortex API logging to view socket errors.
For information on database-specific errors, see your database documentation. (For Synergy database driver error messages, see Data access errors.) For general troubleshooting information see SQL Connection troubleshooting and error logging.
Trapping runtime error messages in SQL Connection programs
You can trap the following runtime errors in your SQL Connection program. To see the associated error text, use SQL Connection logging, or use $ERR_CATCH in conjunction with %ERR_TRACEBACK. The following errors apply to stand-alone configurations and clients in client/server configurations.
Synergy Runtime Error Messages |
||
---|---|---|
Mnemonic |
Error text |
Explanation |
$ERR_ARGSIZ |
Field or array count (size) smaller than statement count (ct) |
You used an array argument with fewer dimensions than the row count, or you specified fewer arguments than the statement defined. |
$ERR_AXUNSUP |
Unsupported feature |
Your program uses an option that is not supported for the database driver. For example, this error could be caused by specifying SSQL_SCROLL_DYNAMIC, an option for %SSC_OPEN, with any database driver other than VTX11 or VTX12_SQLNATIVE. |
$ERR_BADDATATYP |
Wrong data type |
An argument with an invalid data type has been passed to a function. Check the argument list for the correct data type. |
$ERR_CHNUSE |
DB channel in use |
The dbchannel argument passed to %SSC_CONNECT has already been used for an active connection. |
$ERR_CURSERR |
ID must be a non select cursor |
The cursor ID passed to a non-SELECT processing function (such as %SSC_EXECIO or %SSC_EXECUTE) is not associated with a non-SELECT statement. |
ID not SELECT cursor |
The cursor ID passed to a SELECT processing function (such as %SSC_MOVE or %SSC_DEFINE) is not associated with a SELECT statement. |
|
Invalid cursor ID |
The cursor ID is not associated with an active open cursor. |
|
$ERR_NOMEM |
Not enough memory |
This operation could not be performed with the available memory. This error occurs only after all memory has been reorganized and all unnecessary segments have been freed. |
$ERR_NOMORECURS |
No more available open cursors |
You have attempted to open a cursor when the maximum number of open cursors defined in %SSC_INIT has already been reached. |
$ERR_NOOPEN |
Invalid DB index channel used |
The dbchannel argument is not a valid connection to the database. This may be caused by a failure to establish the channel correctly with %SSC_INIT and %SSC_CONNECT, or it may be a problem with the environment. (For example, it may be that database channels were not opened with consecutive numbers starting with 1, a requirement for %SSC_INIT.) To troubleshoot, run the SQL Connection example programs for your database.
|
$ERR_NOSQL |
SQL Connection installation error or DBLOPT 48 not set |
You have called an SQL Connection routine before initializing SQL Connection. On Windows and Unix, SQL Connection is initialized by setting system option #48 using either DBLOPT or %OPTION. On OpenVMS, you must call %INIT_SSQL to initialize SQL Connection. See Initializing SQL Connection for more information. On Unix, SSQLX.so must be present when initializing SQL Connection |
$ERR_SQLERR |
Initialize Synergy SQL by calling %INIT_SSQL first (OpenVMS) |
You have called an SQL Connection routine before initializing SQL Connection. On Windows and Unix, SQL Connection is initialized by setting system option #48 using either DBLOPT or %OPTION. On OpenVMS, you must call %INIT_SSQL to initialize SQL Connection. See Initializing SQL Connection for more information. On Unix, SSQLX.so must be present when initializing SQL Connection |
Initialize Synergy SQL by setting DBLOPT 48 (Windows and Unix) |
||
Synergy SQL ERROR: uninitialized system called |
||
Synergy SQL ERROR: Licensing error Demo period expired |
The 14-day grace period has expired. Please contact Synergex or your Synergy/DE supplier for a product key. |
|
Synergy SQL ERROR: Licensing error Maximum users exceeded |
The maximum license capacity in License Manager has been reached. (In other words, the number of log-ins on your system is greater than the number of licensed users.) Either contact your Synergy/DE supplier for another product key so you can increase the number of users, or wait until someone logs out. |
|
Synergy SQL ERROR: Licensing error Product not installed |
SQL Connection is not configured correctly. See Configuring Connectivity Series for assistance. |
|
$ERR_WRTLIT |
Writing into a literal |
You have attempted to change the value of an alpha, decimal, implied-decimal, or integer literal. Generally, this error occurs when you pass a literal or an expression to a function that requires a variable, and the function attempts to modify the argument. |
$ERR_WROARG |
Not enough arguments |
The number of arguments passed to a function is different from the number of arguments needed for the function. |
Number of variables (var_ct) does not match SELECT-column count (col_ct) |
Too few variables were defined when %SSC_MOVE was called. The cursor passed to %SSC_MOVE is associated with a SELECT statement that returns a greater number of columns than the number of variables defined for them. |
Vortex API error messages
The %SSC_GETEMSG function returns the following Vortex API error messages. Errors apply to stand-alone configurations and clients in client/server configurations.
Vortex API Error Messages |
||
---|---|---|
Mnemonic |
Error text |
Explanation |
BADCONV |
Data conversion failed (hostvar : number) |
The data conversion for the specified host variable failed. (Number is the host variable — e.g., if number is 3, there is a data conversion problem with the third host variable.) Check that the requested data is of the appropriate type. For example, this error will occur if you request a character column to be fetched into an integer and the column includes characters that are not numbers. |
BADSQLDA |
SQLDA is invalid |
This is an internal error. Turn on Vortex API logging, repeat the steps that caused the error, and then call Synergy/DE Developer Support. |
BLOBCOL |
Invalid BLOB column ID |
The column specified in the SELECT statement is not a large binary object (BLOB) column. Check your SQL statement. |
BLOBFILE |
BLOB file operation (operation_name) failed |
For an RDBMS with large binary object (BLOB) data in external files, various file operations could fail. Make sure the process owner has write permissions to the directory. |
BLOBLEN |
BLOB length mismatch |
This is an internal error. Turn on Vortex API logging, repeat the steps that caused the error, and then call Synergy/DE Developer Support. |
BLOBPROC |
Cannot return BLOB data via a stored procedure |
To return binary large object (BLOB) or character large object (CLOB) data, use BLOB/CLOB-specific functions. Some relational databases cannot return BLOB or CLOB data through stored procedure calls. |
DLLENTRY |
Could not find DB |
The loaded DLL or shared library does not contain the expected entry point. Typically, this happens when the wrong DLL has been loaded and occurs only on machines that support DLLs. Verify that none of the vtx* DLLs or VTX* shared objects have been overwritten by other DLLs and that there are no other DLLs in the path with the same name. Finally, make sure that any resources that the DLL needs are available. You can determine which resources are required for a shared library on most Unix systems with the ldd command. (You must use third-party tools to do this on Windows systems.) |
DLLLOAD |
Could not load DLL_name (errno: error_number) |
Could not load a needed DLL or shared library. The DLL or shared library may be missing, it may be invalid (incorrectly named or an incorrect version), its file specification may be missing from PATH (on Windows) or from the library path (on Unix), or the listed DLL or shared library may not be able to access third-party DLLs or shared libraries it needs. See Troubleshooting DLLLOAD errors for more information. |
DLLSAFE |
Loaded DLL is not thread safe |
The loaded DLL is not thread safe. (Not all database drivers are.) To avoid this error, run the single-threaded daemon, vtxnet2.exe. See vtxnetd and vtxnet2 programs. |
DRVCMDI |
Expected an integer parameter |
The %SSC_CMD function expects the command line’s first token to be an integer. Correct your code. |
DRVCMDP |
Invalid parameter |
A parameter to the %SSC_CMD function is invalid. Correct your code. |
DRVCONF |
Driver not configured |
This is an internal error that typically indicates that the database driver process (VTX0_12, for example) terminated abnormally. Turn on Vortex host logging, repeat the steps that caused the error, collect any relevant information from the Windows event log (if you’re on Windows), and call Synergy/DE Developer Support. |
DRVMULTI |
Driver must be specified when multiple are present |
On Windows and Unix systems, you must specify the driver names when more than one driver is linked. (If only one driver is present, the driver name is optional.) Additionally, for ISAM access, the connect string must contain “sdms:”. For example: genesis:public//sdms:passport See Building connect strings for more information. |
DRVNOTF |
Driver 'driver_name' not found |
The connect string specifies a driver that your installation of SQL Connection is not built to support. Make sure the driver in the connect string is correct. |
FETCURCLO |
Attempting a FETCH from a closed cursor (cursor_number) |
The cursor used for the FETCH has previously been closed. Check your program logic to make sure it doesn’t use a cursor that has been closed. |
FLIPOVER |
Flip buffer overflow |
This error occurs if too many parameters are specified. The current limit is approximately 250 parameters. Note that multiple dimensions are not included in this limit. |
INVCUR |
Invalid cursor |
The cursor has not been initialized. Set the cursor to -1 before the first call, and do not modify it after subsequent calls. |
INVCUROUT |
No cursors available |
No cursors are available. Use %SSC_INIT to allocate more logical cursors. |
INVCURPOS |
Invalid cursor for positioned EXEC |
The cursor must be a valid cursor from a previous %SSC_OPEN call. |
INVDATE |
Invalid date/time |
The format of date or time data is invalid. See Converting dates and times for information on correct formatting. |
INVDRVVER |
DB version mismatch (expected: driver_name, found version_number) |
The version of the database driver is not at the same level as the SQL OpenNet runtime library. This error is most common when SQL OpenNet client/server is being used, but can also occur if an older driver has been linked with a newer runtime library. Make sure the client and the server are running the same version of SQL Connection. |
INVNUM |
Invalid (internal) number |
The data being converted is invalid. Call Synergy/DE Developer Support. |
MANYBIND |
Too many bind(host) variables |
There are too many bind variables specified for a particular stored procedure or prepared statement. Make sure the number of bind variables matches the number of bind variable positions in the statement. |
MANYCCUR |
Too many concurrently open cursors (cursor_name: cursor_number) |
Too many cursors are open. Either allocate more cursors with %SSC_INIT or close cursors you don’t need. |
MANYCOLS |
Too many columns (number) returned by query |
The query returns more columns than the database channel has been set to accept. Either modify the query to return fewer columns, or use the maxcol argument for %SSC_INIT to increase the number of columns that a query can return. The default maximum is 254 columns. |
NOCONN |
Not connected |
A connect must be performed before any other operation. This could be caused by a dropped connection. |
NODRV |
No DB driver linked |
When generated for an %SSC_CONNECT call, check the connect string. This error indicates that the database driver specified in the connect string is not available. When generated for a call to any other function, this error indicates that there has been an attempt to reuse a channel that has been released with %SSC_RELEASE, so check your code. |
NOMEM |
Out of memory |
This is a fatal error. Either there is no more heap memory available (which is rare), or the heaps have been corrupted. Notify your system administrator. |
ORAOOPT |
oopt() requires two integer parameters |
Oracle’s oopt() function requires two integer parameters. See Oracle’s OCI documentation for more information. |
POSBROW |
Position EXEC requires a ‘for browse’ cursor |
A positioned EXECute (UPDATE or DELETE) requires a previously opened and positioned cursor. Open the cursor in FOR BROWSE mode. This error occurs only with SQL Server. |
POSEXEC |
Position EXEC requires an open cursor |
A positioned EXECute (UPDATE or DELETE) requires a previously opened and positioned cursor. Verify your program logic. |
UNDESDTY |
Unknown DESCRIBEd data type (name type_value) |
The data type of a described data type is unknown. This may occur if a relational database introduces a new data type while an older database-specific library is being used. Call Synergy/DE Developer Support. |
UNSUPFNC |
Unsupported function (function_name: function_number) |
An unsupported database driver function has been encountered. In most cases, this is the result of a call to a routine or operation that is not supported by your version of the driver or database. Call Synergy/DE Developer Support. |
ZEROCOLS |
Zero columns returned by query |
The query returned zero columns. This can happen when the query is not a select statement. |
N/A |
Invalid datetime, column: col_num, value: value | The datetime value (value) retrieved from the database could not be parsed. This error applies only to ODBC-compliant databases and PostgreSQL. |
N/A |
Invalid number, column: col_num, value: value | The number (value) returned from the database could not be converted to an internal format required by SQL Connection. This error applies only to ODBC-compliant databases, MySQL, and PostgreSQL. |
N/A |
Not a valid SQL Server Native Client data source | A SQL Server Native Client data source is required for the specified driver, but a different type of data source was requested — or vice versa. This error applies only to ODBC clients. |
N/A |
Null password given: logon denied |
Encryption is set incorrectly on the client or the server, or the net.ini file cannot be found. Check the encryption settings and make sure VORTEX_HOME is set to the correct directory. See Setting options in net.ini. |
N/A |
Parameter index (param_num) out of range (max: max_params) | The statement has too many parameters. The number of parameters should not be greater than max_params. This error applies only to IBM DB2 and ODBC-compliant databases. |
N/A |
Parameter marker bind_var is missing | Bind variables specified in the statement are not contiguous. One of the bind variables (bind_var) for the statement is missing. This error applies only to IBM DB2 and ODBC-compliant databases. |
N/A |
Too many parameter markers found (max: max_bind_vars) | The statement has too many bind variables. A statement can have no more than 255 bind variables. This error applies only to IBM DB2 and ODBC-compliant databases. |
SQL OpenNet error messages
The %SSC_GETEMSG function returns the following SQL OpenNet error messages. Errors apply only to clients in client/server configurations.
SQL OpenNet Error Messages |
||
---|---|---|
Mnemonic |
Error text |
Explanation |
AUTHBAD |
Invalid authentication syntax |
The connect string syntax in invalid. Make sure the ([domain/]uid/pwd) part of the network string follows the host name. Note that this user ID and password are for the host machine, not the database. See Network string (opennet_info) syntax for more information. |
N/A |
Authentication failed |
User and password authentication failed on the server. If you’re using a Windows server, make sure the user has “log on as batch job” privileges on the server. In addition, make sure the user and password are correct in the connect string and encryption is set to the same value on both the client and the server. |
AUTHFAIL |
Authentication on service failed |
You are not authorized to use the requested host service. Make sure the ([domain\]uid/pwd) part of the network string is correct or contact your system administrator. Note that this user ID and password are for the host machine, not the database. See Network string (opennet_info) syntax for more information. |
AUTHREQ |
Host host_name requires authentication |
The host you are connecting to requires additional authentication. If the -a option is set for vtxnetd or vtxnet2, the connect string must include a username and password for an account on the machine or an account for a domain that the machine is part of (in addition to any database log-in information). If you’ve done this, make sure the username and password are correct. See Network string (opennet_info) syntax for more information. |
BADINI |
‘net.ini’ file is either missing or invalid |
The net.ini file is either missing or invalid. Make sure there’s a net.ini file on the client and that it’s valid. See Setting options in net.ini. |
CONFIG |
Expected a CONFIG call |
If this occurs after %SSC_OPEN, it generally indicates that network connectivity errors occurred during the fetch sequence. It may also indicate that the database driver process (VTX0_12, for example) terminated abnormally. Collect any relevant information from the event log (Windows), syslog (Unix), or the operator console (OpenVMS), and then call Synergy/DE Developer Support. You may be asked to use Vortex host logging to assist in troubleshooting. |
Connect:errno: |
|
See Socket errors. |
DLLENTRY |
Could not find DB driver entry point |
The loaded DLL does not contain the expected entry point. Typically, this happens when the wrong DLL has been loaded and occurs only on machines that support DLLs. Call Synergy/DE Developer Support. |
DLLLOAD |
Could not load DLL |
A needed DLL or shared library could not be loaded. The DLL or shared library may be missing, it may be invalid (incorrectly named or an incorrect version), its file specification may be missing from PATH (on Windows) or from the library path (on Unix), or the listed DLL or shared library may not be able to access third-party DLLs or shared libraries it needs. See Troubleshooting DLLLOAD errors for more information. |
DLLSAFE |
Loaded DLL is not thread safe |
The loaded DLL is not thread safe. (Not all database drivers are.) To avoid this error, run the single-threaded daemon, vtxnet2.exe. See vtxnetd and vtxnet2 programs. |
EXECFAIL |
Exec program_name failed on host host_name errno=nnn |
The service (program_name) specified in the network connection string could not be started. This will occur if the service could not be found, does not have the correct permissions, or is not listed as a valid service.
|
HOSTNOTFOUND |
Host host_name not found |
The network does not recognize host_name as a server name. Contact your network administrator or try using ping, vtxping, or synxfpng (with -x option) to check for the server. Make sure the spelling of host_name is correct. |
N/A |
Invalid integer |
The number specified for the encryption key is invalid, the net.ini file is corrupt, or the VORTEX_HOME setting is incorrect. Verify that the key is set to an integer value in the correct range, make sure the net.ini file has no control characters, and verify the VORTEX_HOME setting. See Setting options in net.ini. |
N/A |
Invalid connect string syntax (uid/pwd/datasource) |
The syntax of the connect string is invalid or there’s a problem with encryption. If the connect string syntax is valid, check the following:
|
INVHOSTSYN |
Invalid host/service name syntax |
The syntax for the host or service name is invalid. For information on connect string syntax, see Building connect strings. |
INVVER |
NET version mismatch (host: host_ver, client: client_ver) |
The version of SQL OpenNet on the server is different from the version on the client. For example, because 1000352 is the number for 8.1 versions of SQL OpenNet, and 1000400 is the number for version 8.3 and higher, the following message indicates that a client with version 8.3 or higher is attempting to access a version 8.1 SQL OpenNet server: NET version mismatch (host: 1000352, client: 1000400) Make sure both client and server use the same version of Connectivity Series. |
KEEPALIVE |
Setting SO_KEEPALIVE failed |
This indicates that the socket option keepalive failed or was not set. Call Synergy/DE Developer Support. |
LINGER |
Setting SO_LINGER failed |
This indicates that the socket option LINGER failed or was not set. Call Synergy/DE Developer Support. |
NOINTR |
Host cannot be interrupted |
Your program requested an %SSC_CANCEL operation, but the host you are trying to cancel cannot handle interrupts. Modify your program so that it doesn’t call the cancel operation. |
NOMEM |
Out of memory |
This is a fatal error. Either there is no more heap memory available (which is rare), or the heaps have been corrupted. Notify your system administrator. |
Recv:errno |
|
See Socket errors. |
SERVNOTFOUND |
Service/Protocol name not found |
The service or protocol cannot be found. Make sure the port used for the client matches the port used for the SQL OpenNet server. |
SOCKET |
Socket() failed |
SQL Connection is unable to open a socket. The operating system may have run out of file descriptors. Notify your system administrator. |
UNDBID |
Unknown Database ID |
An unknown database ID is specified in net.ini. Use the syntax documented in Setting options in net.ini. |
Socket errors
The following are the most common TCP/IP socket errors when using SQL Connection. See Troubleshooting socket errors for information.
Error text |
Error numbera |
Explanation |
---|---|---|
Connection reset by peer |
10054 (WSAECONNRESET) on Windows 54 (ECONNRESET) on Unix and OpenVMS |
This error indicates that a connection to the server has been closed. For information, see Connection reset by peer (10054 or 54). |
Connection refused |
10061 (WSAECONNREFUSED) on Windows 61 (ECONNREFUSED) on Unix and OpenVMS |
This error indicates that the SQL Connection program cannot make a connection to the SQL OpenNet server. For information, see Connection refused (10061 or 61). |
Unknown Error |
|
If this error occurs on the server and there are no errors on the client, the SQL Connection program should ignore it and terminate normally. If this error occurs on the client, it indicates that although a connection was gracefully closed by the server, the client was not prepared for it. This is generally caused by either a version mismatch or by network latency issues where the final packet sent by the server is not received before the default server socket shutdown is initiated. This could occur, for example, if the initial connect fails with an error. See the event log (Windows), syslog (Unix), or operator console (OpenVMS) for information on the problem. |
a. For Unix and OpenVMS, 54 and 61 are common error numbers, but error numbers vary for different platforms.
ODBC Driver Manager errors (Windows)
If you use VTX11 or VTX12_SQLNATIVE, the %SSC_GETEMSG function may return one of the following ODBC Driver Manager error messages. These errors apply to stand-alone connections and servers in client/server connections.
Error text |
Explanation |
---|---|
Connection is busy with results for another hstmt |
Most likely this is caused by an SQL Connection program that uses client-side cursors but has multiple concurrently active result sets. (Client-side cursors support only a single active result set.) Use server-side cursors. See Using cursors with SQL Connection. |
Data Source name not found and no default driver specified |
The DSN specified in the connect string doesn’t exist (check the spelling), encryption is set incorrectly on the client or the server, or the net.ini file cannot be found. Check the encryption settings and make sure VORTEX_HOME is set to the correct directory. See also Setting options in net.ini. If you are on a 64-bit Windows machine, it could be that the DSN has not been defined by the right version of the Microsoft ODBC Administrator. For example, if a 32-bit application is accessing a local database on a system with both 32-bit and 64-bit Synergy/DE, the DSN must be created by the 32-bit ODBC Administrator. For more information, see Adding a user or system DSN. |