DAE PTF UQ22993 Readme file



INTRODUCTION
------------

This is the UQ22993.doc file for the IBM Communications System for Windows NT:
Version 1 Release 1 Modification 0 PTF UQ22993 for all NLS language features.

The following topics are covered in this UQ22993.doc file:

o  PREREQUISITES
o  SETUP INSTALL PROGRAM FEATURES
o  INSTALLING PTF UQ22993
o  LIST OF FILES
o  LIST OF APARS FIXED
o  NOTES FOR UQ22993
   -  Year 2000 Fixes Included (PN92710)
   -  DDMS D_WRITERVAR Documentation Addition (PQ03833)
   -  Printer REM Port to NT (PQ21679)
   -  TQ Open/Close Performance Option (PQ12298)
   -  TXE_OPT_DISCONNECT Flag Provided on CS2_TRANSACT (PN89993)
   -  Database/Transaction Configuration File (optional) (PN88060)
   -  Txe Mirror Filtering (optional) (PN88060)
   -  DB/Txe Trace Extension (optional) (PQ08183)
   -  Agent Recycle Threshold (optional) (PQ09694)


PREREQUISITES
-------------

Program Temporary Fix UQ22993 requires Communications System for Windows NT
(5622-991) Release 1.0 (any language). Please ensure you are at this level
before proceeding with the installation of this PTF.

UQ22993 contains all previous APAR fixes, including the Year 2000 fixes.

UQ22993 files are compiled using the Microsoft Visual C++ V5.0 compiler.


SETUP INSTALL PROGRAM FEATURES
------------------------------

   1. REQUIRED SPACE CHECKED BEFORE INSTALLATION:
      There must be enough space for backing up all of the files.
      It checks for 14 Megabytes available.

   2. FILES BACKED UP:
      Before replacing, the Setup program copies files into
      their respective path under the CS2\Backup\UQ22993\ directory.
      After your system has been running successfully for some length
      of time and you want to regain the space, you can delete the
      files in the CS2\Backup\UQ22993 directory.

   3. REGISTRY UPDATED:
      The last step of the installation is to update the registry
      to reflect PTF UQ22993 has been installed.  This will be
      removed if the PTF is uninstalled.  You can see the registry
      update by typing regedt32 at the command line and looking
      under HKEY_LOCAL_MACHINE - SOFTWARE - IBM.

   4. ICONS ADDED FOR UQ22993.doc and unInstall UQ22993:
      The icons are added to the Communications System for Windows NT
      window or other optionally chosen place.

   5. UNINSTALL OPTION FOR PTF UQ22993:
      If you want to return CS for Windows NT to the state prior to
      applying the PTF UQ22993, you can uninstall UQ22993 by following
      these steps:

      a. Shutdown Communications System for Windows NT if it is currently
         running.

      b. Click on the unInstall UQ22993 button in the Communications
         System for Windows NT window or select it under the
         Add/Remove Programs in Start - Settings - Control Panel.
         This removes UQ22993 from the registry, the two
         icons from the CS for Windows NT window, and the
         installed UQ22993 files from the cs2 directories.

         Note: Purposely some files, such as configuration files, are not
         automatically removed by the unInstall option.  If desired, they
         can be removed manually.

      c. Replace the original files back into the cs2 directories by issuing
         the uUQ22993 batch file from the \cs2\Backup\UQ22993\ directory.

         The uUQ22993 file will not overwrite the configuration files
         (*.cfs or *.cnf), TQ files (*.pr0, *.dt0, *.s10, etc.) or the
         translated message files (*.dll).

      d. Erase the files in Backup\UQ22993 when no longer needed.


INSTALLING PTF UQ22993
----------------------

Follow these directions to update your system with PTF UQ22993:

   1. Shutdown the Communications System for Windows NT if it is
      currently running.

   2. Place the first diskette in the a: drive.  (If you are installing
      from disk image files instead of diskettes, then replace "a:" with
      the Disk1 directory in these instructions.)

   3. From the a: directory issue: setup

   4. The panels will lead you through the installation.  You will be
      prompted for the drive where the PTF is to be installed. (This
      must be where CS for Windows NT is installed.)  You will be
      informed if there is not enough space available.
      Place the requested diskette in the a: drive when prompted.

   5. When the installation is completed, restart the Communications
      System for Windows NT.


