LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Eric Thomas <[log in to unmask]>
Mon, 8 Jul 1991 05:33:43 +0200
text/plain (858 lines)
         Description of the changes for release 1.7a of LISTSERV
         -------------------------------------------------------
                             July 8th, 1991
 
**************
* Highlights *
**************
 
Version 1.7 introduces the following major enhancements:
 
- Support for the "new format" BITEARN  NODES file, which is scheduled to
  replace the existing version by  VERS9109. Availability of the "current
  format" file is to be  eventually discontinued (1Q92?); as any software
  relying  on BITEARN  NODES and  not  supporting the  "new format"  will
  become basically  unusable at that  time, this  is an item  of critical
  importance.
 
- Support  for the  CP  component  of VM/SP  release  7  and VM/ESA,  for
  XA/ESA-mode virtual machines and for the REXX compiler. Support for CMS
  release 7 is a short-term goal.
 
- Support for the RSCS list processor can save significant amounts of CPU
  and I/O resources while conserving network bandwidth.
 
- New network topology  compiler and DISTRIBUTE path  generator allow the
  use  of the  new set  of  EARN-BITNET connections  and other  redundant
  connections,  thus  spreading the  load  over  several lines/sites  and
  increasing both availability and speed of distribution.
 
- Changes in  internals can  improve performance  of DISTRIBUTE-intensive
  servers by up to 40% CPU time  and 50% I/O, as compared to release 1.6e
  and taking advantage of the RSCS list processor.
 
- CRC-based  checksumming of  DISTRIBUTE jobs  provides a  level of  data
  transfer integrity  higher than  that of  the native  network services,
  while guarding against "X-DEL storms".
 
- Improved, CRC-validated software  update installation procedure ensures
  integrity of the  update being loaded and  provides recovery mechanisms
  in case of error during the update (disk full, etc).
 
- Improved SHOW command provides additional information about the network
  topology and the operation of the local server.
 
****************
* Availability *
****************
 
Release 1.7 is available free of  charge to sites which qualify under one
(or more) of the categories listed below:
 
a. Members  of CREN or  one of  the CREN Cooperating  Networks, excluding
   EARN members.
 
b. EARN members from nordic countries.
 
c. EARN  members from non-EEC  countries which have formally  applied (in
   writing)  for  a  license,  and complied  with  the  appropriate  EARN
   directives.   International  organizations   are  not   considered  as
   belonging to the EEC.
 
Licenses  for release  1.6 from  non-EEC EARN  members are  automatically
carried over to release 1.7 - please do not mail a new license agreement.
Release 1.6 licenses from EEC countries remain valid for release 1.6, but
will not be carried over to release 1.7.
 
*******************************
* Supported operating systems *
*******************************
 
Release 1.7  introduces the  following changes to  the list  of supported
operating systems:
 
- CMS release 3 is no longer supported.
 
- The CP  components of VM/SP  release 7 and  VM/ESA are supported  as of
  release 1.7a.
 
- Support for CMS release 7  will be introduced once suitable development
  and beta-test sites  have been found. It is expected  that release 1.7a
  should  work under  CMS release  7,  however formal  support cannot  be
  provided without access to a suitable CMS7 development system.
 
Support for other versions of CP and CMS is unchanged from 1.6e.
 
*****************
* Compatibility *
*****************
 
Release 1.7a is generally compatible with 1.6e. The most notable changes,
in terms of compatibility, are  highlighted below; note that more details
are available from the longer descriptive section of these release notes.
 
 1. The "Extended" options of the "Stats=" keyword is now ignored.
 
 2. Some  commands and functions  will produce different output  when the
    "new format"  BITEARN NODES file  is used,  because the data  in this
    file  is   structured  differently  and,  generally   speaking,  full
    compatibility between the information in the old and new format files
    has not been preserved.
 
 3. The DISTRIBUTE  function may generate completely  different (but more
    efficient) paths.
 
 4. Processing of held reader files and gathering of input files from the
    various list userids has been changed.
 
 5. Some  information about  DISTRIBUTE jobs  was removed  from the  SHOW
    STATISTICS command; you  should now use SHOW  DISTRIBUTE for detailed
    information about the DISTRIBUTE function.
 
 6. The  index of the LISTS  database now contains a  "subscribers count"
    field. Note that this field will remain uninitialized for lists which
    are not managed by release 1.7 servers.
 
 7. Application developers should  note the following changes  in some of
    the internal LISTSERV files:
 
    a. LSVBITWR MODULE is removed.
 
    b. BITEARN NODESUM is replaced with BITEARN NODESUM2.
 
    c. LINKSWT FILE is replaced with LINKSWT2 FILE.
 
    Local modifications relying on these files will have to be updated.
 
 8. Formal  support for  manual  installation of  new  releases is  being
    withdrawn; automatic  installation with local password  validation is
    still the recommended procedure.
 
Release 1.7a is  to be installed directly  on top of the  base 1.6e code,
and includes all the fixes available from LISTSERV@SEARN for release 1.6e
(ie  all  the "16Ennnt  FIX"  files  from  filelist "LFIXES"),  with  the
exception of those containing replacement "recommended user exits", which
always have to be installed manually.
 
