Known problems and workarounds

7 7 7

SQL1224 error from DRDA wrapper (AIX)

7

If a 32-bit DB2 UDB server is run on an AIX system and an application running 7on the same system has more than one local database connection through the 7DRDA(R) wrapper, then the application might get the following error:

7
SQL1822N  Unexpected error code "-1224" received from 
7data source "W3_SERVER2". 
7Associated text and tokens are 
7  func="DriverConnect" 
7  msg="SQL1224N  A database agent"
7SQLSTATE=560BD
7

To avoid this error, put the following entry in the federated configuration 7file (instance_directory/cfg/db2dj.ini):

7
EXTSHM=ON
7 7
Note:
7
When you add entries to the federated 7configuration file, you must stop and restart DB2 UDB for the changes to take 7effect.
7

Alternately, you can catalog the local DB2 UDB database as being on a TCP/IP 7node. For example:

7
CATALOG TCPIP NODE my_node REMOTE my_host SERVER 123;
7CATALOG DB mydb AT NODE my_node;
7CREATE WRAPPER drda;
7CREATE SERVER my_server TYPE DB2/UDB VERSION 8 WRAPPER drda
7   AUTHORIZATION "my_id" PASSWORD "my_pw"
7   OPTIONS(ADD DBNAME 'MYDB');
7 7 7

Hotkeys not working in Microsoft Visual Studio .NET Framework 1.1

7

If your hotkeys are not working in Microsoft Visual Studio .NET Framework 71.1, you can download a hotfix from the Microsoft Web site. You can find 7the hotfix in the Microsoft Knowledge Base, article Q836745.

The simplified Chinese locale (AIX)

3AIX has changed the code set bound to the simplified Chinese 3locale Zh_CN on:

3

The code set has been changed from GBK (code page 1386) to GB18030 (code 3page 5488 or 1392). Since DB2 Universal Database for AIX supports the GBK 3code set natively and the GB18030 code set via Unicode, DB2 Universal Database 3will default the Zh_CN locale's code set to ISO 8859-1 (code page 819), and 3in some operations will also default the locale's territory to the United 3States (US).

To work around this limitation, you have two options:

If you choose to use the first option, issue the following commands:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
db2 terminate
db2stop
db2start 

If you choose to use the second option, change your locale from Zh_CN to either ZH_CN or zh_CN. The ZH_CN locale's code set is Unicode (UTF-8), while the zh_CN locale's code set is eucCN (code page 1383).

5The simplified Chinese locale (Red Hat Linux)

5Red Hat Version 8 and later (including Red Hat Enterprise Linux 5[RHEL] versions 2.1 and 3) have changed the default code set for simplified 5Chinese from GBK (code page 1386) to GB18030 (code page 5488 or 1392).

3Since DB2 Universal Database for Linux supports the GBK code 3set natively and the GB18030 code set via Unicode, DB2 Universal Database 3will default its code set to ISO 8859-1 (code page 819), and in some operations 3will also default its territory to the United States (US).

3To work around this limitation, you have two options:

3

If you choose to use the first option, issue the following commands:

3
db2set DB2CODEPAGE=1386
3db2set DB2TERRITORY=86
3db2 terminate
3db2stop
3db2start 

If you choose to use the second option, issue any one of the 3following commands:

3
export LANG=zh_CN.gbk
3export LANG=zh_CN
3export LANG=zh_CN.utf8

where the code set associated with zh_CN is eucCN 3or code page 1383, and with zh_CN.utf8 is code page 1208.

5 5 5

Merant Driver Manager incompatibility (UNIX)

5

There are incompatibilities with Unicode support when the Merant Driver 5Manager accesses the DB2 ODBC driver on UNIX. These incompatibilities cause 5the Merant Driver Manager to use Unicode even if the application did not request 5Unicode use. This situation can lead to problems with components such as the 5Data Warehouse Center, Information Catalog Manager, and MQSI, which require 5the Merant Driver Manager to support non-IBM data sources. You can use an 5alternate DB2 ODBC driver library without Unicode support enabled until a 5permanent solution is available.

5