LIST OF FILES
-------------

The following are the files shipped on this PTF:

        cs2\ddms\ddmdvtbl.h
        cs2\ddms\ddmldip.h
        cs2\ddms\ddmmdep.h
        cs2\ddms\ddmmisc.h
        cs2\ddms\ddmtbl.c
        cs2\ddms\ddmtbl.obj
        cs2\ddms\ddmtypes.h
        cs2\dll\cs2calls.dll
        cs2\dll\cs2colib.dll
        cs2\dll\cs2dbodb.dll
        cs2\dll\cs2dbr00.dll
        cs2\dll\cs2dmcls.dll
        cs2\dll\cs2dmldp.dll
        cs2\dll\cs2fslib.dll
        cs2\dll\cs2nls.dll
        cs2\dll\dbsysnon.dll
        cs2\dll\dbsysodb.dll
        cs2\dll\dbsystbl.dll
        cs2\dll\txesutbl.dll
        cs2\include\cs2.h
        cs2\include\cs232err.h
        cs2\include\cs232xpt.h
        cs2\include\cs2ah.h
        cs2\include\cs2apcal.h
        cs2\include\cs2apmix.h
        cs2\include\cs2aprcs.h
        cs2\include\cs2aprem.h
        cs2\include\cs2apres.h
        cs2\include\cs2aprwa.h
        cs2\include\cs2aprwc.h
        cs2\include\cs2apstr.h
        cs2\include\cs2apxp0.h
        cs2\include\cs2aserr.h
        cs2\include\cs2axerr.h
        cs2\include\cs2bl.h
        cs2\include\cs2blerr.h
        cs2\include\cs2blsys.h
        cs2\include\cs2cb.h
        cs2\include\cs2cb001.h
        cs2\include\cs2cb002.h
        cs2\include\cs2cb003.h
        cs2\include\cs2cbacb.h
        cs2\include\cs2cbanb.h
        cs2\include\cs2cbcac.h
        cs2\include\cs2cbccb.h
        cs2\include\cs2cbd80.h
        cs2\include\cs2cbdbb.h
        cs2\include\cs2cbdcb.h
        cs2\include\cs2cbdfn.h
        cs2\include\cs2cbdhd.h
        cs2\include\cs2cbgcb.h
        cs2\include\cs2cbicb.h
        cs2\include\cs2cblcb.h
        cs2\include\cs2cbmcb.h
        cs2\include\cs2cbmga.h
        cs2\include\cs2cbmgq.h
        cs2\include\cs2cbpcb.h
        cs2\include\cs2cbqcb.h
        cs2\include\cs2cbrcb.h
        cs2\include\cs2cbrd.h
        cs2\include\cs2cbrdh.h
        cs2\include\cs2cbs01.h
        cs2\include\cs2cbs02.h
        cs2\include\cs2cbs03.h
        cs2\include\cs2cbs04.h
        cs2\include\cs2cbs05.h
        cs2\include\cs2cbs06.h
        cs2\include\cs2cbs07.h
        cs2\include\cs2cbs08.h
        cs2\include\cs2cbs09.h
        cs2\include\cs2cbs10.h
        cs2\include\cs2cbs11.h
        cs2\include\cs2cbs12.h
        cs2\include\cs2cbs13.h
        cs2\include\cs2cbs14.h
        cs2\include\cs2cbs15.h
        cs2\include\cs2cbs32.h
        cs2\include\cs2cbs33.h
        cs2\include\cs2cbs34.h
        cs2\include\cs2cbs35.h
        cs2\include\cs2cbs36.h
        cs2\include\cs2cbs37.h
        cs2\include\cs2cbs38.h
        cs2\include\cs2cbs39.h
        cs2\include\cs2cbs40.h
        cs2\include\cs2cbs41.h
        cs2\include\cs2cbs42.h
        cs2\include\cs2cbs43.h
        cs2\include\cs2cbs44.h
        cs2\include\cs2cbs56.h
        cs2\include\cs2cbs90.h
        cs2\include\cs2cbs91.h
        cs2\include\cs2cbs92.h
        cs2\include\cs2cbtcb.h
        cs2\include\cs2cbtqs.h
        cs2\include\cs2cbucb.h
        cs2\include\cs2cbvcb.h
        cs2\include\cs2cderr.h
        cs2\include\cs2cf.h
        cs2\include\cs2cnerr.h
        cs2\include\cs2coapi.h
        cs2\include\cs2cobit.h
        cs2\include\cs2cocmd.h
        cs2\include\cs2cocon.h
        cs2\include\cs2codfn.h
        cs2\include\cs2coerr.h
        cs2\include\cs2cofil.h
        cs2\include\cs2coier.h
        cs2\include\cs2comer.h
        cs2\include\cs2comix.h
        cs2\include\cs2const.h
        cs2\include\cs2cords.h
        cs2\include\cs2cores.h
        cs2\include\cs2corwa.h
        cs2\include\cs2corwc.h
        cs2\include\cs2cosch.h
        cs2\include\cs2cosem.h
        cs2\include\cs2cosrq.h
        cs2\include\cs2cosys.h
        cs2\include\cs2cotim.h
        cs2\include\cs2cover.h
        cs2\include\cs2db.h
        cs2\include\cs2dberr.h
        cs2\include\cs2dbext.h
        cs2\include\cs2dbsdb.h
        cs2\include\cs2dc.h
        cs2\include\cs2dcerr.h
        cs2\include\cs2dcr0e.h
        cs2\include\cs2dm.h
        cs2\include\cs2dmcal.h
        cs2\include\cs2dmerr.h
        cs2\include\cs2dqerr.h
        cs2\include\cs2ds.h
        cs2\include\cs2dscal.h
        cs2\include\cs2dstpl.h
        cs2\include\cs2dt.h
        cs2\include\cs2dterr.h
        cs2\include\cs2ec.h
        cs2\include\cs2ecerr.h
        cs2\include\cs2ecsys.h
        cs2\include\cs2fserr.h
        cs2\include\cs2fssys.h
        cs2\include\cs2gberr.h
        cs2\include\cs2hlerr.h
        cs2\include\cs2inerr.h
        cs2\include\cs2irerr.h
        cs2\include\cs2lm.h
        cs2\include\cs2lmcal.h
        cs2\include\cs2lmdfn.h
        cs2\include\cs2lmtpl.h
        cs2\include\cs2machd.h
        cs2\include\cs2mdep.h
        cs2\include\cs2mt.h
        cs2\include\cs2mtsys.h
        cs2\include\cs2mysys.h
        cs2\include\cs2ncerr.h
        cs2\include\cs2ncs70.h
        cs2\include\cs2ncs71.h
        cs2\include\cs2ncsub.h
        cs2\include\cs2ncsys.h
        cs2\include\cs2nl.h
        cs2\include\cs2nldfd.h
        cs2\include\cs2nlerr.h
        cs2\include\cs2nlsd.h
        cs2\include\cs2nmerr.h
        cs2\include\cs2ns.h
        cs2\include\cs2nsbl.h
        cs2\include\cs2nscnf.h
        cs2\include\cs2nscss.h
        cs2\include\cs2nsdbs.h
        cs2\include\cs2nsicd.h
        cs2\include\cs2nsnet.h
        cs2\include\cs2nsnms.h
        cs2\include\cs2nspol.h
        cs2\include\cs2nsrd.h
        cs2\include\cs2nstqs.h
        cs2\include\cs2nstra.h
        cs2\include\cs2nsuis.h
        cs2\include\cs2nsvid.h
        cs2\include\cs2oi.h
        cs2\include\cs2oierr.h
        cs2\include\cs2pc.h
        cs2\include\cs2pcsys.h
        cs2\include\cs2ps.h
        cs2\include\cs2pserr.h
        cs2\include\cs2pssys.h
        cs2\include\cs2rd.h
        cs2\include\cs2rderr.h
        cs2\include\cs2rterr.h
        cs2\include\cs2sc.h
        cs2\include\cs2scerr.h
        cs2\include\cs2signl.h
        cs2\include\cs2st.h
        cs2\include\cs2sterr.h
        cs2\include\cs2stsys.h
        cs2\include\cs2su.h
        cs2\include\cs2suerr.h
        cs2\include\cs2sycal.h
        cs2\include\cs2syrem.h
        cs2\include\cs2systr.h
        cs2\include\cs2tmerr.h
        cs2\include\cs2tq.h
        cs2\include\cs2tqerr.h
        cs2\include\cs2tqsys.h
        cs2\include\cs2ui.h
        cs2\include\cs2uierr.h
        cs2\include\cs2uirem.h
        cs2\include\cs2utdfn.h
        cs2\include\cs2vmerr.h
        cs2\include\cs2xact.h
        cs2\include\cs2xp.h
        cs2\include\cs2xperr.h
        cs2\include\cs2xptgi.h
        cs2\include\ddmbxcpp.h
        cs2\include\ddmioerr.h
        cs2\include\ddmmmdip.h
        cs2\include\txeapi.h
        cs2\include\txemsgrc.h
        cs2\include\txesrv.h
        cs2\include\urnopown.h
        cs2\include\usrdll.h
        cs2\include\usrmsg.h
        cs2\include\usrown.h
        cs2\include\usrsql.h
        cs2\lib\cs2calls.lib
        cs2\lib\cs2dmcls.lib
        cs2\lib\cs2dmcls.lib
        cs2\lib\cs2nls.lib
        cs2\sys\cs2_stmp.bin
        cs2\sys\cs2blr00.exe
        cs2\sys\cs2blur0.exe
        cs2\sys\cs2cbr00.exe
        cs2\sys\cs2dbr00.exe
        cs2\sys\cs2dbr01.exe
        cs2\sys\cs2dbr02.exe
        cs2\sys\cs2dbr03.exe
        cs2\sys\cs2dbr07.exe
        cs2\sys\cs2dbtxe.cnf
        cs2\sys\cs2dmr00.exe
        cs2\sys\cs2dqr00.exe
        cs2\sys\cs2dsrdr.exe
        cs2\sys\cs2dsrds.exe
        cs2\sys\cs2ecr00.exe
        cs2\sys\cs2ecr01.exe
        cs2\sys\cs2fsr00.exe
        cs2\sys\cs2fss00.exe
        cs2\sys\cs2help.exe
        cs2\sys\cs2icr00.exe
        cs2\sys\cs2icr03.exe
        cs2\sys\cs2irr00.exe
        cs2\sys\cs2irr10.exe
        cs2\sys\cs2psr01.exe
        cs2\sys\cs2str00.exe
        cs2\sys\cs2stur0.exe
        cs2\sys\cs2sura0.exe
        cs2\sys\cs2surb0.exe
        cs2\sys\cs2surc0.exe
        cs2\sys\cs2tcr00.exe
        cs2\sys\cs2tmr00.exe
        cs2\sys\cs2tqr00.exe
        cs2\sys\ddmstemp.def
        cs2\toolkit\cnfgtool.doc
        cs2\toolkit\cnfgtool.exe
        cs2\toolkit\control.c
        cs2\toolkit\control.exe
        cs2\toolkit\control.mak
        cs2\toolkit\cs2blt.exe
        cs2\toolkit\cs2cbt.exe
        cs2\toolkit\cs2cuoff.exe
        cs2\toolkit\cs2cutil.doc
        cs2\toolkit\cs2cutil.exe
        cs2\toolkit\cs2cutil.txt
        cs2\toolkit\cs2examp.c
        cs2\toolkit\cs2examp.exe
        cs2\toolkit\cs2examp.mak
        cs2\toolkit\cs2fst.exe
        cs2\toolkit\cs2ftt.exe
        cs2\toolkit\cs2index.doc
        cs2\toolkit\cs2stt.exe
        cs2\toolkit\cs2tqt.exe
        cs2\toolkit\cs2utt.doc
        cs2\toolkit\cs2utt.exe
        cs2\toolkit\db\cstrans.c
        cs2\toolkit\db\cstrans.exe
        cs2\toolkit\db\cstrans.h
        cs2\toolkit\db\ctxeodbc.c
        cs2\toolkit\db\ctxeodbc.exe
        cs2\toolkit\db\ctxeodbc.mak
        cs2\toolkit\db\stxeodbc.c
        cs2\toolkit\db\stxeodbc.def
        cs2\toolkit\db\stxeodbc.dll
        cs2\toolkit\db\stxeodbc.mak
        cs2\toolkit\db\sumdbl.c
        cs2\toolkit\db\sumdbl.def
        cs2\toolkit\db\sumdbl.dll
        cs2\toolkit\db\sumdbl.mak
        cs2\toolkit\ddms\dmalter1.c
        cs2\toolkit\ddms\dmalter1.exe
        cs2\toolkit\ddms\dmalter2.c
        cs2\toolkit\ddms\dmalter2.exe
        cs2\toolkit\ddms\dmdefine.c
        cs2\toolkit\ddms\dmdefine.exe
        cs2\toolkit\ddms\dmevent.c
        cs2\toolkit\ddms\dmevent.exe
        cs2\toolkit\ddms\dmevtjrl.c
        cs2\toolkit\ddms\dmevtjrl.exe
        cs2\toolkit\ddms\dmfile.c
        cs2\toolkit\ddms\dmfile.exe
        cs2\toolkit\ddms\dmfncprc.c
        cs2\toolkit\ddms\dmheader.h
        cs2\toolkit\ddms\dminitic.c
        cs2\toolkit\ddms\dmjrlmsg.c
        cs2\toolkit\ddms\dmjrlmsg.exe
        cs2\toolkit\ddms\dmjrnl.c
        cs2\toolkit\ddms\dmjrnl.exe
        cs2\toolkit\ddms\dmmake.mak
        cs2\toolkit\ddms\dmreadme.doc
        cs2\toolkit\ddms\dmsema4.c
        cs2\toolkit\ddms\dmsema4.exe
        cs2\toolkit\ddms\dmtask.c
        cs2\toolkit\ddms\dmtask.exe
        cs2\toolkit\ddms\dmvarmsg.c
        cs2\toolkit\ddms\dmvarmsg.exe
        cs2\toolkit\dterecv.c
        cs2\toolkit\dterecv.exe
        cs2\toolkit\dtesend.c
        cs2\toolkit\dtesend.exe
        cs2\toolkit\dtirecv.c
        cs2\toolkit\dtirecv.exe
        cs2\toolkit\dtisend.c
        cs2\toolkit\dtisend.exe
        cs2\toolkit\dtxmps.mak
        cs2\toolkit\nc.dat
        cs2\toolkit\pc.dat
        cs2\toolkit\pl.dat
        cs2\toolkit\pooldump.exe
        cs2\toolkit\poolfree.exe
        cs2\toolkit\poolsab.exe
        cs2\toolkit\qu.dat
        cs2\toolkit\su.dat
        cs2\toolkit\tcpipsmp.doc
        cs2\toolkit\tq.dat
        cs2\toolkit\xmpcom.c
        cs2\toolkit\xmpncapi.c
        cs2\toolkit\xmppcapi.c
        cs2\toolkit\xmpplapi.c
        cs2\toolkit\xmpquapi.c
        cs2\toolkit\xmpsuapi.c
        cs2\toolkit\xmptqapi.c
        cs2\UQ22993.doc


