728x90

Problem(Abstract)

Locked record errors -244 and -107 or -245 and -144 when updating a record

Symptom

-244 Could not do a physical-order read to fetch next row.
-107 ISAM error: record is locked.

-245 Could not position within a file via an index.
-144 ISAM error: key value locked.


-271 Could not insert new row into the table.
-144 ISAM error: key value locked.


Cause

Row, page, or table is locked.

Diagnosing the problem


onstat -k will show you the locks


Resolving the problem


https://www-304.ibm.com/support/docview.wss?uid=swg21327818

728x90
728x90

Error description


Following the JDBC Driver Programmer's Guide to enable sqlhosts file lookup using SQLH_TYPE and SQLH_FILE entries in the
application connection URL works as anticipated when a port number is specified for the defined server in sqlhosts.
However, if a service name is used instead of a port number in the sqlhosts server definition, the following error isgenerated by the application at runtime:
SQL Code: -79999

SQL State:IX000

Message:Message text will be provided in later releases

java.lang.NumberFormatException: For input string: "sqlexec"


This request is to also include the service name to this functionality.


Problem summary


****************************************************************
USERS AFFECTED:
JDBC driver before 3.50.JC1
****************************************************************
PROBLEM DESCRIPTION:
JDBC was not able to handle service name in the connection
string. It was must to provide the port number in the connection
URL or SQLHOSTS file.
****************************************************************
RECOMMENDATION:
Upgrade to JDBC 3.50.JC1 or above.
****************************************************************


Problem conclusion


The problem has been fixed in 3.50.Jc1. Now JDBC users can pass service name in a connection URL as well as in SQLHOSTS.

728x90
728x90

Problem(Abstract)

Problem installing a 32-bit IBM Informix Client SDK product on a 64-bit Windows machine.

Symptom

When installing a 32-bit IBM Informix Client SDK product on a 64-bit Windows machine, you may see a message stating that you cannot install becuase you are using a 64 bit machine.

Cause

The problem is due to the Windows redirection path not being included in your systems PATH environment variable setting.

Environment

Windows 64-bit machine

Resolving the problem




  1. Open a Windows command window ('cmd')
  2. run: "set PATH=C:\WINDOWS\SysWOW64\;%PATH%"
  3. Run the setup.exe for IBM Informix Client SDK

To confirm that the Informix 32-bit ODBC driver has been installed run:

"C:\windows\syswow64\odbcad32.exe" and look under the Drivers tab.


http://www.ibm.com/support/docview.wss?uid=swg21567466&myns=swgimgmt&mynp=OCSSVT2J&mync=E

728x90
728x90

Problem(Abstract)

JDBC needs a specific environment set if the DB_LOCALE is set to ko_kr.cp_949 for Korean Cp949.

Symptom

Using JDBC, we may get errors like -79784 (" Locale not supported.") or -908 ("Attempt to connect to database server NAME failed.") when trying to connect to a database using the following locale: ko_kr.cp_949

For example, the following connection:
jdbc:informix-sqli://myhost:ids_port/mydatabase:informixserver=myidsserver;user=mylogin;password=mypasswd;DB_LOCALE=ko_kr.cp_949;CLIENT_LOCALE=ko_kr.cp_949

might return error -79784 or -908 if used with JDK earlier than 1.6 and/or JDBC earlier than 3.50.JC8


Resolving the problem

When using JDBC, in order to be able to connect properly to a database using locale ko_kr.cp_949 you have to use JDK1.6 or later and JDBC 3.50.JC8 or later.


http://www-01.ibm.com/support/docview.wss?uid=swg21449804

728x90
728x90

Problem(Abstract)

You install IBM Informix Client Software Development Kit (CSDK) 3.70.FC4 on a machine running a Windows operating system. The installation does not include OpenAdmin Tool (OAT). You note that OAT is included when you install the 32-bit Windows CSDK 3.70.TC4.

Cause

OAT is first bundled with CSDK in 3.70.xC4 fixpaks. This does not include the 64-bit CSDK 3.70.FC4 on Windows.

Resolving the problem

You can install the 32-bit OAT on a Windows 64-bit machine.


설치시 명령프롬프트를 관리자 권한으로 실행해야 하며, PATH를 다음과 같이 지정하여 설치한다.

SET PATH=%windir%\syswow64;%PATH%


http://www-01.ibm.com/support/docview.wss?uid=swg21579591

http://www.ibm.com/support/docview.wss?uid=swg21567466&myns=swgimgmt&mynp=OCSSVT2J&mync=E

728x90
728x90


Problem(Abstract)

Error -952 returned when using shadow passwords with Informix Dynamic Server versions 7.31 or 9.40 on HP-UX 11i.

Resolving the problem

PROBLEM

Shadow passwords are not supported in either IBM® IDS versions 7.31 or 9.40. This operating system enhancement is not available until the release of HP-UX® 11i (11.11), and for purposes of backward compatibility IDS 7.31 and 9.40 are ported to earlier releases of HP-UX 11. 


SCOPE

The following products and operating systems are affected:

Product Name​
Product Version(s)​
Hardware Vendor​
Operating System​
IBM® Informix® Dynamic Server™ ​
7.31.​x​C1 and later versions​
9.40.​x​C1 and later versions​
Hewlett-Packard​
HP-UX® 11i​
x can be U, H, or F depending on your operating system.


WORKAROUND



CAUSE

This is expected behavior and not a product defect.


http://www-01.ibm.com/support/docview.wss?uid=swg21250766

728x90
728x90

You may have already encountered a strange problem when trying to alter a table. Even though you have explicitly locked a table in exclusive mode, you are not able to alter it. The following example demonstrates this issue:


Listing 8. Non-exclusive access on a table
				
Output from dbaccess -e stores_demo <script.sql>:
--------------------------------------------------
begin;
  Started transaction.