An alternative DB2 ODBC driver library without Unicode support enabled 5is included with DB2 UDB Version 8.1 for AIX, HP-UX, and Solaris Operating 5Environment. To use this alternative library, you must create a copy of it, 5giving the copy the original DB2 ODBC driver library's name.

5 5
Note:
5
The alternative (_36) library contains the Unicode functions required by the 5DB2 JDBC driver. Using this library allows JDBC applications, including WebSphere(R) 5Application Server, to work successfully with DB2 UDB.
5

To switch to the non-Unicode ODBC library on AIX, HP-UX, or the Solaris 5Operating Environment, see the following instructions. Because this is a manual 5process, you must carry it out every time you update your product, including 5after the application of successive FixPaks or modification levels.

5
5Procedure 5

5
5
AIX
5
5

To create the alternate library on AIX:

5
    5
  1. As the instance owner, shut down all database instances using the db2stop force command.
  2. 5
  3. Using the DB2 administration server (DAS) instance ID, shut down the DAS 5instance using the db2admin stop force command.
  4. 5
  5. Back up the original db2.o file in the /usr/lpp/db2_81/lib directory.
  6. 5
  7. Using root authority, issue the slibclean command.
  8. 5
  9. Copy file db2_36.o to backup file db2.o, ensuring that ownership and permissions 5remain consistent. Use the following commands: 5
    cp db2_36.o db2.o
    5-r--r--r-- bin:bin for db2.o
5

To switch back to the original object, follow the same procedure 5using the backup file instead of the db2_36.o file.

5
5
Solaris Operating Environment
5
5

To create the alternate library in a Solaris Operating Environment:

5
    5
  1. As the instance owner, shut down all database instances using the db2stop force command.
  2. 5
  3. Using the DB2 administration server (DAS) instance ID, shut down the DAS 5instance using the db2admin stop force command.
  4. 5
  5. Back up the original libdb2.so.1 file in 5the /opt/IBMdb2/V8.1/lib directory.
  6. 5
  7. Copy file libdb2_36.so.1 to backup file libdb2.so.1, ensuring that ownership and permissions 5remain consistent. Use the following commands: 5
    cp libdb2_36.so.1 libdb2.so.1 
    5-r-xr-xr-x bin:bin libdb2.so.1
  8. 5
  9. Issue the db2iupdt <instance> command for 5each database instance and the dasupdt <das_instance> command for the DAS instance.
5

To switch back to the original object, follow the same procedure 5using the backup file instead of the libdb2_36.so.1 file.

5
5
HP-UX PA-RISC
5
5

To create the alternate library on HP-UX PA-RISC:

5
    5
  1. Shut down all database instances using the db2stop 5force command.
  2. 5
  3. Shut down the DB2 administration server (DAS) instance using the db2admin stop force command.
  4. 5
  5. Back up the original libdb2.sl file in the /opt/IBMdb2/V8.1/lib directory.
  6. 5
  7. Copy file libdb2_36.sl to backup file libdb2.sl, ensuring that the ownership and permissions 5remain consistent. Use the following command to ensure the consistency: 5
    cp libdb2_36.sl libdb2.sl
    5-r-xr-xr-x bin:bin for libdb2.sl
  8. 5
  9. Issue the db2iupdt <instance> command for 5each database instance and the dasupdt <das_instance> command for the DAS instance.
5

To switch back to the original object, follow the same procedure 5using the backup file instead of the libdb2_36.sl file.

5
5
HP-UX on IA64
5
5

To create the alternate library on HP-UX on IA64:

5
    5
  1. Shut down all database instances using the db2stop 5force command.
  2. 5
  3. Shut down the DB2 administration server (DAS) instance using the db2admin stop force command.
  4. 5
  5. Back up the original libdb2.so file in the /opt/IBMdb2/V8.1/lib directory.
  6. 5
  7. Copy file libdb2_36.so to backup file libdb2.so, ensuring that the ownership and permissions 5remain consistent. Use the following command to ensure the consistency: 5
    cp libdb2_36.so libdb2.so
    5-r-xr-xr-x bin:bin for libdb2.so
  8. 5
  9. Issue the db2iupdt <instance> command for 5each database instance and the dasupdt <das_instance> command for the DAS instance.