LIST OF APARS FIXED
-------------------

This first list of APARs shipped in the NLS translated releases
of Communications System for Windows NT.  They are new for the shipped English
version only, which was released several months prior to the NLS translated
versions (They are included in the internal driver 10):

PN65308  New API - CS2_EXIT_SYS, allows appl to remove access to DAE system.
PN78892  cs2cutil - processor type not valid for RCB.
PN82921  DDMS enhancement to support d_writervar cross platform.
PN83202  poolsab hangs DAE system.
PN83330  DB - CS2_TRANSACT returns CSR1391.
PN83331  DB - CS2_TRANSACT gets timeout using TXE_OPT_OPEN_LOOP.
PN84356  DDMS random I/O points do not update when ldit make connection.
PN84933  DB - incorrect function called by CS2_TRANSACT.
PN86802  Disk Queued messages not received correctly when CACHE LAZY:ON.
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.
PN88466  Data supply does not erase temporary files when timeout expires.
PN88546  CS2_INIT gets good return code when DAE has been shutdown.
PN89993  DB - new TXE_OPT_DISCONNECT flag provides explicit disconnect.
PN90114  DB - CS2_TRANSACT starts new connections due to uninitialized RDS.
PN92710  Y2000 - update cs2colib and rebuild REMs for year 2000 support.
PN92857  DB dispatcher REM traps when using queueing and maximum dedicated
         agents is set to less than number of concurrent clients run.
