
1 Overview
  Overview
   The  GT.M  Database  Structure   Editor,   DSE,   examines   and   repairs
   Greystone Technology  Database  Structure  (GDS)  database(s).  GT.M  uses
   Buffered Global (BG)  and  Mapped  Memory  (MM)  access  methods  for  GDS
   files. For more information on  GDS,  refer  to  the  "Greystone  Database
   Structure" chapter  in  the  GT.M  Administration  and  Operations  Guide.
   MUPIP  INTEG  provides  comprehensive  error  checking,  which  serves  to
   verify  the  results  of   repairs   undertaken   with   DSE.   For   more
   information on MUPIP INTEG, refer to  the  "MUMPS  Peripheral  Interchange
   Program" chapter in the GT.M  Administration  and  Operations  Guide.  For
   more information on the use of DSE, refer  to  the  "Maintaining  Database
   Integrity" chapter in the GT.M Administration and Operations Guide.

1 DSE_Functions
  Functions of DSE
   DSE is primarily a database repair utility.

   Use DSE to:

   o    Dump parts of the database for troubleshooting database errors

   o    Add or delete a record in a block

   o    Update file, block or record header information

   o    Update bit maps

   o    Save  copies  of  database   fragments   for   analysis,   audit   or
        restoration.

   Use the DSE EXIT command to leave DSE.

1 Command_Syntax
  Command Syntax
   The format for DSE commands is:

     Command  qualifier

   DSE  interprets  all  numeric  input  as  hexadecimal,  except  for   time
   values,     the     -BLK_SIZE=,     -KEY_MAX_SIZE=,     -RECORD_MAX_SIZE=,
   -REFERENCE_COUNT=,  -TIMERS_PENDING=  and  -WRITES_PER_FLUSH=  on   CHANGE
   -FILEHEADER, and -VERSION=  on  the  REMOVE  and  RESTORE  commands.  This
   convention corresponds to the  displays  provided  by  DSE  and  by  MUPIP
   INTEG.

1 ADD
  AD[D]
   The ADD command adds a record to a block.

   The format of the ADD command is:

   AD[D] [-B[LOCK]=block]

   For greater than level 0 blocks add:

   -STAR -POINTER=block

   or

   -OFFSET=offset|-RECORD=record -KEY=key -POINTER=block

   For level 0 blocks add:

   -OFFSET=offset|-RECORD=record -KEY=key -D[ATA]=string

   The ADD command requires  either  the  -OFFSET  or  -RECORD  qualifier  to
   position the record in  the  block  and  either  the  -KEY  or  the  -STAR
   qualifier to define the key for the block.

   The -STAR qualifier is not valid at level 0  (i.e.,  for  a  data  block).
   The  ADD  command  requires  the  -DATA  qualifier  at  level  0  or   the
   -POINTER qualifier at any other  level  to  provide  the  content  of  the
   record.

2 Qualifiers
-BLOCK
  -B[LOCK]=block_number
   Specifies the block to receive the new record.

   On commands with  no  -BLOCK=  qualifier,  DSE  uses  the  last  block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed, .i.e.,  on  the  first  block  oriented  command,  DSE  uses
   block one (1).

-DATA
  -D[ATA]=string
   Specifies the data field for  records  added  to  a  data  block.  Use
   quotes around  string  and  escape  codes  of  the  form  \a  or  \ab,
   where  a  and  b  are  hexadecimal  digits  representing  non-printing
   characters.  \\  translates  to  a   single   backslash.   The   -DATA
   qualifier only applies  at  level  0  and  is  incompatible  with  the
   -STAR and -POINTER qualifiers.

-KEY
  -K[EY]=key
   Specifies the key  of  the  new  record.  Enclose  MUMPS-style  global
   references  in  quotes  ("").  The  -KEY  qualifier  is   incompatible
   with the -STAR qualifier.

-OFFSET
  -O[FFSET]=offset
   Adds  the  new  record  at  the  next  record   boundary   after   the
   specified offset. The  -OFFSET  qualifier  is  incompatible  with  the
   -RECORD and -STAR qualifiers.

-POINTER
  -P[OINTER]=pointer
   Specifies the block pointer  field  for  records  added  to  an  index
   block.  The  -POINTER  qualifier  is  incompatible  with   the   -DATA
   qualifier and cannot  be used at level 0.

-RECORD
  -R[ECORD]=record_number
   Specifies  a  record  number  of   the   new   record.   The   -RECORD
   qualifier is incompatible with the -OFFSET and -STAR qualifiers.

-STAR
  -S[TAR]
   Adds  a  star  record  (i.e.,  a  record  that  identifies  the   last
   record in an indexed  block)  at  the  end  of  the  specified  block.
   The  -STAR  qualifier  is  incompatible  with  all  qualifiers  except
   -BLOCK and -POINTER and cannot be used at level 0.

1 ALL
  AL[L]
   The ALL command applies action(s) specified by  a  qualifier  to  all  GDS
   regions  defined  by  the  current  Global  Directory.  This  is  a   very
   powerful command; use caution.  Be  especially  careful  if  you  have  an
   overlapping  database  structure  (e.g.,  overlapping   regions   accessed
   from separate application global  directories).

2 Qualifiers
-BUFFER_FLUSH
  -B[UFFER_FLUSH]
   Flushes  to  disk  buffers  all  regions  specified  by  the   current
   Global  Directory.  The  -BUFFER_FLUSH   qualifier   is   incompatible
   with the -RENEW qualifier.

