- Connection does not exist
- Communication link failure
- Calculate stack overflow
- Conversion not applicable
- Invalid cursor state
- Not defined cursor
- Invalid request to process the SQL statement
- Invalid literal
- Invalid length of data type
- Indicator variable required but not supplied error
- Incompatible NLS between the client and the server
- Invalid size of data to bind to host variable Data Size …
- Invalid character in use
- Too many pages are allocated
- The Tablespace does not have enough free space
- The transaction exceeds lock timeout specified by user
- The update log size ‘…’ is bigger than TRX_UPDATE_MAX_LOGSIZE ‘…’
- String data right truncated
- Value overflow
- Several statement still opened
This chapter describes the types of errors that occur frequently in the environment in which an application program using ALTIBASE, and also explains what users have to check for each type.
Connection does not exist
- When executing a query after disconnection by the TIMEOUT policy described previously
- In the case of a thread program, a connection unique name that does not exist is used
Check the above details and take appropriate action for the related matters. For example, if it is caused by the TIMEOUT policy, it is necessary to take measures such as increasing the TIMEOUT setting value of the session or performing query tuning.
Communication link failure
Calculate stack overflow
Because this value causes an increase in memory, it is recommended to change and use only the relevant session rather than reflecting it on the entire system.
Conversion not applicable
As in the example above, when CLOB data is put in the BYTE column, an error occurs because the type conversion cannot be converted from CLOB to BYTE. That is, there is a matrix compatible with each column type, but this error occurs when such incompatible queries are executed.
For compatibility between column types, please refer to the ALTIBASE ODBC User Manual.
Invalid cursor state
This occurs when attempting to open CURSOR again without normally closing CURSOR. Or, it occurs when attempting to fetch a CURSOR that has already been fetched again.
Occasionally, if the user program is a thread, it may not properly control concurrency for the connection object and thus handle a cursor that is not valid in its own thread. The user must resolve the problem by using it.
Not defined cursor
Invalid request to process the SQL statement
Generally, this error occurs frequently in thread-structured programs, and also occurs when the order of protocols exchanged between the ALTIBASE server and the client-server is different when the concurrency control for the thread-structured connection object is incorrect as described above.
If it is in the thread-structure program, the user needs to make sure that this concurrency control is correct. Alternatively, the user should check whether the order in which queries should be executed, such as PREPARE->BINGING->EXECUTE, is not properly followed.
Invalid literal
This occurs when an attempt is made to insert data as a string even though the column type is numeric, as in the example above.
Conversely, if the user tries to insert a string into a numeric variable, an error occurs as follows.
Invalid length of data type
As in the example above, the column type can store up to 2 bytes. If the user tries to input 4 bytes, an error occurs because the data value is larger than the specified column size.
Indicator variable required but not supplied error
Incompatible NLS between the client and the server
This error occurs when an attempt is made to connect to the ALTIBASE server with a character set different from the character set in the server. For example, the server is set to MS949, but this error occurs when the client tries to connect with the US7ASCII value.
SELECT * FROM V$NLS_PARAMETERS; (Version 5.3 or later) SELECT name, value1 FROM V$PROPERTY WHERE name = ‘NLS_USE’; --(Version 5.1 or lower)
This error only occurs in versions prior to 5.3. From version 5.3, the connection is possible with US7ASCII even if the character set is different. However, if the user tries to store characters such as Hangul due to the difference in character set between the server and the client, it may be stored as incorrect data.
Invalid size of data to bind to host variable Data Size …
Invalid character in use
In other words, when using Korean, it is recommended to use the same character set as MS949 / UTF8 than KSC5601, and to access and process the character set matching the server.
Too many pages are allocated
For ALTIBASE memory tablespaces, the sum of all memory tablespaces cannot exceed MEM_MAX_DB_SIZE in $ALTIBASE_HOME/conf/altibase.properties. This error message occurs because all space is full.
The Tablespace does not have enough free space
The transaction exceeds lock timeout specified by user
Time | Session A | Session B |
---|---|---|
T1 | INSERT INTO x1 VALUES … (Lock획득) |
|
T2 |
| ALTER TABLE x1 ADD COLUMN …(Error) |
As shown in the table above, if session B attempts to execute DDL while session A acquires the lock with DML first, this error occurs. Therefore, check if a lock exists in the table and resolve it before proceeding.
The update log size ‘…’ is bigger than TRX_UPDATE_MAX_LOGSIZE ‘…’
Please be cautious when processing such changes, as more redo log files are created and a situation such as a disk pool failure may occur. Additionally, ALTIBASE attempts to acquire the X-Lock on the table to prevent the increase of resources due to MVCC when making bulk changes, so users need to be aware that queries and changes to the table will be queued due to the X-Lock.
String data right truncated
This error occurs when the value of the character type returned from the SELECT statement is larger than the size of the declared host variable. Check the column size of the table to be accessed by accessing the DB, and declare the size of the used host variable as (column size + 1 byte).
Value overflow
Several statement still opened