PNU0002  Large applications may receive return code of 6 from CS2_INIT.
PQ00281  Time requester keeps sending requests after timeout condition.
PQ00493  TQ - toggle TQ corruption flag during update.
PQ00747  DB - conflict with definition of register_event in cs2dbc.h.
PQ02149  DDMS cannot support remote variable data length greater than 32K.
PQ03384  DDMS passing incorrect remote variable size.
PQ03667  TQ - RMU Verify Utility seems to run endlessly for large tables.
PQ05069  CS2_TEMP_RES - create & purge multiple temporary ACBs causes hang.
PQ07269  DB - DB_SELECT hangs using cs2dbdcl sample (Oracle7 via ODBC).

This next group are APARs fixed after the release of the NLS translated
versions (post internal driver 10):

D5231    DDMS - add new d_change_poll DDMS API.
D5233    DDMS - allow for defining 16,000 element remote vars on NT, AIX.
D5237    TCPIP - misleading TCPIP error 10004 when DAE shutdown.
D5247    DDMS - poll overrun in Automation Bridge.
D5249    DDMS - increase performance by reducing time slice in while loop.
D5251    DDMS - variable string causes work pool problem.
D5254    cs2ecr01 - WaitForMultipleObjects failed error printed to screen.
D5255    cs2examp - "cs2examp tablereq tq.dat" failed.
PN91126  Cannot use VISUALAGE c++ to build CS/NT applications.
PNU0004  DDMS does not work with VISUALAGE compiler on NT platform.
PNU0005  CS/NT semaphore pool exhausted.
PNU0006  TCP/IP - problem with multi-node non-DAE communication with CS/NT.
PNU0007  Message and work pools incorrectly handled.
PNU0008  Disk queued messages not freed from memory.
PNU0009  Disk queue REM traps when message pool is full.
PNU0011  Exception Handler REM does not handle temporary resources properly.
PQ02021  cs2dmcls.dll trapping when work pool full.
PQ02023  Use TEMP_RES to start DDMS appl loops if work pool full.
PQ03833  Doc - DDMS D_WRITERVAR documentation incomplete.
PQ05949  pooldump - add dump resource directory function to CS/NT & CS/6000.
PQ07133  TQ - occasional TQ REM core dumps on open/close of AIX image files.
PQ08094  DDMS builds wrong # of templates when reading DDMS list var.
PQ08183  DB - timing-related abort in DB at shutdown when trace w/ busy agent.
PQ08872  DB - multiple invalid CS2_DB_SELECT requests where FAIL_OPT is
         not set to DB_OPT_ROLLBACK or DB_OPT_DISCONNECT caused problems.