-CRITINIT
  -C[RITINIT]
   Initializes  critical  sections  for  all  regions  specified  by  the
   current    Global    Directory.    The    -CRITINIT    qualifier    is
   incompatible with the -RENEW, -RELEASE and -SEIZE qualifiers.

-FREEZE
  -[NO]F[REEZE]
   Allows  a  user  to  freeze,  or  prevent  updates  to,  GDS   regions
   specified by the  current  Global  Directory.  The  -FREEZE  qualifier
   freezes all  such  GDS  regions  except  those  previously  frozen  by
   another user. Regions frozen  by  a  particular  user  are  associated
   with that user.  A  frozen  region  may  be  updated  in  one  of  two
   ways: The  user  who  froze  the  region  may  unfreeze  it  with  the
   -NOFREEZE  qualifier;  or  another  user  may  override   the   freeze
   injunction with the -OVERRIDE qualifier.

   The  -NOFREEZE  qualifier  unfreezes  only  those  GDS  regions   that
   were  previously  frozen  by  the   operator.   Once   a   region   is
   unfrozen, it  may  be  updated  by  any  user.  To  unfreeze  all  GDS
   regions, use the -OVERRIDE qualifier.

   The -FREEZE qualifier is incompatible with the -RENEW qualifier.

   DSE releases -FREEZE when it  EXITs.  To  hold  all  databases,  enter
   ALL -FREEZE and then SPAWN to perform other operations.

-OVERRIDE
  -O[VERRIDE]
   The -OVERRIDE  qualifier  is  meaningful  only  with  the  -FREEZE  or
   -NOFREEZE  it  unfreezes  all  GDS  regions,  including  those  frozen
   by other users.  When  used  with  -FREEZE,  the  -OVERRIDE  qualifier
   freezes all GDS  regions,  including  those  frozen  by  other  users,
   associating all such  freezes  with  the  current  user.  The  current
   user  must  then  use  the  -NOFREEZE  qualifier   to   unfreeze   the
   database; any other  user  attempting  a  -UNFREEZE  would  also  have
   to include the -OVERRIDE qualifier.

-REFERENCE
  -REF[ERENCE]
   Resets reference  counts  to  1  for  all  regions  specified  by  the
   current   Global    Directory.    The    -REFERENCE    qualifier    is
   incompatible with the -RENEW qualifier.

-RELEASE
  -REL[EASE]
   Releases  critical  sections  for  all  regions   specified   by   the
   current Global  Directory.  The  -RELEASE  qualifier  is  incompatible
   with the -CRITINIT, -RENEW and -SEIZE qualifiers.

-RENEW
  -REN[EW]
   Reinitializes    critical    sections    (-CRITICAL)    and    buffers
   (-WCINIT),  resets  reference  counts  to  1  (-REFERENCE_COUNT)   and
   clears freeze  flags  for  all    regions  specified  by  the  current
   Global  Directory  (-NOFREEZE).  -RENEW  requires  confirmation.   The
   -RENEW qualifier is incompatible with all other qualifiers.

-SEIZE
  -S[EIZE]
   Seizes  the  critical  section  for  all  regions  specified  by   the
   current  Global  Directory.  The  -SEIZE  qualifier  is   incompatible
   with the -CRITINIT, -RELEASE and -RENEW qualifiers.

   The  SEIZE  qualifier   can   be   useful   when   you   encounter   a
   DSEBLKRDFAIL error, generated when DSE  is  unable  to  read  a  block
   from the database.

-WCINIT
  -W[CINIT]
   Reinitializes  buffers  for  all  regions  specified  by  the  current
   Global  Directory.  -WCINIT   requires   confirmation.   The   -WCINIT
   qualifier is incompatible with the -RENEW qualifier.

1 BUFFER_FLUSH
  B[UFFER_FLUSH]
   The BUFFER_FLUSH command flushes the current region's buffers to disk.


   The format of the BUFFER_FLUSH command is:

   B[UFFER_FLUSH]

   The BUFFER_FLUSH command has no qualifiers.

1 CHANGE
  CH[ANGE]
   The CHANGE command changes fields of  a  file,  block,  or  record  header
   and the bit map.

   The CHANGE command either has  a  -FILEHEADER  qualifier  or  an  implicit
   or explicit  -BLOCK  qualifier  plus  one  or  more  of  their  associated
   qualifiers to define the target of the change.

2 Block_Qualifiers

-BLOCK
  -BL[OCK]=block_number
   Specifies   the   block   to   modify.   The   -BLOCK   qualifier   is
   incompatible  with  the  -FILEHEADER  qualifier  and  all   qualifiers
   related to -FILEHEADER.

   -BLOCK  is  the  default  qualifier.  On  commands  with   neither   a
   -BLOCK  nor  a  -FILEHEADER  qualifier,  DSE  uses  the   last   block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed, that is, on  the  first  block-oriented  command,  DSE  uses
   block one (1).

-BSIZ
  -BS[IZ]=block_size
   Changes the block  size  field  of  the  specified  block.  Decreasing
   the block size  can  result  in  loss  of  existing  data.  The  -BSIZ
   qualifier  is  incompatible  with  all   qualifiers   except   -BLOCK,
   -LEVEL and -TN.