********************************
* Minor fixes and enhancements *
********************************
 
This section is being omitted for  release 1.7a. This is a major release,
coming up almost one year after the last minor release (1.6e); the amount
of small changes  that were made is such that  this section would require
500 to 1000 lines.
 
***************************************************
* Integrity/Serviceability: New INSTALL processor *
***************************************************
 
This is  probably the most  important item for LISTSERV  maintainers, but
list owners  and end users should  feel free to  skip it if they  are not
interested.
 
Major changes have  been made to the INSTALL processor  with release 1.7,
in  order to  guarantee the  integrity  of the  server code  and to  make
generation and  distribution of software  updates easier for  the author.
Unfortunately, these changes could not be made totally transparent to the
LISTSERV maintainer, so please read the following carefully.
 
One of  the most frequent  causes of  software integrity loss  (running a
mixture  of one  release  and another,  with  unpredictable results)  was
corruption of the update decks by RSCS. It seems that CARD DUMP generates
patterns (at least with the LISTSERV code) that trigger integrity bugs in
some versions of RSCS (especially V1.3), and with each new release, about
3-4 servers  in the same area  received update files where  two 400-bytes
chunks had been  swapped. In order to prevent this  from happening in the
future, INSTALL decks are now CRC-checked before being loaded (this is in
addition  to the  DISTRIBUTE checksum).  In  order to  prevent this  from
happening  right  now, with  the  very  1.7a  shipment, the  new  INSTALL
processor is  being shipped beforehand -  one can hope that  a very small
update deck  has a  much lower  probability of  getting corrupted  than 6
large  ones.  This means  you  will  have  to exceptionally  install  two
shipments in order to load 1.7a.
 
The other common cause of integrity loss was a disk full condition during
the CARD LOAD operation, or then a "bug" in the CARD command (usually the
use of a version of CARD incompatible  with the release of CMS). To solve
this problem, files are no longer shipped under their "real" (production)
filetype,  but under  a harmless  "shadow"  filetype. The  files will  be
renamed to their "production" filetype  upon successful completion of the
CARD LOAD operation; otherwise, they will  be deleted to recover the disk
space, and  the deck will be  kept on LISTSERV's reader,  in HOLD status,
ready to  be manually retried  (via an  INSTALL RELOAD command)  once the
problem has  been corrected.  A side-effect is  that LISTSERV  needs more
"scratch" disk  space on its 191  minidisk to load INSTALL  decks than it
used to,  and that  you may have  to increase the  size of  this minidisk
accordingly (and/or delete old LFIX backup files before installing).
 
In order to simplify the generation of update decks, an installation exit
may now be included in the  deck to perform special processing at various
points of the installation procedure.  This is totally transparent to the
LISTSERV maintainer  in case of  automatic installation (with  or without
local password validation). However, this does not take place when manual
installation has  been selected  by the  site, as  the server  is stopped
during the whole duration of the  update and cannot perform the necessary
calls to  the shipment exit. For  this reason, manual installation  is no
longer  supported,  and  sites  which  chose  that  option  are  strongly
encouraged  to  switch  to  automatic installation  with  local  password
validation.  There  is  no  technical   reason  to  want  to  use  manual
installation:  if  you really  want  control,  you  can always  logon  to
LISTSERV, type the INSTALL PASSWORD command  and watch the show with your
finger on a PF-key set to 'IMM  HX'. If you have local modifications that
you want to  refit, you should install  the new version on  a test server
anyway. Still, there will be sites that  continue to insist on the use of
manual installation  for religious  reasons; you  may skip  the following
paragraph if this is not your case.
 
If you  install an update manually,  it is your responsibility  to ensure
that the installation exit gets called  at the appropriate times and with
the appropriate parameters.  If you omit these calls, the  update may not
install properly. The  first thing you should do is  read the comments in
INSTFT FILE, in order to understand the general philosophy of the "shadow
filetype" system.  You should then do  the CARD LOAD and  examine LSVINST
EXEC (*not*  LSVINST -LSV-EXE  but the  "old" EXEC file)  to see  what it
would have done  after the CARD LOAD,  and do it manually.  Do not assume
that this has not changed since last  time. You can then re-IPL and start
LSVPROF. If  you have any problem  or question with this  procedure, save
your time and look for the answer  in the code; manual installation is no
longer supported, and questions will not be answered.
 
In case you  had configured your server for manual  installation but want
to  switch to  automatic, just  edit  LSV$INST EXEC  to enable  automatic
installation,  specify an  installation validation  password (INSTPW)  in
LOCAL SYSVARS, issue an INSTALL CLEANUP  CODE_1.7A to your server and ask
for a second shipment of the 1.7a update files.
 
Finally, there  are three minor  but notable improvements to  the INSTALL
command in release 1.7:
 
- LISTSERV will no longer lose track  of INSTALL spool files under VM/HPO
  5  or  VM/XA  if  they  are  CP  TRANSFERred  to  another  account  for
  examination and then transferred back. However, if you RECEIVE the file
  by mistake,  you should  not try  to SENDFILE it  back but  contact the
  author immediately.
 
- The new INSTALL CANCEL command can  be used to order LISTSERV to cancel
  installation  of a  particular shipment  and discard  the corresponding
  spool files (if any).
 
