$TXT Created by FORT,WALLY at NXT.KERNEL.FO-OAKLAND.MED.VA.GOV  (KIDS) on Monday, 06/28/04 at 14:31
=============================================================================
Run Date: AUG 23, 2004                     Designation: XU*8*275
Package : XU - KERNEL                         Priority: Mandatory
Version : 8       SEQ #285                      Status: Released
                  Compliance Date: SEP 23, 2004
=============================================================================

Associated patches: (v)XU*8*120    <<= must be installed BEFORE `XU*8*275'
                    (v)XU*8*135    <<= must be installed BEFORE `XU*8*275'
                    (v)XU*8*175    <<= must be installed BEFORE `XU*8*275'
                    (v)XU*8*181    <<= must be installed BEFORE `XU*8*275'
                    (v)XU*8*191    <<= must be installed BEFORE `XU*8*275'
                    (v)XU*8*216    <<= must be installed BEFORE `XU*8*275'
                    (v)XU*8*222    <<= must be installed BEFORE `XU*8*275'
                    (v)XU*8*225    <<= must be installed BEFORE `XU*8*275'
                    (v)XU*8*229    <<= must be installed BEFORE `XU*8*275'

Subject: Kernel GT.M Support

Category: 
  - Routine
  - Data Dictionary

Description:
============

  
 Patch Tracking #: 36273894
 Test Sites: BCMA Backup development, Dayton OH., Battle Creek MI,
             Central Alabama, FORUM, Bay Pines MC
 Blood Bank Clearance: 6/16/2003
 
 This patch adds support for the GT.M Mumps implementation and provides 
 support for the BCMA backup plan that is running on GT.M over Linux.  The 
 approach of GT.M is different that other MUMPS vendors. Support is provided 
 for both GT.M on VMS and GT.M on Linux. Like Cache, GT.M does not have 
 UCI's.  Unlike other MUMPS implementations, each routine is a separate file 
 on the host OS. GT.M does not have a ZLOAD or ZSAVE, so several utilities 
 had to be fixed.
 
 *********                                                          *******
 ********* Several of the routines for loading and saving routine   *******
 ********* source code are based on the assumption that all source  *******
 ********* routines are in one big directory.                       *******
 *********                                                          *******
 
 There is a open source version of GT.M for Linux at http://sourceforge.net/
 
 The routine ZFOO is used to start a GT.M routine from a host system
 script.  This could be used to start TaskMan or other jobs started
 from the OS.  The routine ZJFOO is used to run a detached routine from
 a host system script.
 
 There is a new Option "XUS Process count cleanup" (XU PROC CNT CLUP) that
 only a GT.M site would need to be scheduled to run.
 
 For sites installing on GT.M, a %RO file (routine out) can be provided 
 that can be loaded with %RI (routine in). After this is installed, KIDS 
 loads will be supported.
 
 Other fixes.
 NOIS: PUG-0103-50326, GRJ-0702-51555, SBY-0702-32314
 Site reported this error "<NOLINE>DECRYP+5^XUSRB1". This was caused
 by the input to the API having a null value.
 Fix: Check that the input length is greater that 1, else return "".
 
 NOIS: DAY-0303-41394
 The code at QSUB+3^ZTMKU was missing a dot so D GROUP("SSUB(NODE)") was 
 always done.
 Fix: The code was changed to bring everything onto one line.
 
 NOIS: SLC-0402-51731
 If TaskMan parameters were setup wrong, TaskMan would try and move a 
 task to the requested system, but just adding it to the current queue in 
 a endless loop.
 Fix: TaskMan now keeps a count (in New field "Hop Count" (#33)) of each 
 move and stops after 3 attempts.
 
 NOIS: FAV-0801-71737
 Problem: The option XUINDEX was calling the wrong routine.
 Fix: Change option to call XINDEX.
 
 NOIS: CPH-0203-41734
 Problem: The TaskMan cleanup routine XUTMK would remove the 
 ^%ZTSCH("IO",<device>) node if that was the only node in the "IO" list.  
 When a site is monitoring there "RESOURCE" devices this would cause the 
 resource to stop being listed.  This did not cause any problem for TaskMan 
 but did cause user concern.
 Fix: The XUTMK routine will not clear "RES" type entries.
 
 TaskMan will job off a routine once each hour to sync the ^%ZTSCH("SUB")
 nodes with a revised count. The actual sync in done in the new routine
 %ZTMS5.
 
 New parameter in the LISTEN^%ZISTCP and LISTEN^%ZISTCPS API's.
 LISTEN(socket, rtn to run, exit rule)
 Exit rule is Mumps code that will set ZISQUIT=1 if the LISTENER should stop.
 It is called about every 30 seconds in the listen loop.  This doesn't work
 for DSM because the wait is done in the application.
 As we move to use VMS TCPIP service this will stop being a problem.
 
 New entry points added to XUTMDEVQ.
 DEV(ZTRTN,ZTDESC,%VAR,%VOTH,%ZIS,IOP,%WR)
     ;  single queue ask for device
     ;  ZTRTN - required - [tag]^routine that TaskMan will run
     ; ZTDESC - optional - default to name of [tag]~routine
     ;   %VAR - optional - single value or passed by reference
     ;          this will be used to S ZTSAVE()
     ;          can be a string of variable names separated by ';'
     ;            each ;-piece will be used as a subscript in ztsave
     ;  %VOTH - optional - passed by reference
     ;          %voth(sub)="" or explicit value
     ;             sub - this is any other %ZTLOAD variable besides 
     ;                   ZTRTN,ZTDESC,ZTIO,ZTSAVE
     ;                   example:  %VOTH("ZTDTH")=$H
     ;   %ZIS - optional - default value "MQ" - passed by reference
     ;          standard %ZIS variable array for calling device handler
     ;    IOP - optional - IOP variable as defined in Kernel device handler
     ;    %WR - optional - if %WR>0 then write text to the screen as to
     ;                     whether or not the queueing was successful
     ;
     ;  return: ZTSK value if successfully queued
     ;          0 if run ztrtn without queuing
     ;         -1 if unsuccessful device call or failed %ztload call
 
 NODEV(ZTRTN,ZTDESC,%VAR,%VOTH,%WR)
     ;  single queue no device needed
     ;  see DEV for parameter descriptions and return values
 
 QQ(%RTN,%DESC,%VAR1,%VOTH1,%ZIS,IOP,%WR,%RTN2,%DESC2,%VAR2,%VOTH2)
     ;  double queuing - queue up the second routine to device, but do not
     ;                   schedule the task in TaskMan
     ;                   queue up the first job to ZTIO="" and schedule it
     ;  %RTN - required - [tag]^routine for the 1st job to be run (usually a
     ;                    search and build sorted data type process)
     ; %DESC - optional - ZTDESC value for 1st job (default [tag]~routine)
     ; %VAR1 - optional - ZTSAVE values for 1st job - see %VAR description above
     ;%VOTH1 - optional - 1st job - see %VOTH description above
     ;  %ZIS - optional - see %ZIS description above, except for one diff
     ;         the 2nd job will be tasked to this device call
     ;         exception: IF $D(%ZIS)=0 then default value is "MQ" and call
     ;                    device handler
     ;                    IF $D(%ZIS)=1,%ZIS="" then queue 2nd job also with
     ;                       ZTIO=""  i.e., do not do device handler call
     ;   IOP - optional - see above - default value "Q" - if IOP is passed
     ;                    and IOP does not start with "Q;" then "Q;" will
     ;                    be added
     ;   %WR - optional - see above
     ; %RTN2 - required - [tag]^routine for the 2nd job to be run (usually a
     ;                    print job)
     ;%DESC2 - optional - ZTDESC value for 2nd job (default [tag]~routine)
     ; %VAR2 - optional - ZTSAVE values for 2nd job - see %VAR description above
     ;         if %VAR1 is not passed and $D(%VAR) then also send %VAR
     ;         data to 2nd tasked job.  If $D(%VAR1) then do not send %VAR
     ;         data to 2nd tasked job.
     ;%VOTH2 - optional - 2nd job - see %VOTH description above - usually not
     ;         needed - note: if %VOTH1("ZTDTH") is passed it will be ignored
     ;         as it is necessary to S ZTDTH="@" for the 2nd job - this will
     ;          create the task but not schedule it
     ;
     ;  return: if successfully queued, return ztsk1^ztsk2 where
     ;           ztsk1 = ZTSK value of 1st job, ztsk2 = ZTSK value of 2nd job
     ;         -1 if unsuccessful device call or failed %ztload call
     ;
 
 New fields added:
 STANDARD DATA DICTIONARY #9.8 -- ROUTINE FILE 
 STORED IN ^DIC(9.8,  
 DATA          NAME                  GLOBAL        DATA
 ELEMENT       TITLE                 LOCATION      TYPE
 -------------------------------------------------------------------------------
 9.8,7.3       PATCH LIST AT CHECKSUM TIME 4;3 FREE TEXT
 
               INPUT TRANSFORM:  K:$L(X)>200!($L(X)<2) X
               LAST EDITED:      DEC 17, 2002 
               HELP-PROMPT:      Answer must be 2-200 characters in length. 
               DESCRIPTION:      This field holds the patch list from the second
                                 line of the routine at the time the checksum
                                 was updated by the XTRUTL routine.  
 
 9.8,7.4       KIDS INSTALL DATE      4.1;1 DATE
 
               INPUT TRANSFORM:  S %DT="ESTX" D ^%DT S X=Y K:Y<1 X
               LAST EDITED:      DEC 17, 2002 
               DESCRIPTION:      This field will be updated by KIDS when a
                                 package is installed.  A cross reference on
                                 this field could provide a way for GT.M sites
                                 to link in new code on the fly. 
 
 STANDARD DATA DICTIONARY #14.4 -- TASKS FILE  
 STORED IN ^%ZTSK( 
 DATA          NAME                  GLOBAL        DATA
 ELEMENT       TITLE                 LOCATION      TYPE
 -------------------------------------------------------------------------------
 14.4,33       Hop Count              .02;3 NUMBER
 
               INPUT TRANSFORM:  K:+X'=X!(X>99)!(X<0)!(X?.E1"."1N.N) X
               LAST EDITED:      JAN 23, 2003 
               HELP-PROMPT:      Type a Number between 0 and 99, 0 Decimal 
                                 Digits 
               DESCRIPTION:      This field is used by Taskmanager to keep track
                                 of the number of times that a task is moved to
                                 a new system trying to start it.  After 3 hops
                                 taskman will reject the task.  This will help
                                 keep it from filling up a disk.
 
 14.4,54       Job                    .1;4 NUMBER
 
               INPUT TRANSFORM:  K:+X'=X!(X>999999999)!(X<0)!(X?.E1"."1N.N) X
               LAST EDITED:      JAN 23, 2003 
               HELP-PROMPT:      Type a Number between 0 and 999999999, 0 
                                 Decimal Digits 
               DESCRIPTION:      This field holds the $JOB value for the process
                                 that ran the task.                               
 
 Routine Summary
 The following routines are included in this patch.  The second line of each
 of these routines now looks like:
  ;;8.0;KERNEL;**[Patch List]**;Jul 10, 1995
 
                  Checksum
 Routine         Old       New      Patch List
 XPDI1         7418895   7616142    **58,61,95,108,229,275**
 XPDIJ         7357972   7540144    **2,21,28,41,44,68,81,95,108,124,229,275**
 XPDUTL        3806531   4038763    **21,28,39,81,100,108,137,181,275**
 XTER         17970380  17840347    **63,275**
 XUCIGTM           n/a   1947187    **275**
 XUINP275          n/a   2582172    **275**
 XUSCNT            n/a   3004852    **275**
 XUSRB1       10106207  10127192    **28,82,135,275**
 XUTMDEVQ       294750   2825488    **20,120,275**
 XUTMK         8719089   8214461    **49,67,118,169,222,275**
 ZFOO              n/a    183641    **275**
 ZIS           8887232   8887232    **18,23,69,112,199,191,275**
 ZIS4GTM           n/a   8115850    **275**
 ZISC          8069178   7834364    **24,36,49,69,199,216,275**
 ZISFGTM           n/a   5438955    **275**
 ZISHGTM           n/a   6882761    **275**
 ZISHGUX           n/a   6622803    **275**
 ZISTCP        3208452   6096918    **36,34,59,69,118,225,275**
 ZISTCPS       1281564   3357154    **78,118,127,225,275**
 ZISUTL        2825748   2851743    **18,24,34,69,118,127,199,275**
 ZJFOO             n/a    184125    **275**
 ZOSFGTM           n/a   7752749    **275**
 ZOSFGUX           n/a   8611914    **275**
 ZOSV2GTM          n/a   2422098    **275**
 ZOSVGTM           n/a   4119278    **275**
 ZOSVGUX           n/a   7982434    **275**
 ZTER         18198227  18252736    **8,18,32,24,36,63,73,79,86,112,118,
                                      162,275**
 ZTER1         4369129   4524467    **18,24,36,49,112,162,275**
 ZTLOAD1       6923394   8797193    **112,118,127,162,275**
 ZTLOAD2       4207916   4043323    **1,67,118,275**
 ZTM           9005201   8719671    **24,36,64,67,118,127,136,275**
 ZTM0          5998062   6499897    **42,36,67,88,118,127,136,175,275**
 ZTM1          5465675   5574267    **118,127,275**
 ZTM2          3672059   3857411    **23,118,275**
 ZTM3          3114917   3245152    **275**
 ZTM5          4418054   4605118    **24,36,118,127,136,162,275**
 ZTMB         10483870   8891040    **275**
 ZTMGRSET     14200672  12620037    **34,36,69,94,121,127,136,191,275**
 ZTMKU         8841182   8883544    **118,127,275**
 ZTMON1        9616420   9417693    **36,118,127,275**
 ZTMS          5607220   6428218    **2,18,24,36,67,94,118,127,136,162,275**
 ZTMS0         3316930   3069668    **24,118,275**
 ZTMS1         8379658   7796936    **36,49,104,118,127,136,275**
 ZTMS2         7090453   7220009    **2,18,23,36,67,118,127,163,167,175,
                                      199,275**
 ZTMS3         9642200   9277556    **1,18,36,49,64,67,94,118,127,136,175,275**
 ZTMS4         5100103   4123981    **136,275**
 ZTMS5             n/a    579173    **275**
 ZTMS7         2052318   1901785    **1,118,127,136,275**
 ZUGTM             n/a   3295134    **275**
 ZUSET         1042105   1191618    **162,170,225,275**
 
 List of preceding patches: 120, 135, 175, 181, 191, 216, 222, 225, 229
 Sites should use CHECK^XTSUMBLD to verify checksums.
 
 =========================================================================
 Installation:
 
 >>>Do not allow users to log in to the system during installation.
 >>>TaskMan does need to be stopped.
 
   1.  DSM sites - If any of these routines are mapped,
       you will need to disable mapping for the affected routines.
 
   2.  Use the 'INSTALL/CHECK MESSAGE' option on the PackMan menu. This
       option will load the KIDS package onto your system.
 
   3.  The patch has now been loaded into a Transport global on your
       system. You now need to use KIDS to install the Transport global.
       On the KIDS menu, under the 'Installation' menu, use the following
       options:
 
          Verify Checksums in Transport Global
          Print Transport Global
          Compare Transport Global to Current System
          Backup a Transport Global
 
  4.   Users will need to be off the system.
       This patch can not be queued.
       Stop TaskMan. (DO STOP^ZTMKU)
       Inhibit users from login into the system.
 
   5.  Installation will take less than 2 minutes.
       In Programmer mode:
       Use "D ^XPDKRN" then
          Install Package(s)  'XU*8.0*275'
                               ==========
 
       Want KIDS to Rebuild Menu Trees Upon Completion of Install? YES// YES
         
       Want KIDS to INHIBIT LOGONs during the install? YES// YES
 
       Want to DISABLE Scheduled Options, Menu Options, and Protocols? YES// NO
       
   8.  After installing this patch,
       Cache/GT.M Sites - you don't need to move anything, skip this step.
       DSM sites - you need to move several routines from
       your production account to each manager account:
 
       ZIS
       ZIS4GTM
       ZISC
       ZISFGTM
       ZISHGTM
       ZISHGUX
       ZISTCP
       ZISTCPS
       ZISUTL
       ZOSFGTM
       ZOSFGUX
       ZOSV2GTM
       ZOSVGTM
       ZOSVGUX
       ZTER
       ZTER1
       ZTLOAD1
       ZTLOAD2
       ZTM
       ZTM0
       ZTM1
       ZTM2
       ZTM3
       ZTM5
       ZTMB
       ZTMGRSET
       ZTMON1
       ZTMS
       ZTMS0
       ZTMS1
       ZTMS2
       ZTMS3
       ZTMS4
       ZTMS5
       ZTMS7
       
       
   9.  And in the manager account,  (Cache/GT.M sites remain in VAH)
       All sites:
       DO RELOAD^ZTMGRSET
       Select the System
       Patch number to load: 275
                             ===
 
  10.  DSM Sites, after patch has installed, rebuild your map set.
 
  11.  Enable user's login.
       Start TaskMan.  (DO ^ZTMB)
 
 =========================================================================
 

Routine Information:
====================

Routine Name:
  - XPDIJ


Routine Checksum:

Routine Name:
  - XPDUTL


Routine Checksum:

Routine Name:
  - XTER


Routine Checksum:

Routine Name:
  - XUCIGTM


Routine Checksum:

Routine Name:
  - XUINP275


Routine Checksum:

Routine Name:
  - XUSCNT


Routine Checksum:

Routine Name:
  - XUSRB1


Routine Checksum:

Routine Name:
  - XUTMDEVQ


Routine Checksum:

Routine Name:
  - ZFOO


Routine Checksum:

Routine Name:
  - ZIS


Routine Checksum:

Routine Name:
  - ZIS4GTM


Routine Checksum:

Routine Name:
  - ZISC


Routine Checksum:

Routine Name:
  - ZISFGTM


Routine Checksum:

Routine Name:
  - ZISHGTM


Routine Checksum:

Routine Name:
  - ZISHGUX


Routine Checksum:

Routine Name:
  - ZISTCP


Routine Checksum:

Routine Name:
  - ZISTCPS


Routine Checksum:

Routine Name:
  - ZISUTL


Routine Checksum:

Routine Name:
  - ZJFOO


Routine Checksum:

Routine Name:
  - ZOSFGTM


Routine Checksum:

Routine Name:
  - ZOSFGUX


Routine Checksum:

Routine Name:
  - ZOSV2GTM


Routine Checksum:

Routine Name:
  - ZOSVGTM


Routine Checksum:

Routine Name:
  - ZOSVGUX


Routine Checksum:

Routine Name:
  - ZTER


Routine Checksum:

Routine Name:
  - ZTER1


Routine Checksum:

Routine Name:
  - ZTLOAD1


Routine Checksum:

Routine Name:
  - ZTLOAD2


Routine Checksum:

Routine Name:
  - ZTM


Routine Checksum:

Routine Name:
  - ZTM0


Routine Checksum:

Routine Name:
  - ZTM1


Routine Checksum:

Routine Name:
  - ZTM2


Routine Checksum:

Routine Name:
  - ZTM3


Routine Checksum:

Routine Name:
  - ZTM5


Routine Checksum:

Routine Name:
  - ZTMB


Routine Checksum:

Routine Name:
  - ZTMGRSET


Routine Checksum:

Routine Name:
  - ZTMKU


Routine Checksum:

Routine Name:
  - ZTMON1


Routine Checksum:

Routine Name:
  - ZTMS


Routine Checksum:

Routine Name:
  - ZTMS1


Routine Checksum:

Routine Name:
  - ZTMS2


Routine Checksum:

Routine Name:
  - ZTMS3


Routine Checksum:

Routine Name:
  - ZTMS4


Routine Checksum:

Routine Name:
  - ZTMS7


Routine Checksum:

Routine Name:
  - ZUGTM


Routine Checksum:

Routine Name:
  - ZUSET


Routine Checksum:

Routine Name:
  - ZTMS5


Routine Checksum:

Routine Name:
  - ZTMS0


Routine Checksum:

=============================================================================
User Information:
Entered By  : FORT,WALLY                    Date Entered  : DEC 12, 2002
Completed By: SINGH,GURBIR                  Date Completed: AUG 16, 2004
Released By : TILLIS,LEWIS                  Date Released : AUG 23, 2004
=============================================================================


Packman Mail Message:
=====================

$END TXT
