INTRODUCTION
------------
This is the UQ11442.DOC file for the IBM Entry Communications System/2:
Version 1 Release 3 Modification 1 (English) PTF UQ11442.
The following topics are covered in this UQ11442.DOC file:
o PREREQUISITES
o INSTALL PROGRAM FEATURES
o INSTALLING PTF UQ11442
o MIGRATION FOR TQ TABLES (required)
o LIST OF FILES
o LIST OF APARS FIXED
o NOTES FOR UQ11442
- ECS/2 OI Requirement on WARP 4.0+
- TCP/IP 3.0+ GetHostByName Work-Around (PN86849)
- ECS/2 & CS/HP Communication Fix (CS/HP APAR PQ04326)
- Utility Tools (DCR4963)
- DDMS Doc Change (PQ03833)
- Printer REM Consuming Excessive CPU Time
- Printer Binary Option Added to Print 4029-formatted File (PN79627)
- Guidelines for VisualAge C++ DAE Applications (PN91577)
- TXE_OPT_DISCONNECT Flag Provided on CS2_TRANSACT (PQ05429)
- Database/Transaction Configuration File (optional) (PN88060)
- Txe Mirror Filtering (optional) (PN88060)
o COMPLEMENTARY FIXES FOR ENTRY/6000 1.2.1
PREREQUISITES
-------------
Program Temporary Fix UQ11442 requires Entry Communications System/2 (5621-022)
Release 3.1 (English). Please ensure you are at this level before proceeding
with the installation of this PTF.
INSTALL PROGRAM FEATURES
------------------------
1. ONLY INSTALLED OPTIONS WILL BE UPDATED:
The Install program determines which options were previously
installed by reading NETDIST support files (either topology.dat
or mintopo.dat). Only those files for which support was
previously installed will be installed. If the Install program
cannot find the NETDIST support files, then all files contained
on the PTF will be installed.
2. FILES BACKED UP:
Before replacing, the Install program copies files into
their respective path under the CS2\BACKUP\UQ11442\ directory.
3. SYSLEVEL UPDATED:
The last step of the installation is to update the SYSLEVEL.ECS
to reflect PTF UQ11442 has been installed. The original file
is saved as SYSLEVEL.BAK under CS2\BACKUP\UQ11442\.
INSTALLING PTF UQ11442
----------------------
Follow these directions to update your system and install PTF UQ11442:
1. Shutdown the Entry Communications System/2 if it is currently running.
2. Place the first diskette in the A: drive.
3. From the A: directory issue:
INSTALL Y:
where Y is the drive where ECS/2 is installed.
4. Place the requested diskette in the a: drive when prompted.
5. When the installation complete message is displayed,
restart the Entry Communications System/2.
6. Run the TQ migration utility. See Migration For TQ Tables section.
MIGRATION FOR TQ TABLES (required)
----------------------------------
This utility will examine the Table definitions (Queue's don't need
to be migrated) in cs2tqf00.cfs and will migrate the tables if necessary.
Note: is is VERY unlikely that any tables on OS/2 will need to be
migrated and in that case no changes will be made to the table files.
On AIX, most tables will need to be migrated, but there is little chance
of any data being lost or the table being corrupted if the table is not
migrated. The only possible result of not modifying a table would
be that it would appear to fill up before it is actually full.
To migrate the TQ tables:
1. Start DAE.
2. Execute cs2tqmig from the toolkit.
LIST OF FILES
-------------
The following are the files shipped on this PTF:
DDMS\ DDMLDIP.H
DLL\ CS2CLS01.DLL
DLL\ CS2CLS02.DLL
DLL\ CS2CLS03.DLL
DLL\ CS2CLS04.DLL
DLL\ CS2CLS05.DLL
DLL\ CS2CLS07.DLL
DLL\ CS2COLIB.DLL
DLL\ CS2DMCLS.DLL
DLL\ CS2DMLDP.DLL
DLL\ CS2NLS.DLL
DLL\ CS2UILIB.DLL
DLL\ WMS22.DLL
DLL\32_BIT\ CS232CLS.DLL
DLL\32_BIT\ CS232DM.DLL
DLL\32_BIT\ CS232NLS.DLL
DLL\32_BIT\ CS232NTN.DLL
DLL\32_BIT\ CS232TDM.DLL
DLL\32_BIT\ CS232TNK.DLL
INCLUDE\C\ CS2.H
INCLUDE\C\ CS2COAPI.H
INCLUDE\C\ CS2COCON.H
INCLUDE\C\ CS2CODFN.H
INCLUDE\C\ CS2DB.H
INCLUDE\C\ CS2DBERR.H
INCLUDE\C\ CS2DBEXT.H
INCLUDE\C\ CS2DBSDB.H
INCLUDE\C\ CS2DMCAL.H
INCLUDE\C\ CS2DS.H
INCLUDE\C\ CS2MDEP.H
INCLUDE\C\ CS2PC.H
INCLUDE\C\ CS2SIGNL.H
INCLUDE\C\ CS2UI.H
INCLUDE\C\ CS2XACT.H
INCLUDE\C\ TXEAPI.H
INCLUDE\C\ TXEMSGRC.H
INCLUDE\C\ TXESRV.H
LIB\ CS2CALLS.LIB
LIB\ CS2DMCLS.LIB
LIB\32_BIT\ CS2CALLS.LIB
LIB\32_BIT\ CS2DMCLS.LIB
PAN\ CS2STEXT.LIB
SYS\ CS2APR00.EXE
SYS\ CS2BLR00.EXE
SYS\ CS2CBR00.EXE
SYS\ CS2CCR00.EXE
SYS\ CS2CCR00.V11
SYS\ CS2DMR00.EXE
SYS\ CS2DMU00.EXE
SYS\ CS2DSRDR.EXE
SYS\ CS2DSRDS.EXE
SYS\ CS2ECR00.EXE
SYS\ CS2FSR00.EXE
SYS\ CS2ICR00.EXE
SYS\ CS2IRR00.EXE
SYS\ CS2IRR01.EXE
SYS\ CS2IRR10.EXE
SYS\ CS2NBR00.EXE
SYS\ CS2PSR00.EXE
SYS\ CS2PSR01.EXE
SYS\ CS2SCR00.EXE
SYS\ CS2SURA0.EXE
SYS\ CS2SURC0.EXE
SYS\ CS2TCR00.EXE
SYS\ CS2TCR00.V11
SYS\ CS2TMR00.EXE
SYS\ CS2TQR00.EXE
SYS\ CS2UIR00.EXE
SYS\ CS2UTT.MSG
SYS\ CSR.MSG
SYS\ CSRH.MSG
TOOLKIT\ CS2BLT.EXE
TOOLKIT\ CS2CBT.EXE
TOOLKIT\ CS2CCT.EXE
TOOLKIT\ CS2CUOFF.EXE
TOOLKIT\ CS2CUTIL.EXE
TOOLKIT\ CS2FST.EXE
TOOLKIT\ CS2FTT.EXE
TOOLKIT\ CS2STT.EXE
TOOLKIT\ CS2TQMIG.EXE
TOOLKIT\ CS2TQT.EXE
TOOLKIT\ CS2UTT.DOC
TOOLKIT\ CS2UTT.EXE
TOOLKIT\ MYAPPL.C
TOOLKIT\ POOLSAB.EXE
TOOLKIT\CSW\ CSW.DLL
TOOLKIT\CSW\ CSW.MSG
TOOLKIT\CSW\ CSWAPFNC.H
TOOLKIT\CSW\ CSWAPI.DLL
TOOLKIT\CSW\ CSWAPI.LIB
TOOLKIT\CSW\ CSWBLD.EXE
TOOLKIT\CSW\ CSWBUILD.DLL
TOOLKIT\CSW\ CSWH.MSG
TOOLKIT\CSW\ CSWMERGE.EXE
TOOLKIT\CSW\ CSWRESYN.EXE
TOOLKIT\CSW\ CSWRUN.EXE
TOOLKIT\CSW\ CSWSAMP2.DLL
TOOLKIT\CSW\ CSWSAMP2.EXE
TOOLKIT\CSW\ CSWTX2BN.EXE
TOOLKIT\CSW\ CSWTXTCR.EXE
LIST OF APARS FIXED
-------------------
DCR4811 NCR - to prevent heartbeat messages from appearing on session
where DAE was started add "DISP=NO" to the CS2IRR01 ACB
start parameters in capital letters with no spaces.
DCR4900 CS2.H - allow multiple #include passes to improve usability.
DCR4927 Improved cs2cbt (Configuration Utility Tool) - allow exit.
DCR4963 Rewrite tqinit to cs2tqt; add Utility Tools to CS/2.
DCR662 CS2_REPLY2 function - acknowledged CS2_REPLY.
PN53783 WMS - numeric keypad does not auto tab.
PN57206 CS2_PURGE_RES should delete ancb as well as temporary ACB.
PN59503 DDMS cs2dmcls.dll traps (sys3175) when D_DISCONNECT times out.
PN60139 Data supply (cs2dsrdr) traps if a forward slash is specified
as the first character of a CS/2 file path.
PN60489 CS2_TQ_LSTUSR thunk support.
PN60493 CDIN to support ga level CDF.
PN60751 UI - stack exception occurs in the cs2uilib.dll when displaying
more than three levels of panels.
PN61001 Netbios - (cs2nbr00) not all of > 1k message is received on
CS/2 node when message sent from a non-CS/2 node.
PN61268 DDMS used to support baud rates of only 32767 (signed integer).
now DDMS treats baud rate as unsigned int with value of 65535.
PN61507 APPC - cs2apr00 does not issue 'MCCONFIRMD' & 'TPENDED'.
PN62160 Rayonier service project enhancements.
PN62557 UI - multi-text support for graphics primitive.
PN62587 Calling CS2_WHOAMI with null originator rsname corrupts memory.
CSR1029 is returned instead.
PN62590 TCP/IP - local CCB not started (CSR317 error) when issuing
BIND() within minute of previous close. Fixed by using
SETSOCKOPT() with SO_REUSEADDRESS so bind is immediate.
PN63974 CSW - csw.log file growing forever.
PN64367 Data supply does not cleanup aborted session. Now cs2dsrdr
aborts stranded request if ACB start parm timeout elapses,
overridden by nonzero value in DSRP timeout field.
PN64368 Data supply (cs2dsrdr) waiting forever for acknowledgement.
The timeout specified in cs2dsrdr's ACB start parms is now used
as RDS timeout for CS2_SEND unless overridden by a nonzero
DSRP timeout. The override applies only for the cs2dsrds;
the start parm timeout value is always used for the cs2dsrdr.
PN64446 CSW - csw.dll traps.
PN64612 CS2_BASELOG succeeds when issued from a 32-bit appl with ACB
set to processor type 2, but message is not baselogged.
PN64673 Data transparency - XP validation check for packed decimal
types only allowing odd lengths.
PN65303 Initialization REM exits without freeing message pool.
PN65308 New API - CS2_EXIT_SYS, to allow an application to remove
access to the DAE system. This allows the application to
remain started when DAE is stopped and restarted.
PN66087 cs2nbr00 (Netbios REM) - change in handling the Netbios level
time out condition on a SEND_WAIT command. The baselog
PN67417 TQ - CS2_TQ_GETNEXT API corrupts memory when accessing a table
on a remote node with a different architecture.
PN67815 TCP/IP - message pool corruption by cs2tcr00 (TCP/IP REM) when
two local CCBs are configured and data transparency path used.
PN68287 TCP/IP -can't establish TCP/IP session. The SO_KEEPALIVE option
applied to communications sockets helps TCP/IP REM detect link
failures in conjunction with the IBM TCP/IP for OS/2 system
variable 'KEEPALIVE'. To modify this variable use the 'INETCFG'
command (ie, 'INETCFG KEEPALIVE=10'). For APAR PN68287, apply
IBM TCP/IP for OS/2 APAR PN59177 (language specific).
PN70121 Initialization - some control block file sizes result in
corrupt RD pool at initialization.
PN70314 CDIN list verb does not support huge data strings.
PN71740 UI application traps in CS232TNK.DLL.
PN75716 CS2_NOTIFY_CMD has no data when 32-bit appl has ACB proc type=2.
PN77374 Netbios REM lost track of session established by remote node.
PN75974 NLS - OS2<->AIX performance problem.
PN75975 Base logger (cs2blr00) loops when logging to remote node and a
communications error occurs.
PN75976 DDMS - program hangs when the sequence is D_DEFLOAD
then D_SVHDR.
PN75980 CS2_TQ_DELETE fails with CSR1385.
PN75981 CS2_TEMP_RES API fails (depending on char count in prefix).
PN77882 DDMS floating point overflow error when device data larger
than 1e+10 and percent deadbanding used on remote variable.
PN79627 CS2_PRINT provides invalid output of 4029-formatted file.
PN80358 DDMS - cs2dmcls.dll traps when disconnecting if outstanding IO.
PN80759 DB - Oracle7 via ODBC CS2_DB API support for CS/6000
enhancement and various CS2_DB API fixes.
PN81028 DB - cross-platform CS2_TRANSACT API requests are failing in
the mirrored client's path validation - CS2_TRANSACT API has
been updated to no longer require server_drive_path and
client_resp_path when not applicable.
PN81433 DDMS - CSR2095 - resource in use error from ModifyPoll.
PN81452 NT support on other platforms.
PN81539 DS - CLM3363 returned when DSRP l_timeout=-1.
PN82509 CS2_UTIL API traps when passed invalid originator in the RDS.
PN82921 DDMS enhancement to support d_writervar cross platform.
PN82927 ECR - cs2ecr00 frees storage which was not malloc'd.
PN83330 DB - CS2_TRANSACT returns CSR1391.
PN83331 DB - CS2_TRANSACT gets timeout using TXE_OPT_OPEN_LOOP.
PN83647 TQ - trap when 2 TQ servers close same T/Q at same time.
PN84356 DDMS random I/O points do not update when ldit make connection.
PN85572 DDMS - CS232DM.DLL traps during Plantworks point set install.
PN85698 DDMS change for variable msg notification (Plantworks PN84964).
PN86802 Disk Queued messages not received correctly when CACHE LAZY:ON.
PN86849 TCP/IP 3.0+ GetHostByName work-around suggestions.
PN87368 cs232tnk.dll traps or hangs running Plantworks on SMP machine.
PN87894 ICR REM routing to treat blank originating CCB entry same as null.
PN88042 TQ Large tables (300,000+ members) get CSR0409 before table full.
PN88060 Filter TXE secondary mirror requests based on configurable RCs.
PN88194 cs2cbr00 may trap when there are over 1000 control blocks.
PN88546 CS2_INIT gets good return code when DAE has been shutdown.
PN89729 UI scalable font supporting changes for service enhancement.
PN91577 Doc - DAE application compiled with Visualage C++ guidelines.
PN92631 Thunk - incorrect process ID returned on CS2_UTIL from 32-bit appl.
PN92710 Y2000 - update cs2colib and rebuild REMs for year 2000 support.
PQ00281 Time requester keeps sending requests after timeout condition.
PQ00493 TQ - toggle TQ corruption flag during update.
PQ02149 DDMS cannot support remote variable data length greater than 32K.
PQ02397 DDMS CS2DMCLS/ICIOTASK/FFISRV00 trap on Plantworks startup/PN87858.
PQ02926 DB - PTF2 headers cause trap in user 32-bit TXN.
PQ03384 DDMS passing incorrect remote variable size.
PQ03667 TQ - RMU Verify Utility seems to run endlessly for large tables.
PQ03788 Thunk - async call error path memory not released in thunk layer.
PQ03833 DDMS d_writervar documentation incomplete.
PQ05251 Thunk - CS2_GETDSEG thunk support.
PQ05426 cs2cutil - processor type not valid for RCB.
PQ05427 poolsab hangs DAE system.
PQ05428 Data supply does not erase temporary files when timeout expires.
PQ05429 DB - new TXE_OPT_DISCONNECT flag provides explicit disconnect.
PQ05430 Print Server - cannot start more than 10 PCBs on CS/6000.
PQ05823 APPC - synchronous TP incorrectly ends after deallocate from host.
PQ05989 Data supply - 32-bit apps get timeout error CLM3363.
PQ06856 DCS - DCS_WRITE with a datalength of 0 produces CSR0051.
PQ08094 DDMS builds wrong # of templates when reading DDMS list var.
PQ08297 TQ - Occasional TQ REM core dumps on open/close of AIX image files.
------------------------------------------------------------------------------
NOTES FOR UQ11442
-----------------
ECS/2 OI Requirement on WARP 4.0+
---------------------------------
Several customers are running CS/2 on Warp 4.0 successfully.
Be aware the following requirement for ECS/2 OI due to
Warp 4.0's restructure of files. During Warp 4.0 installation
do "selective install" of the "optional system utility" to
install the EZVU files necessary to display ECS/2 OI panels.
Selective install provides the following files needed for ECS/2 OI:
\os2\dll\dtm.dll
\os2\dll\cpispfpc.dll
\os2\dll\stxtdmpc.dll
\os2\install\dmpc.exe
TCP/IP 3.0+ GetHostByName Work-around (PN86849)
-----------------------------------------------
Due to TCP/IP introducing some non-backward compatible code in
the 3.0 release level, ECS/2's TCP/IP REM initialization fails
due to an error from a GetHostByName call. Here are work-around
suggestions for anyone planning to use ECS/2 with TCP/IP 3.0+.
Prior to TCP/IP 3.0, GetHostByName looked for the "resolv" file.
The idea is to retain a copy of the "resolv" file (from
\mptn\etc\resolv2), in one (or more) of the following ways:
1). Manually copy "resolv2" to "resolv" and set "resolv" to
read only.
The problem with this option is "resolv" will never be
updated when "resolv2" changes, until you manually copy
it again.
2). Add 1 extra line in the startup.cmd file:
...
call tcpstart.cmd
---> copy \mptn\etc\resolv2 \mptn\etc\resolv
...
The problem with this option is "resolv" will not be updated
when "resolv2" changes after a TCPIP or MPTS reconfiguration,
until you reboot the machine, or if someone does not use
startup.cmd and manually runs tcpstart.cmd.
3). Add 1 extra line at the end of tcpstart.cmd file:
...
...
---> copy \mptn\etc\resolv2 \mptn\etc\resolv
A potential problem with this option is when TCPIP is
reinstalled, then you have to remember to recreate that
line again in tcpstart.cmd.
4). Add 1 extra line at the beginning of cs2start.cmd file:
---> copy \mptn\etc\resolv2 \mptn\etc\resolv
...
...
A potential problem with this option is when DAE is
reinstalled, then you have to remember to recreate that
line again in cs2start.cmd.
5). A safe option would be combining options #2, 3 and 4.
ECS/2 & CS/HP Communication Fix (CS/HP APAR PQ04326)
----------------------------------------------------
A TCP/IP communication problem between ECS/2 and CS/HP requires
the CS/HP fix. Request CS/HP APAR PQ04326 from the
Support Center.
Utility Tools (DCR4963)
-----------------------
The cs2utt Utility Tools have been added to ECS/2 with this PTF,
including the new Tables and Queues Utility Tool. Refer to the
cs2\toolkit\cs2utt.doc for details.
DDMS Doc Change (PQ03833)
-------------------------
Page 11-281 of the Device Data Management Support
Book update needs the NOTE at the bottom added:
d_writevar Table 11-150 Field Descriptions
Name Type Description
bfr_sz short Variable write: Specify the size (in bytes)
integer of bfr_addr. If the data consists of multiple
elements, you must pack the elements in the
buffer. The size must be equal to or greater
than the variable's element_no field
multiplied by the element_len field. (Both
fields are defined by d_defrvar.)
.
Note: If the size is too small, an E_INVPARM
error is returned.
.
.
ADD => NOTE: For arrays and character strings,
ADD => the bfr_sz field can be less
ADD => than the variable's element_no
ADD => field multiplied by the element_len.
ADD => In such instances the E_INVPARM
ADD => DDMS error is not returned.
Printer REM Consuming Excessive CPU Time
----------------------------------------
The following applies if you observe a large amount of CPU time consumed
on your processor and a printer is not connected to the LPT1 port. This
has been observed, for example, on a 100 Mz Pentium with each failed
print request resulting in abnormally high CPU utilization during a
period of 2 minutes.
The default ECS/2 configuration loads the printer REM, CS2PSR01 during
DAE system initialization. It also starts one printer resouce, USERLPT1
at the initialization of its server, the printer REM. USERLPT1 uses
LPT1 as its operating system printer. By default, base logged messages
of error severity are set to print to USERLPT1.
If you notice the majority of the CPU utilized during ECS/2 initiali-
zation or during failed print requests, do any one of the following:
* Connect a printer to the LPT1 port.
* Set the CS2PSR01 application resource to NOT load during system
initialization.
* Set the USERLPT1 printer resource to NOT initialize at server start.
Printer Binary Option Added to Print 4029-formatted File (PN79627)
------------------------------------------------------------------
The following is an update to the DAE Communication System Technical
Guide and Reference, Print and Spool Support chapter, Start Parameters
section. The parameters for printer resource continuation buffer
timeout and printer resource maximum errors remain as before.
| In order to enable optional start parameters with the menu-based
| utilities, remember to set the "Use load parameters from ACB" flag.
Printer REM Start Parameters
----------------------------
The printer REM ACB can contain the following optional start
parameters.
| Note it is also possible to configure multiple printer resources which
| need not all use the same set of start parameters. This is done by
| configuring two or more printer REMs each with a desired set of start
| parameters, then assigning each printer resource to be served by the
| printer REM with appropriate start parameters.
| Printer resource mode
|
| This start parameter specifies whether to print in text or binary
| mode. The parameter is not used on all platforms.
|
| The default print mode is text. With text mode on the OS/2 platform,
| for example, each new-line character is converted to a carriage
| return / linefeed pair.
|
| When you specify binary mode, data is sent to the printer exactly as
| received. No conversion takes place. This parameter may be useful
| to print data formatted for a specific printer. In addition, binary
| mode causes no new-line to be appended to the end of a print job. It
| causes the Printer resource append new-line parameter to default to
| not append a new-line. (This can be overridden by using the Printer
| resource append new-line parameter to explicitly force an ending
| new-line. See the Printer resource append new-line parameter
| description for details.)
|
| This parameter has the following format:
|
| PRMD=x
|
| where x specifies text or binary print mode.
|
| 0 Specifies the default of text mode.
| 1 Specifies binary mode.
Printer resource append new-line
This start parameter allows a user to choose whether or not a
new-line will be appended to the end of a print job. A new-line
consists of a carriage return and line feed control character pair in
OS/2 text file mode. This parameter has the following format.
PRAN=x
where x specifies whether or not a new-line will be appended at the
end of a print job.
0 Specifies that a new-line will not be appended.
| This becomes the default only if the Printer resource
| mode parameter is used to specify binary mode.
| 1 Specifies that a new-line will be appended. This is the default
| when the Printer resource mode parameter is not used, or when
| the printer resource mode parameter explicitly specifies text
| mode.
The appended new-line may be needed with some printers to ensure that
the last print line is flushed from the print buffer when a print job
is completed. It also ensures that no two print jobs will print on
the same line, regardless of job content.
Guidelines for VisualAge C++ DAE Applications (PN91577)
-------------------------------------------------------
Applications do not work correctly when compiled with C++.
Hints if you use VisualAge C++ for DAE Applications:
- Add 'DEFINE CS2CPLUSPLUS' statement before you
reference any CS2 files
- Add 'extern "C" ' statement to prototype CS/2 header since
you are mixing C++ with C DLL
- memset all DAE structures before using them
- do not compile with pack option
TXE_OPT_DISCONNECT Flag Provided on CS2_TRANSACT (PQ05429)
----------------------------------------------------------
Update to DAE Application Programming publication, CS2_TRANSACT chapter:
The work_opt and fail_opt fields also support the following.
work_opt You may optionally specify TXE_OPT_DISCONNECT to
disconnect from the database after this transaction
successfully completes. TXE_OPT_DISCONNECT may
be combined with other work_opt flag values, for
example TXE_OPT_COMMIT.
fail_opt You may optionally specify TXE_OPT_DISCONNECT to
disconnect from the database if this transaction fails.
TXE_OPT_DISCONNECT may be combined with other fail_opt
flag values, for example TXE_OPT_ROLLBACK.
Database/Transaction Configuration File (optional) (PN88060)
------------------------------------------------------------
The Database/Transaction (DB/Txe) component uses an optional configuration
file, cs2dbtxe.cnf. This file is located in your Distributed Application
Environment system path on the node where the DB/Txe server resides. The
file is provided by default but may be modified, deleted or renamed if
desired.
The DB/Txe configuration file is used to specify the following options:
* Txe mirror filtering (See "Txe Mirror Filtering" below.)
Comments and blank lines are ignored in the file. Only keywords, such as
TxeMirrorFilter, are recognized. Keywords must start in column 1 and are
case insensitive.
Txe Mirror Filtering (optional) (PN88060)
-----------------------------------------
This optional feature applies only if DB/Txe mirroring is enabled. It is
available for both synchronous and asynchronous mirroring.
The DB/Txe component offers the option of filtering secondary mirrored
CS2_TRANSACT requests from reissue to the secondary database exactly as
originated. Mirror filtering is configured by specifying Transaction
mirror return code pairs in the DB/Txe configuration file, cs2dbtxe.cnf, on
the node where the primary database resides. The return code pairs are
specified as a TxeMirrorFilter setting. They determine which failed
primary requests are filtered from mirroring directly to the secondary
database. Each pair consists of an error domain and error value.
cs2dbtxe.cnf is shipped with one Txe mirror filter return code pair
by default:
TxeMirrorFilter = 3,-911. /* Don't mirror SQL deadlocks */
In this setting, 3 is the error domain of TXE_SQL_ERR. -911 is the error
value for the SQL error, "the current transaction has been rolled back
because of a deadlock or timeout." Although deadlock prevention is
preferred to detection, occasional database deadlocks may be unavoidable in
some applications. Here, mirrored CS2_TRANSACT requests can be filtered
from direct reissue to the secondary database to prevent creating an
out-of-synchronization condition, or further deadlock.
An example of three pairs specified is:
TxeMirrorFilter = 3,-911. 1,121. 3,100. /* RCs to filter from mirroring */
When a CS2_TRANSACT request is filtered from mirroring to the secondary
database resource, the parameters of the client's CS2_TRANSACT structure
are examined. If the fail_opt flag in the CS2_TRANSACT structure is set to
TXE_OPT_ROLLBACK (or TXE_OPT_COMMIT), the secondary database resource is
rolled back (or committed, as appropriate). This is done in an attempt to
better synchronize to the primary database.
When a CS2_TRANSACT request results in a Txe error, it returns a non-zero
error domain and value to the client. Typically, the CS2_TRANSACT CSR code
returned is CS2_TXE_ERROR (CSR2820). When mirrored requests are filtered,
the CS2_TRANSACT API returns a similar code, however, it is tailored for
mirror filtering:
CS2_TXE_ERROR_MIR_FLTR (CSR2821) - CS2_TXE_ERROR with secondary
CS2_TRANSACT request filtered from mirroring.
In addition, base log messages confirm the acceptance of the mirror filter
setting, and provide details of mirror errors and filtering. Refer to the
message help for further information.
Note that CS2_TRANSACT always returns the same value from the API as the
RDS return code (cnretcd field).
------------------------------------------------------------------------------
COMPLEMENTARY FIXES FOR ENTRY/6000 1.2.1
----------------------------------------
ECS/2 1.3.1 Entry/6000 1.2.1
PTF UQ11442 PTF UQ11444
----------- ----------------
DCR4811 DCR4811
DCR4900 DCR4900
DCR4927 DCR4927
DCR4963 DCR4963
DCR662 DCR662
PN57206 PN75966
PN60139 PN68384
PN61268 PN78096
PN61507 PN75968
PN62160 PN81759
PN62587 PN62587
PN62590 PN62392
PN64367 PN62555
PN64368 PN62545
PN64612 PN75970
PN64673 PN75971
PN65303 PN75972
PN67417 PN75983
PN68287 PN68216
PN70121 PN75973
PN75974 PN62289
PN75975 PN62301
PN75976 PN68841
PN75980 PN71313
PN75981 PN72443
PN77882 PN78105
PN79627 PQ05402
PN80759 PN81535
PN81028 PN81780
PN81433 PQ05403
PN81452 PN81536
PN81539 PN80757
PN82509 PQ05404
PN82921 PQ05406
PN82927 PQ05407
PN83330 PQ05408
PN83331 PQ05409
PN83647 PQ05410
PN84356 PQ05411
PN85698 PQ05414
PN86802 PQ05416
PN88042 PQ05417
PN88060 PQ05418
PN88546 PQ05419
PN92710 PQ05421
PQ00281 PQ05422
PQ00493 PQ05423
PQ02149 PQ07271
PQ03384 PQ05424
PQ03667 PQ05425
PQ05426 PN78892
PQ05427 PN83202
PQ05428 PN88466
PQ05429 PN89993
PQ05430 PN90723
PQ05823 PQ06265
PQ08094 PQ08215
PQ08297 PQ07133
END OF FILE
-----------