-LEVEL
  -L[EVEL]=level
   Changes  the  level  field  for  the  specified  block.   The   -LEVEL
   qualifier  is  incompatible  with  all   qualifiers   except   -BLOCK,
   -BSIZ and -TN.

-TN
  -TN[=transaction_number]
   Changes  the  transaction  number  for  the  current  block.  When   a
   CHANGE command does not include  a  -TN=,  DSE  sets  the  transaction
   number  to  the  current  transaction  number.  Manipulation  of   the
   block  transaction  number  affects  MUPIP  BACKUP  -INCREMENTAL.  The
   -TN qualifier is  incompatible  with  all  qualifiers  except  -BLOCK,
   -BSIZ and -LEVEL.

-OFFSET
  -OF[FSET]=offset
   Specifies the offset within  the  block  of  the  target  record.  The
   -OFFSET  qualifier  is  incompatible  with   all   qualifiers   except
   -BLOCK, -CMPC and -RSIZ.

-RECORD
  -RE[CORD]=record_number
   Specifies  the  record  number  of  the  target  record.  The  -RECORD
   qualifier  is  incompatible  with  all   qualifiers   except   -BLOCK,
   -CMPC and -RSIZ.

-CMPC
  -CM[PC]=compression_count
   Changes the compression count  field  of  the  specified  record.  The
   -CMPC  qualifier  is   incompatible   with   all   qualifiers   except
   -BLOCK, -OFFSET, and -RECORD.

-RSIZ
  -RS[IZ]=record_size
   Changes the record size field  of  the  specified  record.  The  -RSIZ
   qualifier is incompatible  with  all  qualifiers  except  -OFFSET  and
   -RECORD.

2 File_header_qualifiers

-FILEHEADER
  -FI[LEHEADER]
   Enables modification of  specific  fields  in  the  file  header.  The
   -FILEHEADER qualifier  is  incompatible  with  the  -BLOCK  and    all
   qualifiers  related   to   -BLOCK   (i.e.,   -BSIZ,   -CMPC,   -LEVEL,
   -OFFSET,  -RECORD, -RSIZ and -TN qualifiers).

-BLK_SIZE
  -BLK[_SIZE]=block_size
   Changes the  decimal  block  size  field  of  the  current  file.  Use
   the -BLK_SIZE qualifier  only  in  conjunction  with  the  -FILEHEADER
   qualifier.   Do   not   use   this   CHANGE   qualifier   except    on
   instructions from Greystone.

-BLOCKS_FREE
  -BLO[CKS_FREE]=free blocks
   Changes  the  free  blocks  field  of  the  current  file.   Use   the
   -BLOCK_FREE  qualifier  only  in  conjunction  with  the   -FILEHEADER
   qualifier.  Database  operations   maintain   this   field   for   the
   user's  convenience.  The  field  does  not   control   any   database
   operations.

-B_COMPREHENSIVE
  -B_C[OMPREHENSIVE]=transaction_number
   Changes  the  transaction  number  in  the  fileheader  of  the   last
   comprehensive backup  to  the  value  specified.  Use  this  qualifier
   only in conjunction with the -FILEHEADER qualifier.

-B_INCREMENTAL
  -B_I[NCREMENTAL]=transaction_number
   Changes  the  transaction  number  in  the  fileheader  of  the   last
   incremental  backup  to  the  value  specified.  Use  this   qualifier
   only in conjunction with the -FILEHEADER qualifier.

-B_RECORD
  -B_R[ECORD]=transaction_number
   Changes  the  transaction  number  in  the  fileheader  of  the   last
   -RECORD backup  to  the  value  specified.  Use  this  qualifier  only
   in conjunction with the -FILEHEADER qualifier.

-CORRUPT_FILE
  -CO[RRUPT_FILE]=value
   Sets the file_corrupt  field  in  the  file  header.  Possible  values
   are:  TRUE,  FALSE  and  NOCHANGE.  Use  the  -CORRUPT_FILE  qualifier
   only in conjunction with the -FILEHEADER qualifier.

   WARNING: when DSE  EXITs  after  a  CHANGE  -FILEHEADER  -CORRUPT=TRUE
   without  a  matching  CHANGE  -FILEHEADER  -CORRUPT=FALSE,  the   file
   becomes unavailable to all future access.

-CURRENT_TN
  -CU[RRENT_TN]=transaction_number
   Changes  the  current  transaction  number  for  the  current  region.
   Use  the  -CURRENT_TN  qualifier  only   in   conjunction   with   the
   -FILEHEADER  qualifier.  This  qualifier  has  implications  only  for
   MUPIP  BACKUP   -INCREMENTAL.   Raising   the   -CURRENT_TN   corrects
   block transaction number too large errors.

-FLUSH_TIME
  -FL[USH_TIME][=delta_time]
   Changes  the  flush_time  default  interval   (in   delta_time).   The
   time entered must be between 0 and 1 hour.

   Use  the  -FLUSH_TIME  qualifier  only   in   conjunction   with   the
   -FILEHEADER  qualifier.  Do  not  use  this  CHANGE  qualifier  except
   on  instructions  from  Greystone.  A  -FLUSH_TIME   with   no   value
   resets   the   -FLUSH_TIME   to   the   default   value.   Input    is
   interpreted as decimal.