5

To switch back to the original object, follow the same procedure 5using the backup file instead of the libdb2_36.so file.

5
5
Other UNIX Operating Systems
5
5

Contact IBM Support if you require assistance with DB2 UDB and the 5Merant Driver Manager on other UNIX operating systems.

5
5
2 2 2

NFS APAR IY32512 - Unavailable threads (AIX)

2

AIX 5 NFS APAR IY32512 might cause the db2stop command 2to stop on systems with a large number of partitions.

2

On a server that is receiving large numbers of requests for blocking locks 2on files that are already locked, the lock daemon might become unresponsive. 2This situation occurs when all available locked threads are allocated to threads 2that are waiting for the locks to become available, so there is no thread 2available to pick up the work when the unlock request is made.

2

When this situation occurs the stopped nodes must be restarted. There 2is a DB2 UDB workaround for this situation by stopping the nodes one at a 2time using the NODENUM option of the db2stop command.

Data Links server backup fails using Tivoli Storage Manager archive server (AIX, Solaris Operating Environment)

Problem: When installing or migrating to DB2 Data Links Manager, Version 8.2, a Data Links File Manager (DLFM)-initiated backup of Data Links server data to a Tivoli Storage Manager archive server fails. One of the following sets of error messages display, either on-screen or on the installation status report:

DLFM129I: Automatic backup of DLFM_DB database has been triggered. 
          Please wait for the backup to complete.

DLFM901E: A system error occurred. Return code = "-2062".
          The current command cannot be processed.
          Refer to the db2diag.log file for additional information.

-- or --

DLFM811E: The current DLFM database could not be backed up. 
          SQL code = "-2062", Return code = "-2062"

DLFM901E: A system error occurred. Return code = "-2062".
          The current command cannot be processed.
          Refer to the db2diag.log file for additional information.

Cause: The DB2 Data Links Manager Installer program failed to set the variables required to use Tivoli Storage Manager as an archive (backup) server for a Data Links server.

Tip: If you want to use Tivoli Storage Manager as an archive server, and you have not yet installed or migrated to DB2 Data Links Manager, Version 8.2, you can prevent this problem from occurring. First, do not use the "Tivoli Storage Manager" backup option from the Installer program. Then, manually configure the Data Links Manager Administrator's profile to include the appropriate Tivoli Storage Manager variables, as described in step 2 that follows. After you have completed both tasks, you can proceed with the installation or migration.

Workaround: Perform the following tasks in the order listed.

  1. Back up the DLFM database using the following command:
    db2 backup <dlfm_db><path>
    where:
  2. Manually configure the Data Links Manager Administrator's profile to include the appropriate Tivoli Storage Manager variables. The manual configuration procedure and the required variables are described in the following documentation topics:

    You can find these topics either online in the DB2 Information Center, or in the "System Management Options" chapter of the DB2 Data Links Manager Administration Guide and Reference.

4 4 4

SQLFLAG (STD) precompiler option error

4

If the SQLFLAG(STD) precompile option is enabled, it will cause the following 4error: Abend C6 occurred while running Precompile program DSNHPC

4

Remove the SQLFLAG (STD) precompile option when using the Development Center 4to create SQL stored procedures to run on DB2 for z/OS, Version 8.

7 7 7

DB2 Connect Custom Advisor

7

Despite being documented in the DB2 Connect User's 7Guide, the DB2 Connect Custom Advisor is no longer supported in Version 78.2.

Displaying Indic characters in the DB2 GUI tools

If you have problems displaying Indic characters when using the DB2 GUI tools, you might not have the required fonts installed on your system.

DB2 Universal Database has packaged the following IBM TrueType and OpenType proportional Indic language fonts for your use. You can find these fonts in the font directory on any of the following CDs:

These fonts are to be used only in conjunction with DB2 UDB. You cannot engage in the general or unrestricted sale or distribution of these fonts:

Table 10. Indic fonts packaged with DB2 Universal Database
Typeface Weight Font File Name
Devanagari MT for IBM Medium devamt.ttf
Devanagari MT for IBM Bold devamtb.ttf
Tamil Medium TamilMT.ttf
Tamil Bold TamilMTB.ttf
Telugu Medium TeluguMT.ttf
Telugu Bold TeleguMTB.ttf

Detailed instructions on how to install the fonts and modify the font.properties file can be found in the Internationalization section of the IBM Development Kit for Java documentation.

In addition, the following Microsoft products come with Indic fonts that can be used with DB2 GUI tools:

GUI tools are not supported for zSeries servers (Linux)

With the exception of the DB2 Setup wizard, the GUI tools will not work on zSeries servers running the Linux operating system. This limitation includes any items normally launched from the Installation launchpad, such as the Quick Tour.

If you want to use the GUI tools with one of these systems, install the administrative tools on a client system with a different system configuration, and use this client to connect to your zSeries server.

7 7 7

Enclose DB2 Information Center search terms within quotation marks 7if they contain numbers

7

To get accurate search results in the DB2 Information Center you must enclose 7search terms that include numbers within quotation marks.

7

For example, if you search for the following term you will receive no results:

7
  1.4.1
7

However, if you enclose the term within quotation marks, you receive the 7appropriate results:

7
  "1.4.1"
7

A search for the following term will return extra topics:

7
  DB20000I
7

But a search on the following term works properly:

7
  "DB20000I"
4 4 4

Information Catalog Center log file not generated when importing tag 4language files

4

If an Information Catalog Center log file is not generated when you import 4tag language files to the Information Catalog Center, perform the following 4troubleshooting steps:

4
4
When running db2icmimport from a command line:
4
4 4
4
4
4
When importing tag language files using the Information Catalog 4Center GUI:
4
4 4
4
6 6 6

Binding Query Patroller packages

6

If the Query Patroller packages are not bound after applying a fixpak, 6a user without DBADM authority or proper Query Patroller privileges can encounter 6the following error when using the Query Patroller Center or Query Patroller 6command line:

6
SQL0001N - Binding or precompilation did not complete successfully.

If you are using the Query Patroller Center, the SQL0001N error is logged 6in qpdiag.log file. If you are using the Query Patroller command line, the 6SQL0001N is returned to the console

6

Auto-bind code exists to initiate automatic binding. However, the automatic 6binding fails when the connecting user does not have the necessary privileges 6to execute all statements in the Query Patroller packages. A symptom of this 6problem is missing folders in the Query Patroller Center.

6

To avoid this problem, the qpserver.lst packages should be bound manually 6by a user with DBADM authority or necessary privileges after applying a fixpak.

7 7 7

Unavailability of ports with Query Patroller (Windows)

7

Submitted queries in Query Patroller might receive SQL code -29007 when 7there are no more available ports on Windows XP or Windows 2003. The likelihood 7of this error increases with an increasing number of clients accessing Query 7Patroller. If this situation happens, set the following registry variables 7as follows:

7
   MaxUserPort=65534
7   TcpTimedWaitDelay=30 

and restart your system for the changes to take effect.

1 1 1

Secure environments (Windows)

1

You might experience file permission problems if you are using DB2 Universal 1Database on Windows and are not an administrator on the Windows system. If 1you receive an SQL1035N, SQL1652N, or SQL5005C error message, possible causes 1and workarounds are shown in the following information:

1
1User does not have sufficient authority on the sqllib directory 1

1
1
Problem
1
User receives an SQL1035N or SQL1652N error when trying to open the 1DB2 CLP or command window. The DB2 Universal Database code (core files) are 1installed into a directory structure where write privileges are limited, but 1some DB2 Universal Database tools need to write and create files in the DB2INSTPROF 1directory. 1
1
Workaround
1
Create a new directory where you can grant users, at minimum, the MODIFY 1permission and use either db2set -g db2tempdir to 1point to the new directory, or set the db2tempdir variable in the Windows 1system environment. 1
1
1
1User does not have sufficient authority to write to the sqllib\<instance_dir> 1directory even though user belongs to SYSADM_GROUP 1