PQ08894  DAE returns CSR0029 when running English DAE in German language.
PQ09694  DB - DB/TXE feature needed for automatic agent recycle.
PQ10408  CS/NT TCP/IP REM not compatible with NT Service Pak 3.
PQ10947  DDMS - VNM_POLL_MISSED msg not received when polling list variable.
PQ11657  TQ - CLOSE_PROC_FILES core dumping for any queue or a table for
         which all 5 secondary indexes are *not* defined.
PQ12298  TQ open/close performance option needed.
PQ14226  Confusion on TQ OCPERF requiring enlarged pools to open many tables.
PQ18134  Canceled app hangs intermittently in TQ API, hanging DAE.
PQ19932  TQ - error msg not logged even though table was marked corrupt.
PQ20145  cs2icr00 keeps handle (process/thread) after resource purged.
PQ20754  Running multi-threaded DCConnect application traps in CS2_ADDMSG().
PQ21679  Implement print server on Communications System for Windows/NT
PQ22913  Repeated calls to CS2_TEMPRES in invalid resource name.
PQ23453  DB - CS2_TRANSACT request lost during window of agent self-stop.

NOTES FOR UQ22993
-----------------

Year 2000 Fixes Included (PN92710)
----------------------------------
    PN92710 contains the Year 2000 fixes.  It was included in the translated
    versions (and internal driver 10).  It affects the following files:

        cs2blr00.exe - base logger
        cs2colib.dll - time functions
        cs2irr00.exe - linked to base logger functions
        cs2irr10.exe - linked to base logger functions