-FREEZE
  -FR[EEZE]=value
   Sets availability of the  region  for  update.  Possible  values  are:
   TRUE,  FALSE  and  NOCHANGE.  Use  to   "freeze"   (disable   database
   writes)  or  "unfreeze"  the  database.  Use  the  -FREEZE   qualifier
   only in conjunction with the -FILEHEADER qualifier.

   DSE  releases  -FREEZE  when  it  EXITs.  To  hold  the   database(s),
   CHANGE -FILEHEADER  -FREEZE=TRUE  and  then  SPAWN  to  perform  other
   operations.

-KEY_MAX_SIZE
  -K[EY_MAX_SIZE]=key_max_size
   Changes  the  decimal  value  for  the  maximum  allowable  key  size.
   Use  the  -KEY_MAX_SIZE  qualifier  only  in  conjunction   with   the
   -FILEHEADER  qualifier.  Reducing  KEY_MAX_SIZE  can  restrict  access
   to existing data  and  cause  GT.M-generated  errors.  Do  not  create
   incompatible  key  and  record  sizes.  If  you   make   a   permanent
   change to the key  size  using  DSE,  use  GDE  to  check  that    the
   appropriate Global Directory  contains  the  same  key  size  for  the
   region. For more  information  on  key  and  record  sizes,  refer  to
   the "Global Directory  Editor"  chapter  in  the  GT.M  Administration
   and Operations Guide.

-NULL_SUBSCRIPTS
  -N[ULL_SUBSCRIPTS]=value
   Sets  the  acceptability  of  null  subscripts   in   database   keys.
   Possible   values   are:   TRUE,   FALSE   and   NOCHANGE.   Use   the
   -NULL_SUBSCRIPTS   qualifier   only   in    conjunction    with    the
   -FILEHEADER  qualifier.  Prohibiting  null-subscripts   can   restrict
   access to existing data and cause GT.M generated errors.

-RECORD_MAX_SIZE
  -REC[ORD_MAX_SIZE]=record_max_size
   Changes the decimal value  for  the  maximum  allowable  record  size.
   Use the  -RECORD_MAX_SIZE  qualifier  only  in  conjunction  with  the
   -FILEHEADER  qualifier.  Reducing  the  RECORD_MAX_SIZE  can  restrict
   access to existing  data  and  cause  GT.M-generated  errors.  Do  not
   create  incompatible  key  and   record   sizes.   If   you   make   a
   permanent  change  to  the  record  size  using  DSE,  make  sure  GDE
   contains  the  same   record   size   for   the   appropriate   Global
   Directory. For  more  information  on  key  and  record  sizes,  refer
   to "Global  Directory  Editor"  chapter  in  GT.M  Administration  and
   Operations Guide.

-REFERENCE_COUNT
  -REF[ERENCE_COUNT]=reference_count
   Sets a field that  tracks  how  many  processes  are  accessing    the
   database from the current  node.  MUPIP  INTEG  and  DSE  use  decimal
   numbers  for  -REFERENCE_COUNT.  Use  the  -REFERENCE_COUNT  qualifier
   only  in  conjunction  with  the    -FILEHEADER  qualifier.   Restrict
   CHANGE  -FILEHEADER   -REFERENCE_COUNT   to   the   case   where   the
   process  running  DSE  has  exclusive  (stand-alone)  access  to   the
   database file. When DSE has sole  access  to  a  database  file    the
   -REFERENCE_COUNT should be 1.  This  is  an  informational  field  and
   does not have any effect on processing.

-TIMERS_PENDING
  -TI[MERS_PENDING]=timers_pending
   Sets  field  that  tracks  the  number  of  processes  considering   a
   timed   flush.   Use   the   -TIMERS_PENDING   qualifier    only    in
   conjunction with the  -FILEHEADER  qualifier.  Proper  values  are  0,
   1,  and  2.   Do   not   use   this   CHANGE   qualifier   except   on
   instructions from Greystone.

-TOTAL_BLKS
  -TO[TAL_BLKS]=total_blocks
   Changes  the  total  blocks  field  of  the  current  file.  Use   the
   -TOTAL_BLKS  qualifier  only  in  conjunction  with  the   -FILEHEADER
   qualifier.

   WARNING: The total blocks  field  should  always  reflect  the  actual
   size of  the  database.  Change  this  field  only  if  it  no  longer
   reflects the size of the database.

-TRIGGER_FLUSH
  -TR[IGGER_FLUSH]=trigger_flush
   Sets the decimal value  for  the  triggering  threshold,  in  buffers,
   for  flushing  the  cache  modified  queue.  Use  the   -TRIGGER_FLUSH
   qualifier only in  conjunction  with  the  -FILEHEADER  qualifier.  Do
   not  use  this  CHANGE   qualifier   except   on   instructions   from
   Greystone.

-WRITES_PER_FLUSH
  -WR[ITES_PER_FLUSH]=writes_per_flush
   Sets the decimal  number  of  blocks  to  write  in  each  flush.  Use
   the  -WRITES_PER_FLUSH  qualifier  only  in   conjunction   with   the
   -FILEHEADER  qualifier.  Do  not  use  this  CHANGE  qualifier  except
   on instructions from Greystone.

1 CLOSE
  CL[OSE]
   The CLOSE command closes the currently open  output  file.  Use  to  close
   the opened dump file.

   The format of the CLOSE command is:

   CL[OSE]

   The CLOSE command has no qualifiers.