- Informational messages  regarding the progress of  the installation are
  now  sent to  a special  userid rather  than to  LISTSERV coordination.
  Error messages are still sent directly to the coordinators.
 
********************************************************
* Integrity: CRC-based checksumming of DISTRIBUTE jobs *
********************************************************
 
BITNET used to enjoy a reputation of being a "safe" network - granted, it
might take a while  for your file to be delivered,  but very little files
ever got lost and corrupted files  were rare enough to be printed, framed
and hung  somewhere in  your office.  Unfortunately, things  have changed
dramatically in the  last 6 months or  so. Whether the problem  is due to
buggy service  levels of  RSCS or other  networking software,  to obscure
bugs in  LISTSERV/LISTEARN or  to an integrity  problem in  the operating
system at a key  site is still unknown; the fact  remains that every day,
several corrupted files  travel across the LISTSERV  backbone. This might
be less than one file in 1000, but it is still not acceptable, especially
as it  is the  cause of the  infamous "X-DEL storms".  An X-DEL  storm is
generated whenever one  of the DISTRIBUTE jobs the servers  use to notify
each other  of expired accounts  happens to be  hit by the  most frequent
type  of file  corruption:  duplication (a  second copy  of  the file  is
appended at  the end of the  original file). Instead of  instructing each
other to  delete all subscriptions  for a  particular list of  users, the
servers  then  instruct each  other  to  delete subscriptions,  and  then
forward a deletion request to a  number of other servers. In other words,
each server  receives as many copy  of the deletion request  as there are
servers (rather  than just one). Given  that there are over  250 servers,
the number  of resulting files is  quite significant, and a  single storm
can keep the network busy for a couple days.
 