DDMS D_WRITERVAR Documentation Addition (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 Port to NT (PQ21679)
--------------------------------
    The Printer REM, CS2PSR01 is now included in CS for NT.  To use
    the Printer REM, you must first add its application control block
    (ACB) using a DAE configuration utility.  Here is a suggested
    definition, based on the Printer REM's ACB as defined on other
    platforms:

      Application Control Block - Disk

        Type of control block.........: 3     (ACB)
        Resource Name.................: CS2PSR01.CS2NODE
        Disk queuing threshold........: 127
        Processor type (0=system 1=co-processor): 0
        Co-processor card number (hexadecimal): 0
        Initialization sequence number: 20
        Initialization timeout (s)....: 30
        Shutdown sequence number......: 950
        Shutdown timeout (s)..........: 30
        Name of program...............: cs2psr01
        Path to program...............:
        -------------------------------------------------------
        Outstanding receive:  N
        Receive pending:  N
        Essential.....:  N
        Load at initialization:  Y
        Use load parameters from ACB:  N
        Debug mode....:  N
        Treat load parameters as binary:  N

      Application Control Block on disk (continued):
        -------------------------------------------------------
        Started...............:  N
        Purged................:  N
        Deleted...............:  N
        Paused................:  N
        Autoload..............:  N
        Remote................:  N
        Initialize resource...:  N
        Initialize path.......:  N
        Path flow.............:  N
        Different Architecture:  N
        Trace path............:  N
        Trace initiate........:  N
        Trace resource........:  N
        Trace receive.........:  N
        Trace response........:  N
        Process exception.....:  N
        Node exception........:  N
        RIC exception.........:  N


      Application Start Parameter Data:

                 Hexadecimal Data                    Character Data
                 --------------------------------    ----------------
        00-0f    20202020202020202020202020202020
        10-1f    20202020202020202020202020202020
        20-2f    20202020202020202020202020202020
        30-3f    20202020202020202020202020202020


    In addition, you will need to define a printer control block (PCB) for
    each printer resource you wish the printer REM to serve. Here is the
    sample USERLPT1 for LPT1:

      Printer Control Block in disk

        Type of control block.........: 7   (PCB)
        Resource Name.................: USERLPT1.CS2NODE
        Server resource name..........: CS2PSR01.CS2NODE
        Operating system printer name.: LPT1

      Printer Control Block in disk/memory:
        -------------------------------------------------------
        Started...............:  N
        Purged................:  N
        Deleted...............:  N
        Paused................:  N
        Autoload..............:  N
        Remote................:  N
        Initialize resource...:  Y
        Initialize path.......:  N
        Path flow.............:  N
        Different Architecture:  N
        Trace path............:  N
        Trace initiate........:  N
        Trace resource........:  N
        Trace receive.........:  N
        Trace response........:  N
        Process exception.....:  N
        Node exception........:  N
        RIC exception.........:  N


    Printer resource append new-line
    --------------------------------
        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 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.

      |   1     Specifies that a new-line will be appended. This is the default.

          The appended new-line may be needed with some printers to ensure
          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.


TQ Open/Close Performance Option (PQ12298)
------------------------------------------
    The following is an update to the DAE Communication System Technical
    Guide and Reference, Tables and Queues Management chapter, Start
    Parameters section.  The parameters for REM priority class, REM priority
    delta, Maximum file handles and Memory file space 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
  | when configuring the tables and queues REM ACB.

    Start Parameters
    ----------------

  | TQ open/close performance option
  |
  |   OCPERF=x
  |
  |   where x specifies 0 or 1.
  |
  |   0     Disables TQ open/close performance (the default).
  |   1     Enables TQ open/close performance.
  |
  |   TQ open/close performance option:
  |     * Increases performance for applications which repeatedly issue
  |       CS2_TQ_OPEN and CS2_TQ_CLOSE requests for the same set of tables
  |       or queues.  Performance improves most on platforms where the
  |       tables and queues REM uses a multi-processed design, such as
  |       CS/6000.  Performance benefits may also apply to CS/2 and CS for
  |       NT, but to a lesser extent.
  |
  |       Performance improves only for iterative CS2_TQ_OPEN and
  |       CS2_TQ_CLOSE requests for a table or queue, in situations where no
  |       other application already has the table or queue open.  There is
  |       no effect on any other request, such as CS2_TQ_READ or
  |       CS2_TQ_WRITE.
  |
  |     * Alleviates timing and system load problems during closes and
  |       reopens.
  |
  |   If your applications open/close many tables or queues, the TQ
  |   open/close performance option may require additional space allocated
  |   in the work pool and control block pool.


TXE_OPT_DISCONNECT Flag Provided on CS2_TRANSACT (PN89993)
----------------------------------------------------------
    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.)
      * DB/Txe trace extension (See "DB/Txe Trace Extension" below.)
      * Agent Recycle Threshold (See "Agent Recycle Threshold" 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).