1
1
Problem
1
User receives an SQL5005C system error when trying to update the database 1manager configuration file (update dbm cfg). The user does not have the required 1NTFS permissions to write to the sqllib\instance_dir directory even 1though you have added this user to the SYSADM_GROUP. 1
1
First workaround
1
1

Grant the users, at minimum, the MODIFY permission on the instance_dir directory at the file system level.

1
1
Second workaround
1
Create a new directory where you can grant the user, at minimum, the 1MODIFY permission. Use the db2set db2instprof command 1to point to the new directory. You will need either to recreate the instance 1so that the information is stored under the new instance directory specified 1by db2instprof, or you will need to move the old instance directory to the 1new directory. 1
1
2 2 2

XML Extender sample programs renamed

2

Some XML Extender sample programs might have the same name as other installed 2programs. Accidentally invoking another program with the same name as an 2XML Extender sample program can damage your XML files. The following list 2shows the old XML Extender sample program names as well as new replacement 2program names that are less likely to cause conflicts. Make sure you use 2the new sample program names instead of the old ones to prevent damaging your 2XML files.

2 2222222222222222222222222222222222222222222
Table 11. Replacement sample programs for XML Extender (Windows)
Old Program (Do not use) New Program (Use)
insertx.exe dxxisrt.exe
retrieve.exe dxxretr.exe
retrieve2.exe dxxretr2.exe
retrievec.exe dxxretrc.exe
shred.exe dxxshrd.exe
tests2x.exe dxxgenx.exe
tests2xb.exe dxxgenxb.exe
tests2xc.exe dxxgenxc.exe
2 2222222222222222222222222222222222222222222
Table 12. Replacement sample programs for XML Extender (UNIX)
Old Program (Do not use) New Program (Use)
insertx dxxisrt
retrieve dxxretr
retrieve2 dxxretr2
retrievec dxxretrc
shred dxxshrd
tests2x dxxgenx
tests2xb dxxgenxb
tests2xc dxxgenxc
2 2

Using the new sample programs with the sample sqx files

2

The source code (.sqx files) for the executables listed previously are 2located in the samples\db2xml\c directory of your installation. 2The source files are still labeled with their old names. If you make changes 2to the source code, copy your newly compiled executables (with the old names) 2to the sqllib\bin directory. On Windows platforms, you must make 2an additional copy, rename it with its new name above, and copy it to the 2bin directory. Both copies replace the existing files in the bin directory. 2For example, after compiling your new version of shred.exe, you need to make 2two copies and replace the files in the bin directory: one labeled shred.exe 2and the other renamed dxxshrd.exe. On UNIX platforms, you need only to replace 2the file with the old name with your newly compiled version. If you create 2new executable files from these samples, you must copy the new files from 2the \SQLLIB\samples\db2xml\c\ directory into the \SQLLIB\bin\ directory, and then make an additional copy, renaming them according 2to the previous table.

4 4 4

Decomposing documents in XML Extender that contain non unique attribute 4and element names

4

You can now decompose documents that contain non-unique attributes or non-unique 4element names that map to different columns (of the same or different tables) 4without receiving the DXXQ045E error. The following is an example of an XML 4document with non-unique attributes and non-unique element names:

4
<Order ID="0001-6789">
4       <!-- Note: attribute name ID is non-unique -->
4       <Customer ID="1111">
4                    <Name>John Smith</Name>
4       </Customer>
4       <!-- Note: element name Name is non_unique -->
4       <Salesperson ID="1234"> 
4              <Name>Jane Doe</Name>
4       </Salesperson>
4       <OrderDetail>
4              <ItemNo>xxxx-xxxx</ItemNo>
4              <Quantity>2</Quantity>
4              <UnitPrice>12.50</UnitPrice>
4       </OrderDetail>
4       <OrderDetail>
4              <ItemNo>yyyy-yyyy</ItemNo>
4              <Quantity>4</Quantity>
4              <UnitPrice>24.99</UnitPrice>
4       </OrderDetail>       
4</Order>