lock table customer in exclusive mode;
  Table locked.
alter table customer add (mycol integer);
  242: Could not open database table (informix.customer).
  106: ISAM error: non-exclusive access.
			

This behavior occurs because a select cursor was opened on table customer by someone else. The cursor is not placing any locks on individual rows; otherwise we would have not been able to lock the table exclusively, but it prevents IDS from changing the partition information.

To solve the problem, identify the session that opened a cursor on table customer:

  1. Determine the hexadecimal partition number of table customer:
    • Select hex(partnum) from systables where tabname = "customer".
  2. If the partition number of this table is zero, it is a fragmented table. You need to execute the following SQL statement ito find the partition numbers of the individual fragments:

    Select st.tabname, dbinfo("dbspace", sf.partn), hex(sf.partn) from systables st, sysfragments sf, where st.tabid = sf.tabid and sf.fragtype = "T"and st.tabname = "customer".

  3. Take the hexadecimal partition number and search for it in all currently opened tables: 

    onstat -g opn | grep -i <hex_partnum>

  4. Take the rstcb column, which is a shared memory address of the respective user thread, and search for it using theonstat -u command.

    onstat -u | grep <rstcb_without_leading_0x>

After you identify the respective database session, you can terminate it with the onmode -z <sessid> command.

If you're running on IDS version 7.31.xD5, 9.40 or 10, you can also take advantage of the environment variable IFX_DIRTY_WAIT. This environment variable can be set in the engine or in the client environment. IFX_DIRTY_WAIT specifies the number of seconds that a DDL statement will wait for existing dirty readers to finish accessing the table that is about to be altered. If the specified number of seconds has expired, IDS returns the same error to the application that would be sent if the IFX_DIRTY_WAIT variable was not set.


http://www.ibm.com/developerworks/data/library/techarticle/dm-0701herber/index.html

http://www-01.ibm.com/support/docview.wss?uid=swg21174239

728x90
728x90

Problem(Abstract)

This article details how to resolve the error "The type of your terminal is unknown to the system" when running dbaccess.

Resolving the problem

Q. How can I resolve various "unknown terminal" errors I receive when running dbaccess?

A. Set the environment variables TERM and TERMCAP to point to $INFORMIXDIR/etc/termcap.

Example:

    For csh:
        setenv TERM vt100
        setenv TERMCAP $INFORMIXDIR/etc/termcap

    For ksh :
        export TERM=vt100
        export TERMCAP=$INFORMIXDIR/etc/termcap


http://www-01.ibm.com/support/docview.wss?uid=swg21225215

728x90
728x90

Error description

In C-ISAM 7.26.xC3 the product was built using a newer GLS library than previously used in 7.26.xC2 and earlier.  As such, there are now several new functions, such as ifmx_dlopen, ifmx_dlclose, ifmx_dlerror and ifmx_dlsym.  These functions, in turn, are dependent upon symbols which are defined in the system library libdl.so / libdl.sl.    (The specific library name may differ, depending on platform.)


Because of this requirement, it is now necessary to include a reference to link -ldl to the C-ISAM compile line in 7.26.xC3. This was not required in previous releases, yet the 7.26.xC3 release notes do not reflect this change.


A re-evaluation of the 7.26.xC3 release notes and related documentation is needed to ensure that all new requisite build options are referenced in the appropriate documents.


Local fix

Add -ldl (or relative platform equivalent library reference) to application compile line.



https://www-304.ibm.com/support/entdocview.wss?uid=swg1IC68384

728x90
728x90

Problem(Abstract)

When attempting to insert rows into a table, the following error is returned to the client:

ISAM error 136 : no more extents

Cause

IDS can only allocate a maximum of 16,775,215 disk pages per table partition or fragment. It should also be noted that this is independent of the dbspace configured page size.

Also, IDS can only track approximately 200 extents (logical grouping of disk pages) per table partition or fragment. The most likely root cause will be that one or both these values have been realized.


Diagnosing the problem

As user informix, run oncheck -pt <database>:<table name >".


In the resulting output, examine the value for "Number of pages used" or "Number of pages allocated". If either one is equated to 16,775,215 then this is the most likely root cause of the problem. 

However, should these values not be close to 16,775,215 then it's likely that the table has already allocated a high number of smaller extents (logical grouping of data or index pages).
If so , then the value for "Number of extents" will be close to or greater than 200, (there is no 'hard' limit due to various architectural reasons).

Example output to oncheck -pt :

TBLspace Report for dbase:informix.customer

Physical Address 1:36878
Creation date 801 Page Locking
TBLspace use 4 bit bit-maps
Maximum row size 134
Number of special columns 0
Number of keys 0
Number of extents 186
Current serial value 10139
Current SERIAL8 value 1
Current BIGSERIAL value 1
Current REFID value 2
First extent size 8
Next extent size 16
Number of pages allocated 16775215
Number of pages used 16775215
Number of data pages 16775215
Number of rows 1118341
Partition partnum 1049005
Partition lockid 1049005


Resolving the problem

If the value for Number of pages used or allocated is at 16775215, then try one of the following recommendations:

Non Fragmented Tables:

1. If the indexes defined for the table are attached , drop and recreate the table's indexes as "detached" (in their own separate partitions).

Note: A CREATE INDEX statement that does not specify IN TABLE as its storage clause creates indexes that store their pages in separate partitions from the data pages by default.

2. Fragment the table using a Round Robin or an expression Based strategy. This will result in additional partitions being created in order to track the table internally.

If the value for Number of extents is close or exceeds 200, then :

Reorganize the table using a larger initial extent size to defeat a high number of smaller extents being allocated.



http://www-01.ibm.com/support/docview.wss?uid=swg21395852

728x90

+ Recent posts