1 CRITICAL
  CR[ITICAL]
   The  CRITICAL  command  along  with   its   qualifiers   displays   and/or
   modifies  the  status  and  contents  of  the  critical  section  for  the
   current  region.  The  critical  section  provides  a  control  mechanism.
   This  field  identifies,  by  its  PID,  the  process  presently  managing
   updates to database.

   The format of the CRITICAL command is:

   CR[ITICAL]               -I[NIT]
          -O[WNER]
          -REL[EASE]
          -REM[OVE]
          -S[EIZE]

   By default, the CRITICAL  command  assumes  the  -OWNER  qualifier,  which
   displays the status of the critical section.

2 Qualifiers
-INIT
  -I[NIT]
   Reinitializes  the  critical  section.  The  -RESET  qualifier  causes
   all processes actively accessing  that  database  file  to  signal  an
   error. Do not use  -INIT  without  the  -RESET  parameter  when  other
   processes are accessing the region.

   CAUTION: Using CRITICAL -INIT when  the  write  owner  of  a  critical
   section is an  active  GT.M  process  may  cause  structural  database
   damage.

-OWNER
  -O[WNER]
   Displays  the  ID  of  the  process  at  the  head  of  the   critical
   section,  the  ID  of  the  process  running  DSE  and  the  count  of
   critical read owners. When  the  current  process  owns  the  critical
   section, DSE displays a  warning  message.  The  -OWNER  qualifier  is
   incompatible with other qualifiers.

   Example:

   DSE> critical-owner

   Write critical section is currently unowned

-RELEASE
  -REL[EASE]
   Releases  the  critical  section  if  the  process  running  DSE  owns
   the  section.  The  -RELEASE  qualifier  is  incompatible  with  other
   qualifiers.

-REMOVE
  -REM[OVE]
   Terminates any write ownership  of  the  critical  section.  Use  this
   when  the  critical  section  is  owned   by   a   process   that   is
   nonexistent or is  known  to  no  longer  be  running  a  GT.M  image.
   The -REMOVE qualifier is incompatible with other qualifiers.

   CAUTION:  Using  CRITICAL-REMOVE   when   the   write   owner   of   a
   critical section is  an  active  GT.M  process  may  cause  structural
   database damage.

-SEIZE
  -S[EIZE]
   Seizes  the  critical  section  if  the  section  is  available.   The
   -SEIZE qualifier is incompatible with other qualifiers.

1 DUMP
  D[UMP]
   The DUMP command displays blocks, records or  file  headers.  DUMP  serves
   as one of the primary DSE examination commands.  Use  the  error  messages
   reported by MUPIP INTEG to determine what to DUMP  and  examine  from  the
   database. DUMP also transfers records to  a  sequential  file  for  future
   study and/or for input to MUPIP LOAD.

   The  DUMP  command  requires  specification  of  either  -BLOCK,  -HEADER,
   -RECORD or  -FILEHEADER.

2 Qualifiers
-BLOCK
  -B[LOCK]=block_number
   Specifies the  starting  block  of  the  dump.  The  -BLOCK  qualifier
   is incompatible with the -FILEHEADER qualifier.

   On commands with  no  -BLOCK=  qualifier,  DSE  uses  the  last  block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed, .i.e.,  on  the  first  block  oriented  command,  DSE  uses
   block one (1).

   Example:

   DSE> dump -block=2

   Block 2   Size 1B   Level 0   TN 2
   Rec:1  Blk 2  Off 7  Size A  Cmpc 0  Ptr 8  Key ^a
         7 : |  A  0  0 61  0  0  8  0  0  0
              |  .  .  .  a  .  .  .  .  .  .

   Rec:2  Blk 2  Off 11  Size A  Cmpc 0  Ptr B  Key ^b
         11 : |  A  0  0 62  0  0  B  0  0  0
              |  .  .  .  b  .  .  .  .  .  .


-COUNT
  -C[OUNT]=count
   Specifies the  number  of  block  headers  or  records  to  DUMP.  The
   -COUNT qualifier is incompatible with the -FILEHEADER qualifier.

-FILEHEADER
  -F[ILEHEADER]
   Dumps  file  header  information.   The   -FILEHEADER   qualifier   is
   incompatible with all other qualifiers.

-GLO
  -G[LO]
   Dumps  the  specified  record  or  blocks  into  the  current   output
   file  in  Global  Output  (GO)   format.   The   -GLO   qualifier   is
   incompatible with the -HEADER and -FILEHEADER qualifiers.

-HEADER
  -[NO]H[EADER]
   Specifies whether the dump of  the  specified  blocks  or  records  is
   restricted  to,  or  excludes,  headers.  The  -HEADER  qualifier   is
   incompatible with the -GLO and -FILEHEADER qualifiers.

   By default, DUMP displays all information in a block or record.

-OFFSET
  -O[FFSET]=offset
   Specifies the offset of the starting  record  for  the  dump.  If  the
   offset does not point  to  the  beginning  of  a  record,  DSE  rounds
   down to the  last  valid  record  start  (e.g.,  DUMP  -OFF=10  starts
   at -OFF=A if that was the  last  record).  The  -OFFSET  qualifier  is
   incompatible with the -RECORD and  -FILEHEADER qualifiers.

-RECORD
  -R[ECORD]=record_number
   Specifies the record number  of  the  starting  record  of  the  dump.
   The  -RECORD  qualifier  is  incompatible   with   the   -OFFSET   and
   -FILEHEADER qualifiers.