The accompanying DAD, which maps the duplicate elements and 4attributes to different columns, looks like this:

4
<element_node name="Order">
4  <RDB_node>
4    <table name="order_tab" key="order_id"/>
4    <table name="detail_tab"/>
4    <condition>
4      order_tab.order_id=detail_tab.order_id
4    </condition>
4  </RDB_node>
4
4  <!--attribute ID duplicated below, but mapped to a different col-->
4  <attribute_node name="ID">
4    <RDB_node>
4      <table name="order_tab" />
4      <column name="order_id" type="char(9)"/>
4    </RDB_node>
4  </attribute_node>
4  
4  <element_node name="Customer">
4    <!--attribute ID duplicated above, but mapped to a different col-->
4    <attribute_node name="ID">
4      <RDB_node>
4        <table name="order_tab" />
4        <column name="cust_id" type="integer"/>
4      </RDB_node>
4    </attribute_node>
4
4    <!--element name duplicated below, but mapped to a different col-->
4    <element_node name="Name"> 
4      <text_node>
4        <RDB_node>
4          <table name="order_tab" />
4          <column name="cust_name" type="char(20)" />
4        </RDB_node>
4      </text_node>
4    </element_node>
4  </element_node>
4    
4  <element_node name="Salesperson">
4    <!--attribute ID duplicated above, but mapped to a different col-->
4    <attribute_node name="ID">
4      <RDB_node>
4        <table name="order_tab" />
4        <column name="salesp_id" type="integer"/>
4      </RDB_node>
4    </attribute_node>
4          
4    <!--element name duplicated above, but mapped to a different col--> 
4    <element_node name="Name"> 
4      <text_node>
4        <RDB_node>
4          <table name="order_tab" />
4          <column name="salesp_name" type="char(20)" />
4        </RDB_node>
4      </text_node>
4    </element_node>
4  </element_node>
4    
4  <element_node name="OrderDetail" multi_occurrence="YES">
4    <element_node name="ItemNo">
4      <text_node>
4        <RDB_node>
4          <table name="detail_tab" />
4          <column name="itemno" type="char(9)"/>
4        </RDB_node>
4      </text_node>
4    </element_node>
4    <element_node name="Quantity">
4      <text_node>
4        <RDB_node>
4          <table name="detail_tab" />
4          <column name="quantity" type="integer"/>
4        </RDB_node>
4      </text_node>
4    </element_node>
4    <element_node name="UnitPrice">
4      <text_node>
4        <RDB_node>detail_tab" />
4          <table name="detail_tab" />        
4          <column name="unit_price" type="decimal(7,2)"/>
4        </RDB_node>
4      </text_node>
4    </element_node>
4  </element_node>
4</element_node>

The contents of the tables would look like the following 4sample after the preceding document is decomposed:

4
ORDER _TAB:
4
4ORDER_ID       CUST_ID       CUST_NAME       SALESP_ID       SALESP_NAME
40001-6789      1111          John Smith      1234            Jane Doe
4
4DETAIL_TAB:
4
4ORDER_ID          ITEMNO         QUANTITY          UNIT_PRICE
40001-6789         xxxx-xxxx      2                 12.50
40001-6789         yyyy-yyyy      4                 24.99
4 4
Note:
5 5
To map multiple elements and attributes to the same column of the 5same table, define an alias for the table and use the alias in the DAD <table> 5element of one of the mappings.
45 5 5

Differences between SNA and TCP/IP when using DB2 Connect

5

When connecting to an OS/390 system using SNA, the host VTAM(R) layer automatically 5 flows a commit when a new connection is made. The automatic commit allows 5the host side thread state to be inactive, and the thread immediately becomes 5 inactive.

5

However, when connecting to an OS/390 system using TCP/IP, there is no 5automatic commit. The application itself must flow an explicit commit after 5the connection to allow the thread to be inactive on the host. Without the 5explicit commit, the thread is subject to an idle thread time out.

5

The suggested workaround is to rewrite the application so that it will 5perform an explicit commit if the connection goes idle after the connection.

[ Top of Page |Previous Page | Next Page | Contents ]