DB/Txe Trace Extension (optional) (PQ08183)
-------------------------------------------
    This optional feature applies only if DB/Txe trace is enabled.  Enable
    the DB/Txe trace by setting the trace flag in the DB NIB segment; this
    is the main DB/Txe trace toggle. Optionally, you may also specify
    extended tracing in cs2dbtxe.cnf.  The following setting may be set:

    * (no setting)          /* Base trace.  Excludes trace extensions.   */
    * traceExtension = DB_TRACE_MALLOC  /*Trace only memory alloc/dealloc*/
    * traceExtension = DB_TRACE_FULL    /* Full trace option             */


Agent Recycle Threshold (optional) (PQ09694)
--------------------------------------------
  This optional feature offers automatic recycling of DB/Txe agents, based
  on the number of transactions processed by each agent.  It is specified in
  cs2dbtxe.cnf.  By default, once started, agents remain running while
  needed to process transactions, or to provide a presence in a pool.
  Agent recycling may be configured, however, to set a threshold number of
  transactions which is the maximum each agent is to process.  By setting
  agentRecycle to any positive number, agent recycling is enabled and a
  threshold is set.  When the number of transactions processed by an agent
  reaches the threshold, that agent waits until the client completes its
  session.  Then, the agent self-stops.  A subsequent request from a client
  causes another agent to be started in the stopped agent's place, as
  configured in the pools.

  Agent recycling may be useful to your application as a solution, for
  example, should you run into uncorrectable problems with your user
  transactions consuming resources, such as leaking memory.  By
  periodically stopping a busy agent process, resources consumed by user
  transactions may in some instances be released.

  An example of the Agent recycle threshold set in cs2dbtxe.cnf is:
  agentRecycle = 1000                  /* Txn threshold to recycle agents */


END OF FILE
-----------





Last modified: January 23, 2004
DAE File Repository   |   DAE   |   Email DAE

   About IBM  |   Privacy  |   Terms of use  |   Contact