1 EVALUATE
  EV[ALUATE]
   The  EVALUATE  command  displays  a  number  in   both   hexadecimal   and
   decimal. Use it to translate a hexadecimal  number  to  decimal  and  vice
   versa. The -DECIMAL and -HEXADECIMAL qualifiers  specify  the  input  base
   for  the number.

   The format of the EVALUATE command is:

   EV[ALUATE]               -D[ECIMAL]
          -H[EXADECIMAL]
          -N[UMBER]=number

   The -NUMBER qualifier is required.

   By default, EVALUATE treats the number as having a hexadecimal base.

2 Qualifiers
-DECIMAL
  -D[ECIMAL]
   Specifies that the input number  has  a  decimal  base.  The  -DECIMAL
   qualifier is incompatible with the -HEXADECIMAL qualifier

-HEXADECIMAL
  -H[EXADECIMAL]
   Specifies  that  the  input  number  has  a  hexadecimal   base.   The
   -HEXADECIMAL   qualifier   is   incompatible   with    the    -DECIMAL
   qualifier.

-NUMBER
  -N[UMBER]=number
   Specifies the number to evaluate. This qualifier is required.

   Example:

   DSE> evaluate-number=61

     Hex:  61   Dec:  97


1 EXIT
  EX[IT]
   The EXIT command ends a DSE session.

   The format of the EXIT command is:

   EX[IT]

   The EXIT command has no qualifiers.

1 FIND
  F[IND]
   The FIND  command  directs  DSE  to  a  given  block  or  region.  At  the
   beginning of a DSE session, use the FIND -REGION  command  to  select  the
   target region.

   The FIND command, except  with  the  -FREEBLOCK  and  -REGION  qualifiers,
   uses the index  tree  to  locate  blocks.  FIND  can  locate  blocks  only
   within  the  index  tree  structure.  If   you   need   to   locate   keys
   independent of their attachment to the tree, use the RANGE command.

2 Qualifiers
-BLOCK
  -B[LOCK]=block_number
   Specifies   the   block   to   find.   The   -BLOCK    qualifier    is
   incompatible with the -KEY and -REGION qualifiers.

   On commands with  no  -BLOCK=  qualifier,  DSE  uses  the  last  block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed, .i.e.,  on  the  first  block  oriented  command,  DSE  uses
   block one (1).

-EXHAUSTIVE
  -E[XHAUSTIVE]
   Instructs  DSE  to  search  the  entire  index   structure   for   the
   desired path or siblings.  FIND  -EXHAUSTIVE  is  useful  in  locating
   blocks  that  are  in  the  tree  but  not  indexed   correctly.   The
   -EXHAUSTIVE  qualifier  is  incompatible  with  the  -FREEBLOCK,  -KEY
   and -REGION qualifiers.

-FREEBLOCK
  -F[REEBLOCK]
   Finds the  nearest  free  block  to  the  block  specified  by  -HINT.
   The   -FREEBLOCK   qualifier   is   incompatible   with   all    other
   qualifiers  except  -BLOCK  and  -HINT.   The   -HINT   qualifier   is
   required with the -FREEBLOCK qualifier.

-HINT
  -H[INT]=block_number
   Designates the starting  point  of  a  -FREEBLOCK  search.  The  -HINT
   qualifier  can  be  used  only  in  conjunction  with  the  -FREEBLOCK
   qualifier.

-KEY
  -K[EY]=key
   Searches  the  database  for  the  block  containing   the   specified
   key.  Enclose  a  MUMPS  style  key   in   quotes   ("").   The   -KEY
   qualifier is incompatible with all other qualifiers.

-REGION
  -R[EGION][=region]
   Switches  to  the  named  Global   Directory   region.   The   -REGION
   qualifier is incompatible with all other qualifiers.

   -REGION  without  a  specified  region,  or  -REGION=*,  displays  all
   existing regions in the database.

-SIBLINGS
  -S[IBLINGS]
   Displays  the  block  numbers  of  the   logical   siblings   of   the
   specified  block.  The  logical   siblings   are   the   blocks   that
   logically exist to the right and  left  of  the  given  block  in  the
   database tree  structure.  The  -SIBLINGS  qualifier  is  incompatible
   with the -FREEBLOCK, -KEY and -REGION qualifiers.

1 HELP
  H[ELP]
   The HELP command explains DSE commands. The format  of  the  HELP  command
   is:

   H[ELP] [item]

   Item tells HELP which  information  to  display.  Enter  the  DSE  command
   (item) after the HELP command or at the  Topic  prompt.  Use  <RETURN>  or
   <CTRL Z> to return to the DSE prompt.

1 INTEGRIT
  I[NTEGRIT]
   The INTEGRIT command checks  the  internal  consistency  of  a  non-bitmap
   block. INTEG reports errors in hexadecimal notation.

   The format of the INTEGRIT command is:

   I[NTEGRIT] -B[LOCK]=block_number

2 Qualifiers
-BLOCK
  -B[LOCK]=block_number
   Specifies the block for DSE to check.

   On commands with  no  -BLOCK=  qualifier,  DSE  uses  the  last  block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed, .i.e.,  on  the  first  block  oriented  command,  DSE  uses
   block one (1).