In order  to solve  this problem, DISTRIBUTE  jobs are  being checksummed
with a CRC generator  as of release 1.7a. Each release  1.7 server on the
DISTRIBUTE path will verify the checksum, and abort the job (transferring
the original  spool file to  the postmaster)  if a mismatch  is detected;
older  servers  (including  LISTEARN's)   will  simply  forward  the  CRC
indicator,  treating  it as  a  comment.  The postmaster  should  examine
aborted jobs and either:
 
a. Attempt  to correct  the data  and resubmit the  job, leaving  the CRC
   indicator untouched.  If the  data was  improperly corrected,  the job
   will fail CRC verification and be rejected again, so this is something
   that  can always  be tried  without  fear of  causing extra,  unwanted
   distributions.
 
b. Decide  that the  data cannot  be corrected  but is  still usable  and
   resubmit the job, after deleting the  CRC indicator. The job will then
   be unconditionally  accepted and a new  CRC will be generated  for the
   remainder of the distribution path.
 
c. Decide that the data is neither correctable nor usable, and notify the
   job originator or list owner that the job is being purged.
 
To resubmit the job, RECEIVE the spool file, edit it, and use SENDFILE to
resend it  to LISTSERV (this  will work only  from one of  the postmaster
accounts). The  CRC indicator in  the job stream  can take either  of the
following  forms, depending  on  the  version of  the  server which  last
forwarded it:
 
        //CRC DD "value"
or:
        //CRC DD *
        value
        /*
 
To remove it, just delete the lines in question.
 
Because each  and every release  1.7 server  in the DISTRIBUTE  path will
verify that the checksum is  correct, links causing noticeable amounts of
file  corruption will  be  quickly  identified. One  can  hope that  data
corruption detected by  an unbiased piece of software will  have a higher
impact on local staff than vague complaints from anonymous end-users such
as "Mail  I get via  your machine is often  scrambled up!", and  that the
faulty links/nodes will be fixed in  a reasonable amount of time. It will
also ensure  that "X-DEL storms"  no longer have the  devastating effects
mentioned above, as jobs failing the CRC check will be aborted as soon as
the corruption can be detected. Even  though there will always be servers
that do  not run  release 1.7,  the CRC  code, having  the "core"  of the
backbone  check  CRC's and  discard  corrupted  jobs should  considerably
decrease  the duplication  factor and  thus  the overall  impact of  such
storms on the network (from N^2 to some 25^2 at most).
 
The  CRC generator  costs 580  instructions  per data  record; these  are
mostly  register-to-register  instructions,  which  correspond  to  about
200-300 "average" 370 instructions. A typical DISTRIBUTE job will require
an extra 50ms of CPU time on a 9370-60, or one tenth of that on a 3090-E,
plus 2 extra disk I/O's: not negligible, but nothing to worry about.
 
**************************************************
* Performance: Support for the IBM REXX compiler *
**************************************************
 
While the REXX compiler is  almost fully compatible with the interpreter,
it  was in  practice  unusable  with versions  older  than  1.7a due,  in
particular,   to  the   use   of  INTERPRET   instructions  in   critical
(often-executed) EXEC files.
 
Most INTERPRET instructions in version 1.7 have been either eliminated or
moved away from  critical EXEC files. It is now  possible to compile most
of the EXEC files, however this should be done CAREFULLY and according to
the guidelines listed below.
 
- Compiled REXX programs are 4  times larger than the interpreted source,
  even when the  NOSOURCE option is used. This means  you will be trading
  CPU time for a significant increase in working set size and an increase
  in disk  I/O, which may not  bring any performance enhancement  if your
  system is  heavily memory  constrained. This  also means  LISTSERV will
  need more virtual memory to do the same thing, therefore:
 
     >>> Increase virtual storage by 2M if you compile LISTSERV <<<
 
  For  release 1.7a,  the EXECLOADed  REXX  programs take  about 1.6M  of
  memory when  compiled. Increasing  virtual storage by  2M gives  you an
  extra 400k  of storage  for non-EXECLOADed programs  in the  process of
  being executed and compiler work areas.
 
- LISTSERV needs access to the source files of compiled programs, under a
  filetype  of  SEXEC,  in  order to  perform  file  version  consistency
  verifications. These  files do not need  to be on the  A-disk, but they
  have to  be somewhere  in the  search order.  If you  do not  compile a
  particular EXEC file, there  is no need to copy it  to SEXEC: the SEXEC
  file is needed only when the EXEC file is compiled.
 
- LSVPUT  EXEC and  LDBASE  EXEC are  user interfaces  -  they are  never
  executed by LISTSERV. The copy residing on LISTSERV's A-disk should NOT
  be compiled, as  this would cause remote users  requesting the software
  from your server to  get a compiled program which they  may not be able
  to use. There  is not much to be gained  from compiling either program,
  but  if you  insist on  doing that,  the best  solution is  to place  a
  compiled copy on a public disk for your local users.
 
- A number of EXEC files will give a warning message at compilation time,
  due to the  use of the TRACE OFF instruction.  These warnings should be
  ignored,  since  compiled  programs  always  operate  with  TRACE  OFF;
  ideally, the  compiler should  not even issue  them. ANY  OTHER WARNING
  should be treated as a fatal compilation error and immediately reported
  to the author.
 
- The following EXEC files cannot be compiled:
 
      LSVBESTP LSVDBPN  LSVDNSUM LSVIMAIL LSVINIT  LSVINTPT LSVPRSUM
      LSVUDDC  LSVUDDK
 
- Using the  NOSOURCE option when  compiling will improve  performance by
  decreasing the working set, as well as the amount of data that needs to
  be read from  disk for non-EXECLOADed programs. However,  it will cause
  the tracebacks  generated in case  of REXX  error to contain  just line
  numbers, and blanks  in lieu of the failing  statement. Such tracebacks
  will NOT be accepted in bug reports;  if you decide to compile with the
  NOSOURCE option, you  must "fill in" any traceback you  mail the author
  for problem  resolution, using  your copy of  the source  file. Sending
  your source file  is not an acceptable substitute, nor  is stating that
  you have made no local modifications to the program in question.
 
The new SHOW EXECLOAD command can be used to find out how much storage is
used by the EXECLOADed programs, and how often they have been accessed.
 
****************************************************
* Performance: Support for the RSCS list processor *
****************************************************
 
IMPORTANT: Make  sure to read  the whole description before  enabling the
use of the list processor, as there are integrity considerations.
 
Release 1.7 introduces  support for the RSCS list  processor available in
RSCS V3, RSCS V2.3 and RSCS V2.2  with APAR VM30091. To enable the use of
the RSCS list processor, you must:
 
1. Define  a "list processor"  link and  ensure that it  is automatically
   STARTed when RSCS comes up.
 
2. Add a definition in LOCAL SYSVARS of the following form:
                           LISTPROC = 'linkid'
   That is, if your list processor is called '*LIST', you would code:
                           LISTPROC = '*LIST'
 
Using the list processor will save both CPU time and I/O operations - not
only  from the  point of  view  of the  LISTSERV  userid, but  also on  a
system-wide basis, as RSCS can  duplicate files far more efficiently than
LISTSERV.  In addition,  it  may  save a  significant  amount of  network
bandwidth, based on the topology in  your area of the network, the amount
and placement  of backbone LISTSERV's  in the  vicinity, and the  type of
distributions your server is handling.
 
Unfortunately, some service  levels of RSCS create  serious problems when
the list processor is used. There may  be bugs in the list processor code
in your  RSCS, but there  may also be bugs  in NJE software  outside your
institution  which are  only  triggered by  files  with multiple  dataset
headers. In  particular, versions of RSCS  which do not support  the list
processor are  prone to suffer from  this sort of problem  at one service
level  or another.  By enabling  the use  of the  list processor  on your
machine, you  can cause  loss of  data (corrupted  or rejected  files) on
downstream nodes  which you have  no control  over. The best  solution is
clearly to have these sites correct the problem, but you may want to warn
your "neighbourhood" in  advance if you have reasons to  believe they are
running software which could be affected by the change.
 
Finally, the list  processor does not need to reside  on the RSCS virtual
machine  LISTSERV is  sending  files to,  as  long as  this  RSCS has  an
appropriate ROUTE to  the RSCS hosting the list  processor. For instance,
if you  have a VM/HPO  guest on  a VM/XA system  with a LISTSERV  at both
levels, you could define a list processor at the VM/XA level and instruct
the VM/HPO RSCS to route this  destination to the VM/XA system (eg 'ROUTE
LISTPROC TO  VMXA'). You can  of course define  a list processor  on both
RSCS machines as well - it is just a matter of performance.
 
**************************************************************
* Usability: Support for the "new format" BITEARN NODES file *
**************************************************************
 
Release 1.7a  can operate indifferently with  a "new format" (as  per the
specifications  dated 1  Feb  1991)  or "old  format"  file posterior  to
VERS9009. Full  compatibility is, however,  not possible, and  you should
expect minor changes in behaviour when  switching from old to new format,
even when both files have the  same VERSyynn identifier. Some of the data
(eg NJE-level  aliases) is simply not  available any longer with  the new
format; some (eg  "people-related" information) is still  there, but does
not look the same.
 
Performance  improvements make  most of  the functions  based on  BITEARN
NODES perform  much better,  when using  an old  format file,  than under
release  1.6e.  With  a  new format  file,  however,  performance  varies
significantly with  the "structure" of the  data in the file  - how often
and how many times  LISTSERV needs to look up a  different entry than the
one it was examining  in order to get at the information  it needs. It is
expected that most  functions should still perform better  than 1.6e when
using a  new format  file, but  only marginally  so. Database  reports in
particular  will  take   longer  to  generate,  but   will  provide  more
information. The new  SHOW BITEARN and SHOW NETWORK commands  can be used
to compare some of the attributes of the two formats.
 
**************************************************
* Functionality: New options to the SHOW command *
**************************************************
 
The following new options have been added to the SHOW command:
 
- 'SHOW ALIAS  host1 <host2<...>>' shows the  registered Internet address
  of a  BITNET node, or  the BITNET  nodeid corresponding to  an Internet
  address.
 
- 'SHOW BITEARN'  displays technical information about  the BITEARN NODES
  file (old  vs new  format, number  of records,  size of  the associated
  tables, etc).
 
- 'SHOW  DISTribute'  displays  comprehensive  statistics  regarding  the
  DISTRIBUTE activity since the last reboot.
 
- 'SHOW DPATHs * | node1 <node2<...>>'  shows the DISTRIBUTE paths to the
  specified backbone nodes, or to all  nodes hosting a backbone server if
  '*'  is  specified. Note  that  these  paths  are  used only  for  jobs
  generated by the server in question;  jobs which are relayed from other
  servers use the paths determined by the originating server.
 
- 'SHOW   EXECLoad  <ALL>'   (privileged)   displays  information   about
  EXECLOADed  files.  Use  the  ALL  option to  get  information  at  the
  individual file level; omit it for just a summary.
 
- 'SHOW FIXes'  displays a  list of  the fixes  installed since  the last
  official release.
 
- 'SHOW LINKs  host1 <host2<...>>' extracts all  link specifications from
  the BITEARN NODES entries of the specified hosts and displays them in a
  condensed form (destination nodeid and link speed pairs).
 
- 'SHOW  LSVFILER  <ALL>'  (privileged) displays  information  about  the
  LSVFILER cache. Use the ALL option to get information at the individual
  file level; omit it for just a summary.
 
- 'SHOW  NETwork' displays  technical information  regarding the  network
  topology (number of nodes, networks, countries, links, etc).
 
- 'SHOW  NODEntry host1  <host2<...>>  </tag1</tag2<...>>>' extracts  the
  BITEARN NODES entries  for the specified hosts and  displays either the
  full entry, if no search pattern was specified, or the ':node.' tag and
  any other  tag matching one  of the  specified tag patterns  (note that
  wildcards can be used in the 'tag1' et seq patterns).
 
- 'SHOW PATHs  source-host host1 <host2...>> <(<Weight>  <NOSPeed>>' will
  display a path diagram showing the  shortest paths from the source node
  to  the listed  destination nodes,  along with  the corresponding  link
  speeds. The  WEIGHT option  causes LSVBITFD  weights (1E9/speed)  to be
  displayed instead,  while the  NOSPEED option removes  any speed/weight
  indication (useful when the diagram does not fit in 80 columns).
 
- 'SHOW RELease'  and 'SHOW VERSion'  are now synonyms for  the 'RELEASE'
  command.
 
Where 'node1' et seq refer to a valid NJE nodeid and 'host1' et seq refer
to either an NJE  nodeid or an Internet host address.  In both cases, the
nodeid/host must appear in the server's copy of BITEARN NODES.
 
*************************************************************
* Serviceability/Performance: New network topology compiler *
*************************************************************
 
Release 1.7 includes an enhanced network topology compiler that makes use
of the line  speed specifications in BITEARN NODES (both  "old" and "new"
formats). This provides a much more accurate view of the network than the
former topology compiler, which treated  all links equally and required a
large  LINKSWT FILE  (70 entries  as of  VERS9107) to  produce acceptable
routing. The release 1.7 topology  compiler obsoletes LINKSWT FILE, which
is replaced with a much shorter LINKSWT2 FILE (3 entries as of VERS9107).
Maintenance of  this new link  weights file is  expected to be  much more
straightforward,  as only  saturated  links over  which extra  (LISTSERV)
traffic  is  to be  avoided  have  to be  coded.  Combined  with the  new
DISTRIBUTE path  generator (qqv), the ability  to enter new links  in the
LISTSERV configuration  without having  to alter  BITEARN NODES  makes it
possible to assess the impact of major network changes in advance (before
the NODUPD files are released) and  avoid the all too frequent "emergency
LINKSWT shipment" following a BITEARN NODES update.
 
*******************************************************
* Performance/Functionality: Improved LSVBITFD MODULE *
*******************************************************
 
The algorithm  used by LSVBITFD  has been changed to  improve performance
and allow the calling application to  request that the full selected path
be returned, in addition to the  distance between source and target nodes
(new PATH and PATHELM options).  "Regular" calls to LSVBITFD will require
around  30% less  CPU  time than  with the  release  1.6e version,  while
savings of 75% can be expected when the NEAREST option is specified. Path
resolution does not involve any significant extra CPU cost.
 
Important notes for application developers:
 
A. The  new version  of LSVBITFD may  produce unpredictable  results when
   used with the "old" topology generator,  as the new algorithm does not
   support links with a weight of zero.
 
B. The  REVERSE option outputs the  reverse distance of the  path that is
   shortest in the forward direction.  In other words, the REVERSE option
   does not affect the path determination logic.
 
C. Before migrating to the new  version of LSVBITFD and BITEARN LINKSUM2,
   you  must  ensure your  software  can  handle  the much  larger  units
   (104,166 for a  9600bps link) generated by the  new topology compiler.
   As long as  your application can handle 31-bits integers  and makes no
   assumption  as  to  the  meaning   of  the  returned  units  (and,  in
   particular, does not assume that 9600/result = line speed), there will
   be no compatibility problem.
 
***********************************************************
* Availability/Performance: New DISTRIBUTE path generator *
***********************************************************
 
For reasons which would be impossible to explain in a less than a hundred
lines or  so, the release  1.6 DISTRIBUTE  path generator suffers  from a
number of serious flaws which have  only become apparent in the last 6-12
months. In  particular, it is unable  to exploit network redundancy  in a
satisfactory way; any attempt to deviate  from the pre-1990 "one and only
one way  to each  destination" topology model  results in  unexpected and
usually undesirable routing. To circumvent this problem, the LINKSWT FILE
has  been "nullifying"  (giving  an  extremely high  weight  to) all  new
intercontinental  links,  thus  forcing all  the  EARN<->BITNET  LISTSERV
traffic to go  through a single server in France.  This obviously creates
all sorts of availability problems:  bottlenecks, single point of failure
causing total loss of service - in  fact, this very server (or one of the
RSCS/JES leading to it) is responsible for the recent X-DEL storms.
 
It is again impossible  to explain, in a few sentences,  how the new path
generator solves  these problems; suffice  it to say  that it is  using a
completely different algorithm, which  generates optimal distribution for
jobs with several recipients per destination (the majority of jobs), at a
reasonable  CPU  cost  (in  fact,  sites processing  a  large  amount  of
DISTRIBUTE jobs,  or jobs with  large amounts of destination  sites, will
actually save CPU time).
 
The new path generator requires  no configuration change, however you are
advised to issue a  'MAIL SHOW DPATH *' command to  your server and check
that the distribution  paths "make sense", bearing in mind  that they are
based on  the line speed  information in  BITEARN NODES, rather  than the
actual physical line speeds.
 
************************************************************************
* Future Development: New DISTRIBUTE path generator/':nodeweight.' tag *
************************************************************************
 
The new DISTRIBUTE  path generator includes support  for a ':nodeweight.'
tag in PEERS NAMES, which  reflects the response time and/or availability
of  the various  backbone servers.  Through the  use of  this tag,  it is
possible to  make the path generator  favour a server over  another, with
the aim of  increasing service to the end-user at  the expense of network
resources. This is a provisional facility; there  is no plan to use it in
the near future,  but it will be  available should the need  arise. It is
being  documented  here  because  it  includes  a  tool  to  measure  the
"efficiency" of your server for DISTRIBUTE operations, which you may find
useful  for planning  purposes ("How  much  more DISTRIBUTE  load can  we
handle with  the new CPU?", or  "Should we run the  DISTRIBUTE service on
the  4341 or  the 3081?"):  the new  SHOW BENCHMARK  command, which  will
measure  the availability  of  CPU,  paging and  disk  I/O resources  and
produce a suggested ':nodeweight.' value (the lower, the better - this is
the same scale as network link weights, ie 100,000 roughly corresponds to
"the same kind of delays a 9600bps line would introduce").
 
Important:
 
1. The benchmark was designed to  be run under "average" load during peak
   hours and, of course, without any special priority or reserved pages.
 
2. This  command may take  up to 30 seconds  or so on  saturated systems.
   Since  it burns  a  fair  amount of  resources,  it  is restricted  to
   postmasters and LISTSERV coordination.
 
3. The results are  not to be used for any  other purpose than evaluating
   the fitness of your machine for DISTRIBUTE operations.
 
Small, saturated systems like CEARN  or SEARN have suggested node weights
ranging from 150,000  to 400,000. A typical VM/XA 3090  is around 20,000.
This just  reflects the fact that  large systems, regardless of  the load
they have to bear, have no problem coping with LISTSERV's paging and disk
I/O requirements  (CPU time might be  a problem, though, and  so can CKPT
contention). A 9370 with 8M of real  memory and two (slow) disk units, on
the other hand, will cause significant  delays for paging and disk I/O if
there  are  other active  users,  regardless  of  how  much CPU  time  is
available.  For  DISTRIBUTE  activity,  it is  generally  better  to  run
LISTSERV at low priority  on a large system than at  normal priority on a
small, dedicated system.
 
*********************************************************
* Performance: Improvements to the DISTRIBUTE processor *
*********************************************************
 
A number  of performance  improvements have been  made to  the DISTRIBUTE
processor with  release 1.7, in order  to reduce startup time  (around 1M
370  instructions  were  saved),   working  set  (30-40%  reduction)  and
resolution  of domain-style  addresses (factor  of 2-3  in the  average).
Coupled with  the LSVBITFD  performance improvements and  the use  of the
RSCS list processor, this can significantly decrease the cost of enabling
the  DISTRIBUTE  function  at  your  installation.  If  system  resources
consumption is  the reason you  opted not to  join the backbone,  you may
want to reconsider your decision. Backbone sites processing over 500 jobs
a day under normal conditions are encouraged to compare LISTSERV resource
utilization  before and  after the  installation of  1.7a and  mail their
figures to the LSTSRV-L list.
 
*******************************************************************
* Performance: Improvements to LSVIUCV and reader-queues handling *
*******************************************************************
 
A number of  performance improvements have been made to  LSVIUCV in order
to decrease CPU utilization. This will affect LISTSERV's behaviour in the
following ways:
 
1. A server which has been placed offline will consume much less CPU time
   than with previous versions.
 
2. LISTSERV  may not react instantly  to sudden changes in  the amount of
   spool  files in  the system,  and  may take  a while  to place  itself
   offline.  Adjust the  OFFLINEDLY  variable (whose  description can  be
   found in LISTSERV SYSVARS)  if this turns out to be  a problem at your
   site.
 
3. The  DELAY configuration  variable is  superseded by  the new  POLLDLY
   variable (described in LISTSERV SYSVARS) and ignored.
 
4. LISTSERV will fetch  files a few times an hour from  the reader of the
   list userids even when its own reader queue is not empty. This happens
   even  in offline  mode, and  ensures that  these files  take a  "fair"
   position in the queue  and are not left in the  list userids for hours
   (or even days) if the server is constantly busy.
 
5. There will, as before, be a delay between the arrival of a file in the
   reader  of a  mailing list  and its  distribution. However,  sending a
   message to  LISTSERV or  hitting ENTER twice  on the  LISTSERV console
   will no longer cause the file to be processed immediately. Issue a NOP
   command to LISTSERV if it is critical to have the file processed right
   away.
 
6. LISTSERV will no longer act as a spool system stress-test program when
   large amounts  of jobs  are postponed for  execution outside  of prime
   time. However, LISTSERV is no longer as tolerant as it used to be with
   respect to bugs in the CP spooling functions. In particular, if a file
   is CP TRANSFERred  back to LISTSERV and CP fails  to reset the SFBSEEN
   bit, it may take  quite a while for LISTSERV to  notice the arrival of
   the file.
 
*****************************************************************
* Performance: Maximum amount of BSMTP 'RCPT TO:' per mail file *
*****************************************************************
 
In order to  avoid "paralyzing" the local MAILER and/or  SMTP servers for
long periods of  time, LISTSERV will no longer generate  BSMTP mail files
with more than  500 'RCPT TO:' specifications. You can  change this value
by defining a MAXBSMTP variable in LOCAL SYSVARS with the desired value.
 
*******************************************************
* Usability: Support for XA/ESA-mode virtual machines *
*******************************************************
 
All  components of  LISTSERV  (including the  LDBASE  interface) can  now
operate  in an  XA or  ESA virtual  machine in  toleration mode.  Partial
exploitation  is  possible  with  versions  of  CMS  in  which  the  REXX
interpreter is  XA-exploitive. Some  of the  assembler components  can be
made  XA-exploitive when  re-assembled with  'SYSPARM(XA)'; please  note,
however, that the resulting MODULE files  will not operate on versions of
CMS older than 5.5.
 
The recommended virtual machine mode for LISTSERV is what the majority of
your local users/applications are using.  There is strictly no benefit to
be expected  from running  LISTSERV in  an XA  virtual machine  when most
users run in  370 machines: shared segment paging will  increase, and CMS
SVC 20x overhead is higher in an XA virtual machine by up to 40%.
 
****************************************************
* Performance: "Extended" statistics now withdrawn *
****************************************************
 
In the early  days of LISTSERV, before the inception  of DISTRIBUTE, list
distribution  optimization  was  achieved  through  peered  lists,  whose
placement had to  be manually determined. One of the  tools that LISTSERV
provided for this purpose was the  "Extended" option of the "Stats=" list
header keyword,  which allowed  the list  owner to  learn about  the load
(links  traversed x  kilobytes)  generated  by each  of  the peers.  When
DISTRIBUTE was  introduced, it became  clear that  there was no  way this
"extended" information could be provided  at a reasonable programming and
system resources cost;  you could still activate it, but  if the list was
DISTRIBUTEd you would get only zeroes  in the "Network load" column. This
was never really a problem, because the use of DISTRIBUTE ensured optimal
distribution  of the  postings, ie  there was  no way  you could  further
improve the  distribution with  peered lists. The  "extended" information
was no longer needed to allocate new peers.
 
Extended statistics did work for  non-DISTRIBUTEd lists, though, and some
list owners did  not want to use DISTRIBUTE because  it required too much
CPU   time  (this   was   the  considerably   slower  DIST1   processor).
Unfortunately, extended statistics cost a  significant amount of CPU time
to maintain, and work only  with BITNET-style addresses (ie JOE@UOFXYZ as
opposed to [log in to unmask]); domain-style recipients are not accounted
for, which  means that the figures  produced by the STAT  command will be
incorrect  if   there  is   a  significant  proportion   of  domain-style
recipients. Since most mailing lists  now have a majority of domain-style
addresses, extended  statistics have basically  become a way to  burn CPU
time in order to produce  meaningless figures. Unfortunately, list owners
are often  unaware of this and  turn on the  option just to "get  as much
information as possible". It was  therefore decided to ignore this option
in  release  1.7 in  order  to  save CPU  time  and  prevent people  from
attempting to draw conclusions from inaccurate figures.
 
******************************************************
* Usability: Support for RFC822-compliant time zones *
******************************************************
 
LISTSERV will now attempt to  generate RFC822-compliant time zones in the
'Date:'  field of  mail messages  it generates.  This is  accomplished as
follows:
 
1. If a TZONE variable is defined in LOCAL SYSVARS, its contents are used
   as is (and assumed to be valid). It is strongly recommended to use the
   universal +/-nnnn  format to specify  this time zone, rather  than the
   more cryptic (to the uninitiated) time zone codes ('PDT', 'N', etc).
 
2. If the time zone returned by CP  QUERY TIME starts with a + or - sign,
   two  zeroes are  appended  to form  the time  zone  (eg '+02'  becomes
   '+0200').
 
3. If that time zone is one of those specified in RFC822, it is converted
   to +/-nnnn  format both  for the  convenience of  non-US users  and to
   avoid ambiguities, as the "military"  time zones listed in RFC822 were
   incorrectly  specified. Thus,  'D' or  'EDT' are  automatically turned
   into '-0400'.
 
4. If that time zone is something else, or the much-misused GMT, LISTSERV
   will extract  the GMT offset  via a diagnose  X'00' and convert  it to
   +/-nnnn format. This will produce  incorrect results if the DMKSYS GMT
   offset  is incorrect,  but at  least it  will be  RFC822-compliant and
   expose the problem to the system administrator.
 
Unless  a  non-numeric  TZONE  variable is  defined  by  the  postmaster,
LISTSERV will always generate a time zone in +/-nnnn format.
 
********************************************************
* Usability: List maintenance from non-BITNET accounts *
********************************************************
 
IMPORTANT: Read  the instructions carefully. If  you rush into a  test of
the new facility, you may lose information about your subscribers.
 
List maintenance  from a non-BITNET  account is made easier  with release
1.7, as  you no  longer need  to switch  to a  BITNET account  or request
assistance from  the local postmaster  to edit  the list header.  This is
accomplished by allowing the list  header to be modified independently of
the subscribers list, using the procedure described below:
 
1. Send  a 'GET listname  (HEADER' command  to LISTSERV. The  list header
   will be returned and the list will be locked. NEVER SKIP THIS STEP!
 
2. If  you happened to have  an up-to-date copy  of the list header  in a
   local file, do  NOT make use of it  and proceed to step 3;  just go to
   step 1. Similarly, if you had  forgotten the HEADER option by mistake,
   do NOT delete  the subscribers list from the file  you got and proceed
   with step  3. Instead, issue  an 'UNLOCK listname' command  and repeat
   step 1.
 
3. Edit the list header, fill in the 'PW=' keyword and send (or mail) the
   resulting file back to LISTSERV.
 
It is  very important for  you to remember  that pre-1.7a servers  do not
have the capability  to update just the list header.  This procedure will
fail with such servers, because they will not recognize the HEADER option
of the  GET command in  step 1. However, they  would gladly accept  a PUT
command with just  the list header - and delete  all the subscribers from
the list.  This is the reason  why it is  so important to always  use the
HEADER  option,  especially if  you  maintain  several lists  on  several
servers. If  you do delete your  subscribers list by mistake,  you should
immediately issue a 'GET listname (OLD' to recover the old copy.
 
In addition, if  you send the file  back via mail, you  should REMOVE THE
SIGNATURE LINES  before sending it.  If you forget  to do this,  you will
probably cause a syntax error and your command will be rejected. However,
if your  signature file  happens to  look like  a valid  subscribers list
(which is admittedly  unlikely), you would cause the existing  list to be
overwritten, as the  old "PUT header + list" function  is still supported
for compatibility reasons.
 
Finally, this new procedure will obviously save both CPU time and network
bandwidth for large lists; there is  no reason to use the "old" procedure
if you do not want to update the subscribers list as well.

ATOM RSS1 RSS2