1 MAPS
  M[APS]
   The MAPS command examines or updates bit maps.

   MAPS  forces  blocks  either  -BUSY  or  -FREE.  The   -MASTER   qualifier
   reflects the current status of a  local  bit  map  back  into  the  master
   map. The -RESTORE qualifier rebuilds all maps  and  should  be  used  with
   a great deal of caution as it can destroy important information.

   By default, MAPS shows the  status  of  the  bit  map  for  the  specified
   block.

2 Qualifiers
-BLOCK
  -BL[OCK]=block_number
   Specifies  the  target  block  for  MAPS.  The  -BLOCK  qualifier   is
   incompatible with the -RESTORE_ALL qualifier.

   On commands with  no  -BLOCK=  qualifier,  DSE  uses  the  last  block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed,  .i.e.,  on  the  first  block-oriented  command,  DSE  uses
   block one (1).

-BUSY
  -BU[SY]
   Marks  the  current  block  busy  in  the  block's   local   map   and
   appropriately updates the master  bit  map.  The  -BUSY  qualifier  is
   incompatible with all qualifiers except -BLOCK.

-FREE
  -F[REE]
   Marks  the  current  block  free  in  the  block's   local   map   and
   appropriately updates the master  bit  map.  The  -FREE  qualifier  is
   incompatible with all qualifiers except -BLOCK.

-MASTER
  -M[ASTER]
   Sets the master bit  map  bit  associated  with  the  current  block's
   local map according  to  whether  that  local  map  is  full  or  not.
   The -MASTER qualifier  is  incompatible  with  all  qualifiers  except
   -BLOCK.

-RESTORE_ALL
  -R[ESTORE_ALL]
   Sets all local bit  maps  and  the  master  bit  map  to  reflect  the
   blocks used  in  the  database  file.  Use  RESTORE_ALL  only  if  the
   database contents are known to be  correct,  but  a  large  number  of
   the  bit  maps  require  correction.  The  -RESTORE_ALL  qualifier  is
   incompatible with all other qualifiers.

1 OPEN
  OP[EN]
   The OPEN command opens a file for sequential  output  of  global  variable
   data. OPEN a file to which you want to "dump" information.

   The format of the OPEN command is:

   OP[EN] -F[ILE]=file

   If an OPEN command does not  have  a  -FILE  qualifier,  DSE  reports  the
   name of the current output file.

2 Qualifiers
-F[ILE]
  -F[ILE]=file
   Specifies the file to open.

1 OVERWRITE
  OV[ERWRITE]
   The OVERWRITE command overwrites  the  specified  string  onto  the  given
   offset  in  the  current  block.  Use  extreme  caution  when  using  this
   command.

   The format of the OVERWRITE command is:

   OV[ERWRITE]              -D[ATA]=string
          -O[FFSET]=offset

2 Qualifiers
-D[ATA]
  -D[ATA]=string
   Specifies the data  to  be  written.  Use  quotes  around  string  and
   escape  codes  of  the  form  \a  or  \ab,   where   a   and   b   are
   hexadecimal  digits,  for  non-printing  characters.   \\   translates
   to a single backslash.

-O[FFSET]
  -O[FFSET]=offset
   Specifies  the  offset  in  the  current  block  where  the  overwrite
   should begin.

1 PAGE
  P[AGE]
   The PAGE command sends one form feed to the output  device.  Use  PAGE  to
   add form feeds to  a  dump  file,  making  the  hardcopy  file  easier  to
   read. If you plan to use the  dump  file  with  MUPIP  LOAD,  do  not  use
   PAGE.

   The format of the PAGE command is:

   P[AGE]

   The PAGE command has no qualifiers.

1 RANGE
  RA[NGE]
   The RANGE command finds  all  blocks  in  the  database  whose  first  key
   falls in the specified range  of  keys.  The  RANGE  command  may  take  a
   very long time unless the range  specified  by  -FROM  and  -TO  is  close
   together. Use FIND -KEY first to determine  whether  the  key  appears  in
   the tree.

   The format of the RANGE command is:

   RA[NGE]          -F[ROM]=block
        -T[O]=block
        -L[OWER]=key
        -U[PPER]=key

2 Qualifiers
-FROM
  -F[ROM]=block_number
   Specifies a starting block number for the range search.

   By  default,  RANGE  starts  processing  at  the  beginning   of   the
   file.

-TO
  -T[O]=block_number
   Specifies an ending block number for the range search.

   By default, RANGE stops processing at the end of the file.

-LOWER
  -L[OWER]=key
   Specifies the lower bound for the key range.

-UPPER
  -U[PPER]=key
   Specifies the upper bound for the key range.

1 REMOVE
  REM[OVE]
   The REMOVE command removes one or more records or a save buffer.

   The format of the REMOVE command is:

   REM[OVE]         -B[LOCK]=block_number
          -C[OUNT]=count
          -O[FFSET]
          -R[ECORD]=record_number
          -V[ERSION]=version_number

   The version number is specified in decimal.

2 Qualifiers
-BLOCK
  -B[LOCK]=block_number
   Specifies the  block  associated  with  the  record  or  buffer  being
   deleted.

   On commands with  no  -BLOCK=  qualifier,  DSE  uses  the  last  block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed, that is, on  the  first  block-oriented  command,  DSE  uses
   block one (1).

-COUNT
  -C[OUNT]=count
   Specifies the number  of  records  to  remove.  The  -COUNT  qualifier
   is incompatible with the -VERSION qualifier.

   By default, REMOVE deletes a single record.

-OFFSET
  -O[FFSET]=offset
   Specifies  the  offset  of  the  record   to   remove.   The   -OFFSET
   qualifier   is   incompatible   with   the   -RECORD   and    -VERSION
   qualifiers.

-RECORD
  -R[ECORD]=record_number
   Specifies the record number of  the  record  to  remove.  The  -RECORD
   qualifier   is   incompatible   with   the   -OFFSET   and    -VERSION
   qualifiers.

-VERSION
  -V[ERSION]=version_number
   Specifies  the  decimal  version  number  in  decimal  of   the   save
   buffer to remove. -VERSION  is  required  to  REMOVE  a  SAVE  buffer.
   -VERSION is incompatible with all qualifiers except -BLOCK.

1 RESTORE
  RES[TORE]
   The RESTORE command restores saved versions of blocks.

   The format of the RESTORE command is:

   RES[TORE]        -B[LOCK]=block_number
          -F[ROM]=from
          -R[EGION]=region
          -V[ERSION]=version_number

   The version number is specified in decimal.

2 Qualifiers
-BLOCK
  -B[LOCK]=block_number
   Specifies the block to restore.

   On commands with  no  -BLOCK=  qualifier,  DSE  uses  the  last  block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed, .i.e.,  on  the  first  block  oriented  command,  DSE  uses
   block one (1).

-FROM
  -F[ROM]=block_number
   Specifies the block number of the save buffer to restore.

   By  default,  RESTORE  uses  the  target  block  number  as  the  SAVE
   block number.

-REGION
  -R[EGION]=region_number
   Specifies the region of the saved buffer to restore.

   By default, RESTORE uses SAVE buffers from the current region.

-VERSION
  -V[ERSION]=version_number
   Specifies  the  decimal  version  number  of  the  block  to  restore.
   The version number is required.

1 SAVE
  SA[VE]
   The SAVE command saves  versions  of  blocks  or  displays  a  listing  of
   saved versions. Saved information is lost when DSE  EXITs.  Use  with  the
   RESTORE command  to  move  blocks.  As  a  safety  feature,  use  SAVE  to
   retain fallback copies of database blocks before changing them.

   The format of the SAVE command is:

   SA[VE]           -B[LOCK]=block_number
        -C[OMMENT]=string
        -L[IST]

2 Qualifiers
-BLOCK
  -B[LOCK]=block_number
   Specifies the block to save.

   On commands with  no  -BLOCK=  qualifier,  DSE  uses  the  last  block
   handled by a DSE operation. In this  case,  when  no  block  has  been
   accessed,  .i.e.,  on  the  first  block-oriented  command,  DSE  uses
   block one (1).

-COMMENT
  -C[OMMENT]=string
   Specifies a comment to save with  the  block.  Enclose  the    comment
   in quotes ("").  The  -COMMENT  qualifier  is  incompatible  with  the
   -LIST qualifier.

-LIST
  -L[IST]
   Lists saved versions of  specified  blocks.  The  -LIST  qualifier  is
   incompatible with the -COMMENT qualifier.

   By default, SAVE -LIST provides a directory of all SAVEd blocks.

1 SHIFT
  SH[IFT]
   The SHIFT command shifts data in a block, filling  the  block  with  zeros
   or shortening the block. The format of the SHIFT command is:

   SH[IFT]          -B[ACKWARD]=shift
        -F[ORWARD]=shift
        -O[FFSET]=offset

2 Qualifiers
-BACKWARD
  -B[ACKWARD]=shift
   Specifies  the  extent  to  which  DSE  should  shift  data  backwards
   towards   the   block   header.    The    -BACKWARD    qualifier    is
   incompatible with the -FORWARD qualifier.

-FORWARD
  -F[ORWARD]=shift
   Specifies  the  extent  to  which  DSE  should  shift   data   forward
   towards  the  end  of   the   block.   The   -FORWARD   qualifier   is
   incompatible with the -BACKWARD qualifier.

-OFFSET
  -O[FFSET]=offset
   Specifies  the  starting  offset  of  the  portion  of  the  block  to
   shift.

1 SPAWN
  SP[AWN]
   The  SPAWN  command  forks  a  child  process  for  access  to  the  shell
   without terminating the current DSE environment.  Use  the  SPAWN  command
   to suspend a  session  and  issue  shell  commands  such  as  MUPIP  INTEG
   -REGION or GDE. The SPAWN  command  leaves  your  terminal  at  the  input
   prompt of the shell of the spawned process.

   The format of the SPAWN command is:

   SP[AWN] [command]

   The SPAWN command has no qualifiers.

1 WCINIT
  W[CINIT]
   The WCINIT  command  reinitializes  the  global  buffers  of  the  current
   region. Because it cleans out  the  cache,  WCINIT  is  a  very  dangerous
   command  and  therefore  should  not  be  used  except   under   Greystone
   supervision.

   WARNING: A WCINIT command issued  while  normal  database  operations  are
   in progress can cause catastrophic damage to the database.

   The format of the WCINIT command is:

   W[CINIT]

   The WCINIT command has no qualifiers.

   When  you  issue  the  WCINIT  command,  DSE  issues   the   CONFIRMATION:
   prompt. You must verify the WCINIT command by responding with a "YES."

   If you do not confirm the WCINIT, DSE issues the message:

   No action taken, enter  yes  at  the  CONFIRMATION  prompt  to  initialize
   global buffers.


