Sun Mainframe Batch Manager Software, Release 10.0.0
Updated User Documentation

This file contains updates to the user documentation
released with MBM 10.0.0. If there are no documentation
updates for a patch release, it is so noted.

--------------------------------
MBM 10.0.0p10   -  113826-10
--------------------------------
Important Operating Information
-------------------------------

You must not alter the flow of a job's execution by using shell commands in 
setup files or job streams (for example, cd /tmp/myfiles). Doing so can cause 
unpredictable behavior.

Sun MBM for Solaris(tm) platforms is only supported on hardware systems with 
UltraSPARC(r) processor technology.

If you are also using Sun MTP, you must upgrade to Sun MTP 8.0.0 patch 9.

Fixes
-----

1. Support for the IEBGENER utility has been enhanced (BugId 5013235). The
   following documentation replaces the existing documentation for the IEBGENER
   utility in the Sun MBM Migration Guide.
   
   IEBGENER Utility

   Sun MBM supports the file copy and file reblock functions of the IEBGENER 
   utility for single or multiple outputs. Multiple outputs can have a mix of 
   copy and reblocked files. Reblocking refers to creating output fixed- 
   length records with a different record size from that specified for the 
   input (SYSUT1) file.
   
   The SYSUT1 input file can consist of a single file, or multiple concatenated
   files. To reblock data from SYSUT1 to SYSUTn, the following requirements 
   must be met:

    - SYSUT1 must be a fixed-length record format file.
    - If SYSUT1 is concatenated, each file should specify the same record
      size. If there are different record sizes specified for any of the 
      concatenated SYSUT1 files, the last one encountered will be applied.
    - Both SYSUT1 and SYSUTn must have a record size and record format
      specified on their corresponding ASSGNDD macro statements.
    - There must be a SYSUT1 and a SYSUT2 file defined.

   If any of the requirements are not met, the IEBGENER utility defaults to a 
   file copy of SYSUT1 to SYSUTn.

   The record size and record format information can be provided in one of 
   the following ways: 
   
     - Use a Sun MBM translator to translate the original mainframe JCL 
       statements that contain the LRECL and RECFM=F (or FB) parameters.  
     - Supply an attributes file name in the fifth field of the File_Map for the
       file entry, and then use a Sun MBM translator to translate the original 
       mainframe JCL.  
     - Manually update the ASSGNDD macro to include the recsize and recfmt 
       parameters.

   The following describes the actions taken based on the input and output 
   record sizes:

     - If the input record size is less than the output record size, the input 
       record is copied to the output record, left to right, with blank fill.

     - If the input record size is greater than the output record size, the 
       input record is copied to the output record, left to right until the 
       output record size is reached. This results in the input data being 
       truncated.
       
     - If the input record size is equal to the output record size, the input
       file is copied to the output file.

   Example 1: This example results in SYSUT1 being reblocked to SYSUT2 with two 
   spaces padded to the right end of each SYSUT2 record.

   ASSGNDD ddname='SYSUT1' dataset='IN1' filename='\$SEQDATA/input5.record' \\\
     disp='i-o' recsize='5' recfmt='F'
   ASSGNDD ddname='SYSUT2' dataset='IN2' filename='\$SEQDATA/gener.out2' \\\
     disp='i-o' recsize='7' recfmt='F'
   EXECPGM pgmname='IEBGENER' stepname='STEP01'

   Example 2: This example results in SYSUT1 being copied to SYSUT2 because
   SYSUT1 does not have both the record size (recsize) and record format 
   (recfmt) parameters specified.

   ASSGNDD ddname='SYSUT1' dataset='IN1' filename='\$SEQDATA/input5.record' \\\
     disp='i-o' recsize='5'
   ASSGNDD ddname='SYSUT2' dataset='IN2' filename='\$SEQDATA/gener.out2' \\\
     disp='i-o' recsize='7' recfmt='F'
   EXECPGM pgmname='IEBGENER' stepname='STEP01'

   Example 3: This example results in SYSUT1 being reblocked to SYSUT2 with 
   the last three characters of each SYSUT1 record being truncated from the 
   SYSUT2 output record.

   ASSGNDD ddname='SYSUT1' dataset='IN1' filename='\$SEQDATA/input5.record' \\\
     disp='i-o' recsize='10' recfmt='F'
   ASSGNDD ddname='SYSUT2' dataset='IN2' filename='\$SEQDATA/gener.out2' \\\
     disp='i-o' recsize='7' recfmt='F'
   EXECPGM pgmname='IEBGENER' stepname='STEP01'

   Example 4: This example results in SYSUT1 being reblocked to SYSUT2 and 
   SYSUT1 being copied to SYSUT3 because SYSUT3 does not include both record
   size and record format information.

   ASSGNDD ddname='SYSUT1' dataset='IN1' filename='\$SEQDATA/input5.record' \\\
     disp='i-o' recsize='10' recfmt='F'
   ASSGNDD ddname='SYSUT2' dataset='OUT2' filename='\$SEQDATA/gener.out2' \\\
     disp='i-o' recsize='7' recfmt='F'
   ASSGNDD ddname='SYSUT3' dataset='OUT3' filename='\$SEQDATA/gener.out3' \\\
     disp='i-o'
   EXECPGM pgmname='IEBGENER' stepname='STEP01'

   Example 5: This example shows a concatenated SYSUT1 file being reblocked 
   into a single SYSUT2 file with 2 blank spaces padded to the end of each 
   SYSUT2 record.

   ASSGNDD ddname='SYSUT1' dataset='IN1' filename='\$FMROOT/input5.record' \\\
   disp='i-o' recsize='5' recfmt='F'
   ASSGNDD                 dataset='INX' filename='\$FMROOT/input5.record2' \\\
   disp='i-o' recsize='5' recfmt='F'
   ASSGNDD ddname='SYSUT2' dataset='IN2' filename='\$FMROOT/in2' disp='i-o' \\\
   recsize='7' recfmt='F'
   EXECPGM pgmname='IEBGENER' stepname='STEP01'

   
   The following new messages are associated with this enhancement.

   MA2565 (I) Reblock completed Input: %s
   MA2566 (I)                   Output: %s
   
     Description: These messages are displayed together and indicate that
     Sun MBM has completed the reblocking process. The names of the input 
     and output files are displayed.
     
     Solution: Informational message; no user action is needed.
     
   MA2567 (S) No equal sign found in envp entry %s

     Description: This message is generated if an improperly formatted entry 
     for SYSUTn is found in the system environment list. The proper format is
     SYSUTn=xxxx. This might be a temporary situation with your environment.

     Solution: Try running the job again. If the error persists, use the 
     pre_exec_pgm utility to display the current environment (env | sort),
     and verify if the SYSUTn variable is properly formatted. Contact your
     authorized service provider if you cannot resolve the problem yourself.

2. A fix to BugId 5003978 corrects the problem of blanks being stripped from
   SyncSort control statements. A new error message was part of this fix.
   
   MA2564 (S) ERROR %s exceeds the internal limit of %d characters
   
     Description: This error occurs when a string that includes environment 
     variables is being expanded, and the expanded string exceeds the size 
     of the internal buffer. The %s variable is the internal string pointer 
     name whose size limits were exceeded. The %d variable is the maximum
     string size.

     Solution: Provide this information to your authorized service provider.

3. Sun MBM now supports the USER and PASSWORD parameters on the JCL JOB card.
   The translators (mvstrans and dostrans) generate username and password
   parameters on the BEGINJOB macro.
   
   Original JCL:
   
     //TSTJOB  JOB ,,USER=johnj,PASSWORD=cx4tn8
     
   Translated macro statement:
   
     BEGINJOB mode='MVS' username='johnj' password='cx4tn8'


4. A debugging enhancement for COBOL has resulted in a change to the 
   documentation (BugId 4903807).
   
   The subjob and unikixjob commands both support the -DCOBOL option, which
   generates a runtime debug file for every COBOL step executed in the job.
   Now, pstack dump information will also be written to the job's history file 
   if there is a COBOL application abend.
.
5. Sun MBM now properly manages datasets defined in MVS JCL as 
   DD DISP=(...,PASS,...). The mvstrans translator now translates statements
   of this form to normal=p in the ASSGNDD macro. (BugId 4993830)

   If the subsystem is configured for mainframe compatibility, passed datasets 
   are deleted at the end of the job, unless the normal disposition is 
   overridden in a subsequent step.

   To configure the subsystem for DISP=PASS mainframe compatibility, add the
   following environment variable to the subsystem's user setup file 
   ($USER_SETUP):
   
   setenv EBM_DISP_PASS MAINFRAME

Known Problem
-------------

Jobs that are internally generated and submitted by either PPF (using
XSUBMIT/XWAIT) or IEBEDIT (using the writer='INTRDR' JCL feature) might 
not get submitted to the Sun MBM subsystem if the character length of the 
generated job submission path exceeds 64 characters. (BugId 5048637) 

   Workaround: Use the /tmp directory as the user's Sun MBM working directory.
   If this does not solve the problem, contact your authorized service
   provider for assistance.



--------------------------------
MBM 10.0.0p9   -  113826-09
--------------------------------
None

--------------------------------
MBM 10.0.0p8   -  113826-08
--------------------------------
1. The ONRETCODE macro was incompletely documented in the Sun MBM Reference
   Guide. The correct documentation follows. Note that the following 
   documentation also includes the poverride and stepname options that were
   added in the Sun MBM 10.0.0 patch 4 release. (BugId 4948425)
   
   ONRETCODE
   
   Defines an action to perform based on the return code issued by a subsequent
   step.
   
   Format
   
   ONRETCODE [MAXRC | LASTRC | <stepname> | <stepname.procstepname>] 
   <comparator> <integer> [<operator> <comparator> <integer>]
   {BYPASS | CONTINUE | GOTO { <label-name> | END_JOB}}
   [scope={JOB | STEP}] [verbose] 
   [poverride='y' stepname='<stepname>']

   where:
   
   MAXRC (MVS JCL)
   The highest return code from any previously executed step.
   
   LASTRC (VSE JCL)
   The return code from the last step executed before the currently executing 
   step.

   <stepname> (MVS JCL)
   Identifies a previous job step that issued the return code to be tested. If 
   the specified step is in a procedure, this step must in the same procedure. 
   Otherwise, the specified step must have been a job step, not in a procedure.
   The specified step must have executed a program (EXECPGM macro) and not
   invoked a procedure (EXECPROC macro).
 
   <stepname.procstepname> (MVS JCL)
   Identifies a step in a procedure called by an earlier job step. <stepname> 
   identifies the name of the calling job step; <procstepname> identifies the 
   procedure step that issued the return code to be tested. The step identified
   by <procstepname> must contain an EXECPGM macro, not invoke a procedure.

   Note - If either the <stepname> or <stepname.procstepname> option is omitted,
   the code is compared to the return codes from all previous steps. If the 
   return code issued by any of those previous steps causes the test condition 
   to be true, the action defined is executed.

   <comparator>
   Type of comparison; upper- or lowercase is allowed. This entry is required 
   and is a positional parameter.
   
    EQ: Equal
    NE: Not equal
    GT: Greater than
    LT: Less than
    GE: Greater than or equal
    LE: Less than or equal

   <integer>
   Decimal integer to which to compare the return code; value is 0 to 4095. 
   Required entry.

   <operator>
   A logical operator specifying to test two conditions. This is a positional 
   parameter and is required only when you specify more than one comparator 
   integer.

    AND: Both conditions must be true to take the defined action.
    OR: If either condition is true, perform the defined action.
    
   BYPASS (MVS JCL)
   If the condition is true, bypass the current step.

   CONTINUE
   If the comparison is true, execution resumes at the next statement in the 
   job.

   GOTO
   One of the following:

    <label-name>: Defines a point in the job or procedure where execution is 
    to resume, which is a name specified on the LABEL macro. You must define a 
    <label-name> at the same job control level. If coded in a job, <label-name>
    must be defined within the same job. If coded on a procedure, it must be 
    a <label-name> defined within that procedure.

    END_JOB:If the comparison is true, the job abends and Sun MBM issues a job 
    abort message.

   scope= (MVS JCL)
   Defines the scope of the return code directive.
   
    JOB: Test and action apply to all subsequent steps. The default.
    STEP: Test and action apply only to the current step.

   verbose
   Executes the macro in verbose mode. Environment variable values and other 
   informational messages are written to the job history file.

   poverride='y' (MVS JCL)
   Indicates that this is a procedure override. If this option is not followed 
   by the stepname= option, the condition override is in place for the entire
   procedure.

   stepname='<stepname>' (MVS JCL)
   Indicates that this condition overrides the condition code for the specified
   step in the next called procedure. This option must be preceded by the 
   poverride='y' option.

   For VSE batch jobs, Sun MBM dynamically executes the default directive 
   ONRETCODE GE 16 GOTO END_JOB at the beginning of the job. This can be 
   overridden with an explicit ONRETCODE statement.
   
   The ONRETCODE macro with the scope=JOB parameter sets a global condition. 
   When set, it remains in effect through all called procedures, unless 
   overridden by a called procedure. If overridden in a procedure, the override
   is valid only in that procedure and any procedures it executes. A higher 
   level procedure or a job does not inherit ONRETCODE directives from lower 
   level procedures.
   
   Note - The ONCONDCODE condition is tested before the ONRETCODE condition. 
   If the ONCONDCODE condition is true, the specified action is taken.

   Examples
   
   ONRETCODE controls the flow of job execution based on a step's return code.

      BEGINJOB
      ONRETCODE GE 4 OR LE 8 GOTO PRNTERR 
      EXECPGM   pgmname=PROG001 stepname=STEP0001
      ONRETCODE GT 8 GOTO END_JOB
      EXECPGM   pgmname=PROG002 stepname=STEP0002
      GOTO END_JOB
      LABEL PRNTERR
      EXECPGM   pgmname=PRNTERR stepname=PRNTERR
      GOTO END_JOB
      LABEL ERRHANDLE
      EXECPGM   pgm=ERRHANDLE stepname=ERRHANDLE
      ENDJOB

   ONRETCODE bypasses a specific step.

      BEGINJOB
      LABEL NAME=STEP0001
      ASSGNDD...
      ONRETCODE GE 8 BYPASS
      EXECPGM   pgmname=PGM1 stepname=STEP0001

   The following examples show procedure step overrides.
   ---------------------------------------------------------------------------
      ONRETCODE MAXRC NE 0 BYPASS scope='STEP' poverride='y' stepname='STEP1'
      EXECPROC procname='PNAME' stepname='JSTP'

   ---------------------------------------------------------------------------
      ONCONDCODE NE 0 CONTINUE scope='STEP' poverride='y' stepname='STEP1'
      ONRETCODE MAXRC LT 0 BYPASS scope='STEP' poverride='y' stepname='STEP1'
      EXECPROC procname='PNAME' stepname='JSTP'
   ---------------------------------------------------------------------------

2. A fix to BugId 4766198, resulted in the following BAM screen change:

   The subsystem configuration screen no longer displays the Object Request
   Broker field.
   
   This screen is typically viewed from the Applications & Subsystems menu
   in either of the following ways:
   
   - From the Create menu, select Display Current Subsystem's Configuration.
   - From the Query menu, select Show Subsystem Configuration.


--------------------------------
MBM 10.0.0p7   -  113826-07
--------------------------------
1. When you execute the INSTEBM utility to install a node, a check is now
   performed to ensure that you are using a compatible version of the 
   Solaris(tm) operating system (BugId 4941649). If the version of Solaris is
   earlier than release 8, the following message is displayed:
   
     FATAL - The minimum release supported by MBM is Solaris 8, exiting ...

2. A fix to Sun MTP (BugId 4933341), which prevents unauthorized access to
   VSAM files after a region restart, requires Sun MBM 10.0.0 patch 7
   to function properly. (BugId 4932243)  

3. A fix to BugId 4930646 resulted in three new error messages related to
   startup and shutdown of a node.
   
   OS1065 (I) Unable to perform normal shutdown. Cleaning up...

     Description: BAM is unable to perform a normal shutdown of the Sun MBM 
     node. Therefore, BAM is going to clean up all processes and their
     associated resources.

     Solution: Informational message; no user action is required.

   OS1066 (I) Batch node startup has already been executed

     Description: This message is displayed if the Sun MBM node was 
     running when a system crash occurred, and the user attempts to start 
     the node again. 
     
     Solution: After this message is displayed, you must decide whether to 
     restart the node.
      - If you want to diagnose the problem, type "n". The node will not be
        restarted. 
      - If you want to continue working with Sun MBM, type "y". BAM will 
        clean up all leftover processes and their associated resources, and 
        will restart the node.

   OS1067 (I) Shutdown detected error. Cleaning up...

     Description: The BAM command has detected an error while performing a
     node shutdown (prior messages display the reason for the error). Because
     the BAM command cannot continue with a normal shutdown, it will clean up 
     the node processes and resources.

     Solution: Informational message; no user action is required. 


4. A fix to a problem related to VSAM file access from PL/I batch programs, 
   resulted in the following documentation changes. (BugId 4907109)
   
   The procedure "To Compile a PL/I Program" in Chapter 8 of the Sun MBM 
   Migration Guide has changed. The complete procedure is as follows:
   
   To Compile a PL/I Program
   
   1. Set the subsystem environment using either method:
      - Source batchenv and specify the subsystem name. For example:
      
        $ . $EBMHOME/batchenv plisys
        
      - Follow these steps:
        a. Start the Sun MBM main menu.
        b. Click the Command Prompt icon on the main menu and type the
           subsystem name.
           
    2. If your PL/I program accesses an RDBMS and contains SQL and standard
       PL/I statements, generate a source file by translating the original
       PL/I source using the appropriate RDBMS precompiler options.
       
    3. If your PL/I program accesses Sun MTP VSAM files, ensure that your
       subsystem is configured for VSAM data management.
       
    4. Compile the program using the Liant PL/I compiler. For example:
    
       $ lpiplx prog123.pl1 -ebm -defext
       
       If you performed step 2, the input PL/I source file is the output of
       the RDBMS precompiler. Otherwise, it is the PL/I source.
       
    5. Link the program using the ldpl1 command and specifying the appropriate
       options for your environment. For example:
       
       $ ldpl1 prog123.o -ebm -o prog123.plx
       
       Options you can use on the linker command are:
       
         -ebm: Executes under Sun MBM and uses the Liant file handler
         -ebm -ebmvsam: Executes under Sun MBM and accesses Sun MTP VSAM files
         -ebm -oracle: Executes under Sun MBM and uses Oracle and the Liant
            file handler
         -ebm -ebmvsam -oracle: Executes under Sun MBM and accesses both
            Sun MTP VSAM files and Oracle
         -o <filename.plx>: Output file name with the required .plx extension. 
            If you do not specify the -o option and an output file name, you 
            must rename the executable after it is generated.
            
5. Documentation errata in the Sun MBM Migration Guide, Chapter 2, Mapping 
   Files.

   - The "Supported File Types" section should indicate that GDG files are
     supported in COBOL application environments only.
     
   - In the section "Basename GDGs" (the paragraph starting "GDGs are
     cataloged at the end ..." on page 13 in the PDF version of the document),
     the reference to the $PUBLIC/bin/gdgen shell script is incorrect, since
     the script no longer exists in the product. The sentence should be as
     follows:
     
       The Sun MBM administrator can change this action by setting the
       EBM_NOCATALOG_EMPTY_GDG variable in the subsystem user setup file
       ($USER_SETUP).
       
   - In the section "Updating the File_Map Using the Tool Kit," there is a
     table that describes each of the fields on the update dialog box and
     the valid values. The following descriptions and values are mismatched:
     
      - STREAM is a valid value for the <pli-file-type> entry in the Record
        Properties file.
      - The correct description for GDG Number is: Maximum number of generations 
        (up to 99), shown in brackets, for a basename GDG dataset.
        
6. In the Liant Open PL/I implementation on UNIX, the Liant compiler applies 
   the GLOBALREF attribute to all files declared as SYSPRINT (implicitly or 
   explicitly). The defining instance (GLOBALDEF) is in the PL1 runtime library,
   and the Liant runtime assigns any file named SYSPRINT to stdout even if 
   SYSPRINT has been assigned to a file system file. This results in SYSPRINT 
   output being redirected to the Sun MBM job history file. (BugId 4948973)
   
   Therefore, if your application uses PL/I, you must use the following 
   workaround:
   
   To route SYSPRINT output to an assigned file system file, include one
   GLOBALDEF declaration to your application:
 
      DCL SYSPRINT FILE GLOBALDEF EXTERNAL ('SYSPRINT2');
 
   In other modules linked with the same application define:
 
      DCL SYSPRINT FILE GLOBALREF EXTERNAL ('SYSPRINT2');
 
   This changes the external name SYSPRINT in the object files to SYSPRINT2
   and bypasses the runtime stdout check. The SYSPRINT output will be directed
   to the file by the same name.

7. In a COBOL execution environment, Sun MBM now enables you to cancel a
   job and produce a Micro Focus FaultFinder dump. As a result of this
   enhancement, the procedure to cancel a job, which is described in the
   section "To Cancel an Active Job" in the Sun MBM User's Guide, has changed.
   (BugId 4912216) The new procedure is as follows:
   
   To Cancel an Active Job
   
   1. On the Active Jobs screen, select an active job.
    
   2. Click the Cancel Job button.
    
   3. When the dialog box is displayed, click one of the following buttons:
      - Cancel Job: Aborts the job.
      - Cancel With Dump: If the job is running a COBOL program at the time
        this command is executed, a Micro Focus COBOL dump is generated. Refer
        to the FaultFinder documentation for information about reading the dump.
      - Do Not Cancel: Does not abort the job.
      
      It takes several seconds before the job is cancelled because the job must
      recover all the temporary files and restore all open datasets.
    
   This enhancement also affects the abtjob command. Now, when you run this
   command using the -s step option, a Micro Focus COBOL dump is produced. For 
   example, the following command aborts the COBOL program at the currently 
   running step and produces the dump:
    
     $ abtjob 123 -s step

8. A fix to BugId 4893737, which related to GDG syntax using leading zeros, 
   resulted in the following new error message.
   
   MA2120 (W) Error opening file: %s, errno=%d

     Description: During the concatenation process, an error occurred when 
     attempting to access the specified file. This warning alerts you that 
     the specified file was not found. The concatenation process continues, 
     and a UNIX message is issued.

     Solution: Examine the output of the concatenation process to ensure that 
     the output is expected. If the output is corrupted, investigate your 
     application programs and data files for errors.  


-------------------------------
MBM 10.0.0p6   -  113826-06
--------------------------------
1. A fix to BugId 4781692, which related to the use of Sybase with a non-
   VSAM subsystem, resulted in the following change to the Batch Administration
   Manager (BAM):
   
   When you create a Sybase subsystem that does not access Sun MTP VSAM files,
   BAM now verifies if the DSQUERY environment variable has been set in the
   user's environment or in the Sun MBM $USER_SETUP file. The DSQUERY variable
   identifies the Sybase server name. If $DSQUERY has not been set, BAM prompts
   the user to enter a value for $DSQUERY during the subsystem build process. 
   The DSQUERY variable is set in the subsystem's $USER_SETUP file, making
   it available to all jobs submitted to the subsystem. 

2. The ebmsnap utility has been enhanced to include the following capabilities.
   (BudId 4914645)
   
   - The ebmsnap utility will also execute the Sun MTP kixsnap utility, if the
     Sun MBM environment is associated with a Sun MTP region.
     
   - Two new environment variables allow you to specify whether the contents 
     of certain directories are to be included in the snap shot zip file. 
     Because the contents of these directories can contain sensitive or 
     proprietary information, it is left to your discretion to set one or both 
     of these variables. By including the contents of the directories in the
     zip file, you are implicitly giving your service provider permission to
     view the information.
     
     The variables can be set either on the command line before executing the 
     ebmsnap utility, or they can be set in the subsystem's $USER_SETUP file.
     
     - Set the EBMSNAP_GETISH environment variable to any value to collect 
       the contents of the subsystem's ish ($JCLLIB) and ishp ($PROCLIB) 
       directories.
       
     - Set the EBMSNAP_GETHIST environment variable to any value to collect
       the current day's job history file output, if it is available on the 
       system.  
 
3. As a result of two fixes to the job editor (BugId 4900767 and 4900772), the
   Sun Mainframe Batch Manager Job Editor Supplement document has been
   updated, and is being released with this patch release. This version
   (part number 817-3612-11) replaces the supplement released with patch 5 and
   also replaces the "Using the Job Editor" chapter in the Sun MBM User's Guide. 
   The supplement is located in the docs subdirectory of installation directory.


--------------------------------
MBM 10.0.0p5   -  113826-05
--------------------------------
1. A fix to BugId 4869051, which related to support for concatenated SYSIN
data, resulted in the following new error messages.
       
  MA2560 (S) Invalid arguments to ebmcat.  Should be:  ebmcat <option> <file(s)>
  
    Description: Use of the ebmcat function requires 2 parameters: An option
    parameter and a filename, or file names concatenated together.
    
    Solution: The ebmcat function is an internal Sun MBM function. Therefore, 
    if you receive this message, contact your authorized Sun service provider.

  MA2561 (S) Invalid option to ebmcat. Should be checkfiles or catfiles
  
    Description: The only valid options to the ebmcat function are 'checkfiles'
    or 'catfiles'.
    
    Solution: The ebmcat function is an internal Sun MBM function. Therefore, 
    if you receive this message, contact your authorized Sun service provider.

  MA2562 (S) Error opening file %s.  errno=%d
  
    Description: An attempt was made to open the specified file, but an error
    on the fopen function was returned. The fopen error is the value of errno.
    
    Solution: The errno identifies the Solaris fopen error. Look up the errno 
    to determine why the fopen function failed and take corrective action.

  MA2563 (S) File %s does not have read permissions
  
    Description: The specified file does not have the necessary read 
    permissions for future file I/O. 
     
    Solution: Make sure the appropriate permissions are given to the 
    file at the owner, group, or other level, as required.  

2. Improvements and corrections to the job editor warranted the release of
   a document supplement that replaces the existing "Using the Job Editor"
   chapter in the Sun MBM User's Guide. The supplement is located in the
   docs directory of MBM10.0.0p5 directory. (BugId 4852938)


--------------------------------
MBM 10.0.0p4   -  113826-04
--------------------------------

1. A fix to BugId 4842576, which related to jobs aborting with segmentation
errors when running in validation mode, resulted in two new error messages.
   
     MA2558(I) User utility found in validation mode : %s

       Description: This message informs the job submitter that
       the specified user utility was located while running the job in
       validation mode.

       Solution: No action is required.

     MA2559(I) User utility not found in validation mode : %s

       Description: This message informs the job submitter that the
       specified user utility was not located while running the job in
       validation mode.

       Solution: Verify the location of the utility and ensure that the
       directory is in the PATH variable before executing the job in 
       normal mode.
       
2. A fix to BugId 4813594, which related to the ASSGNDD macro, resulted in 
the following addition to the documentation for the ASSGNDD macro.

     By default, the ASSGNDD disp='o' option erases the output file if it
     exists, and the job continues. To prevent the erasing or overwriting 
     of an existing output file, and to abort the job, you must set the 
     OUTPUT_FILE_EXISTS variable to ABEND in one of the job setup files 
     or in the subsystem's user setup file. The combination of the
     OUTPUT_FILE_EXISTS variable and the disp='o' option causes the 
     job to abend if the output file exists, thus preventing corruption 
     of the file.
     
3. A new error message has been added and several other messages have
been changed relating to support for the DCB parameter of the MVS JCL
DD statement. Note that Sun MBM does not currently support the DCB 
parameter. (BugId 4820779)

   New message:
   
   MV0690(W) DSNAME(%s) parameter of DCB is not supported in this version. 

     Description: This message indicates that the DCB parameter is not
     supported. The %s variable is the dataset name that is coded in the 
     DCB parameter.
     
     Solution: No action is required. However, you might want to examine
     the JCL to determine if the DD statement should be coded differently.


4. The following error messages were changed to reflect that the translation
of special characters has been changed from underscores (_) to /xHH,
where HH is the hexadecimal representation of the ASCII character.
   
   MV0535(I) Line=#%3.3d. Value of symbolic parameter %s of %s has [%s]
   characters replaced by '/xHH'.
   
   MV0536(I) Line=#%3.3d. Value of symbolic parameter %s of %s has [%s]
   characters replaced by '/xHH'. 
   
   MV0537(I) Line=#%3.3d. Value of symbolic parameter %s of %s has [%s]
   characters replaced by '/xHH'.
   
   The description and solution is the same for all three messages:
        
     Description: The mvstrans translator converted the %s characters of 
     the %s symbolic parameter for the %s statement on line %3.3d to 
     /xHH in preparation for execution in the Sun MBM environment. 
     
     Solution: Informational message; no user action is needed.
     

5. Sun MBM 10.0.0 has been qualified with Oracle 9.2 and the Oracle 32-bit
client libraries. If Oracle 9.2 is not installed with 32-bit client libraries,
the Oracle 9.2 installation default is 64-bit client libraries. Using the
Oracle 64-bit client libraries with Sun MBM will cause unpredictable results
when creating the Sun MBM subsystem binaries. (BugId 4838894)

6. Sun MBM now supports procedure step condition overrides on the MVS JCL 
EXEC statement. To enable this support, the ONRETCODE and ONCONDCODE macros
have two new parameters, which must appear as the last two parameters in the 
macro statement. Note that the poverride parameter must precede the stepname 
parameter. (BugId 4829266)

   poverride='y' - Indicates that this is a procedure override.
   
   stepname='<stepname>' - Indicates that this condition overrides the
     condition code for the specified stepname in the next called
     procedure.
      
   Example 1 - The following MVS JCL EXEC statement:
   
     //JSTP EXEC PNAME,COND.STEP1=(0,NE)
      
   is translated to the following macro statement:
   
     ONRETCODE MAXRC NE 0 BYPASS scope='STEP' poverride='y' stepname='STEP1'
     EXECPROC procname='PNAME' stepname='JSTP'
     
   Example 2 - The following MVS JCL EXEC statement:
   
     //JSTP EXEC PNAME,COND.STEP1=((0,GT),EVEN)
     
   is translated to the following macro statement:
   
     ONCONDCODE NE 0 CONTINUE scope='STEP' poverride='y' stepname='STEP1'  
     ONRETCODE MAXRC LT 0 BYPASS scope='STEP' poverride='y' stepname='STEP1' 
     EXECPROC procname='PNAME' stepname='JSTP'


--------------------------------
MBM 10.0.0p3   -  113826-03
--------------------------------
None


--------------------------------
MBM 10.0.0p2   -  113826-02
--------------------------------

1. Enhancements to the way Sun MBM extracts the current step name resulted
   in the following new error messages. (BugId 4775843)
   
   MA2113(S) System exec failed %d,  status %d
   %s 

     Description: A system fork to start the specified executable failed 
     with the specified system return and errno.

     Solution: Ask your Solaris system administrator to evaluate the return 
     values to determine why the fork failed.

   MA2114(S) System exec failed %d : signal %d
   :%s

     Description: A system fork to start the specified executable failed 
     with the specified system return and signal number.

     Solution: Ask your Solaris system administrator to evaluate the return 
     values to determine why the fork failed.

   MA2115(S) Unable to retrieve current step name
 
     Description: An internal error occurred.

     Solution: Contact your authorized Sun service provider.
     
2. A fix in the REPRO processing logic resulted in a new error message. 
   (BugId 4767735)

   MA2116(S) DD_SYSIN is not assigned
   
   Description: IDCAMS identifies the command to be executed based on the 
   file defined by the variable DD_SYSIN. 

   Solution: Define the IDCAMS command(s) to be executed in a file. Use the
   ASSGNDD macro to associate the ddname SYSIN with the name of the file. 
   Resubmit the job. 

3. EXECPROC did not have a check for calling itself recursively (BugId 4783512). 
   The fix to this bug resulted in a new error message:

   MA3091(S) ERROR   Cannot execute a procedure recursively

   Description: This message is generated when an EXECPROC tries to call 
   itself.
   
   Solution: Verify that the procedure being executed has not been invoked 
   recursively. If the procedure is correctly written, contact your 
   authorized Sun service provider.
   
4. Fix to BugId 4795021, which involved the DOS VSE IF/THEN statement
   resulted in the following new error messages:

   MA3092(S) Invalid Syntax %s
   
     Description: The syntax of the IF macro statement is incorrect.
   
     Solution: Refer to the Sun Mainframe Batch Manager Software
     Reference Guide for the correct syntax of the IF macro.

   MA3093(S) invalid syntax: cannot perform numeric comparison on 
   non-numeric values
   
     Description: The syntax of the IF statement is incorrect. It is
     trying to compare a string and numeric operand with a numeric 
     comparator.
   
     Solution: Refer to the Sun Mainframe Batch Manager Software
     Reference Guide for the correct syntax of the IF macro.
   
   MA3094(S) caught exit status=%d.
   
     Description: The program called by the THEN statement exited 
     abnormally. It was interrupted by a signal. The %d variable 
     will display a numeric value indicating an interrupt.
     
     Solution: Check the history file for other messages that contain
     information about the program that exited abnormally. If you cannot
     resolve the problem, contact your authorized Sun service provider.
     
   MA3095(S) terminated exit status=%d.
   
     Description: The program called by the THEN statement exited 
     abnormally. The %d variable will display a numeric value indicating
     the exit status.
   
     Solution: Check the history file for other messages that contain
     information about the program that exited abnormally. If you cannot
     resolve the problem, contact your authorized Sun service provider.
   
   MA3096(S) error executing %s errno=%d.
   
     Description: An error occurred when executing the program called by 
     the THEN statement. The %s variable will display a string containing 
     the program name, and the %d variable will display the UNIX error number.
   
     Solution: Check the history file for other messages that contain
     information about the program that could not be executed. If you cannot
     resolve the problem, contact your authorized Sun service provider.
   
   MA3097(I) IF/THEN in validation mode, no action taken.
   
     Description: IF/THEN is running in validation mode.
     
     Solution: Informational message; no user action is required.
     
5. Sun MBM now allows an output format of VSAM to be processed by the SyncSort 
   sort product. (BudId 4800916) This requires the following documentation
   changes:

   Sun Mainframe Batch Manager Software Migration Guide, Chapter 7
   
   - page 177: In the section "SORTIN_TYPE Environment Variable," the
               paragraph starting "VSAM files" should be changed to: 
               "VSAM files are supported in SyncSort, as of version 3.6.5,
               and in CoSORT, as of version 7.5.3."
   - page 180: Table 7-3, the values for the SYSIN Exists column should be
               changed for VS-VS to "SyncSort supports."
   - page 205: Remove the section "SyncSort Support Sun MTP VSAM Input Files"
               including the sample code.
               
   Sun Mainframe Batch Manager Software Message Guide, Chapter 12
   
   - page 393: Remove ERROR: VSAM to VSAM is not supported for SyncSort.
   
6. Documentation errata in Sun MBM Reference Guide. (BugIds 4786738, 4791140)

   - In Table 3-2, the environment variable for dest='node,userid' should
     be ddname_DEST 'node,userid'.
     
   - In Table 3-2, the environment variable for control=spacing should be
     ddname_CONTROL spacing.
     
   - In Table 3-2, the free option descriptions should be as follows:
   
     END: Deallocate at the end of the job step. The default.
     CLOSE: Deallocate when the program closes the SYSOUT file.
     
   - In Table 3-2, the prmode option descriptions should be as follows:
   
     LINE: Schedule to a line mode printer.
     PAGE: Schedule to a page mode printer.

 7. Documentation errata in Sun MBM Migration Guide (BugId 4753612, 4804740)
 
    - In Chapter 4, the description of the LINES parameter of the
      /*JOBPARM statement should be:
      
        The LINES parameter specified the maximum number of lines to
        spool for sysout datasets in this job. Its value is interpreted
        in thousands of lines.
   
    - Code Example 4-44 should be deleted.
   
    - Code Example 4-91 is incorrect. It should be as follows:
   
      SET statement with parameters set to AA&&A and 'B B&&B':
   
        ...
        //SETPRMS SET PARMA=AA&&A,PARMB='B B&&B'
        ...
     
        is translated to:
   
        ...
        SETPARM parms='PARMA=AA_A,PARMB=B_B/x26/x26B'
        ...
        
    - In Table 5-7, recfm should be recfmt.
    
    - In Table 6-2, the following statements and parameters should be in bold:
      CNTL, DSID, ENDCNTL, DPRTY, DYNAMNBR, and PEND.
    
    - In Chapter 7, the parameter ASCII_ in the section "sortx Control 
      Statement Format" should be ASCII.
      
    - In the section "Sort Examples" in Chapter 7, the original JCL should 
      show the line SORT FIELDS=(1,2,A),FORMAT=CH in bold.
    
8. Documentation errata in the Sun MBM Configuration Guide (BugId 4803417)

   - In Chapter 10, Step 2 of the procedure "To Change the Number of 
     Activities," the word "elect" should be "select."
    
9. Documentation errata in the Sun MBM User's Guide (BugId 4790463)

   - In Chapter 2, Figure 2-11 shows an Active Jobs screen that does not 
     show all the buttons that can be displayed. To display the buttons,
     highlight a job in the list.
    
   - In Chapter 2, Step 1 of the procedure "To Allocate Threads to a Class"
     should say to select class e, not class c.
     
   - In Chapter 3, the following figure captions should be changed as noted:
  
      Figure 3-4 should be Procedures Tab
      Figure 3-12 should be Return Code Tab

   - In Chapter 4, the documentation for the -E option of the dostrans 
     command is incorrect. Delete or ignore it.
    
   - In Chapter 4, the following command formats incorrectly show the -T 
     option as - T: chgjob and unikixjob.
    
   - In Chapter 4, the lstjob command example shows two column headings 
     (X and A) that are not described. The descriptions are as follows:
    
     X: Only used for backward compatibility for jobs that were translated 
     with the haltrans -x command. Values are y or n.
    
     A: Indicates whether the job was submitted for animation. Values are 
     y or n.
    
   - In Chapter 4, the histprt command contains confusing information about 
     how the EBM_DATE_FORMAT and LC_TIME environment variables affect the
     command. The following statement should be added to the histprt command
     description:
    
       The EBM_DATE_FORMAT and LC_TIME environment variables affect the 
       date/time stamp of the histprt entry (the Date column of the 
       histprt output).
      
10. Documentation errata in Sun MBM PPF User's Guide, Release 9.2 
(BugId 4746848).

   - There should be descriptions for the suffixes ..NP and ..SC in File_Map.

     In Chapter 3, the section "Updating the File_Map," append the following
     to the first paragraph:
     
       The suffix "..NP" is used to denote standard named pipe files between 
       two jobs executing on the same local host. The suffix "..SC" denotes 
       a socket being shared between two jobs via a socket connection.

   - In Chapter 3, the section "Updating the Job Control Language (JCL)
     Scripts," contains erroneous examples:
     
      - The first unnumbered example should be a JOB not a PROC, so 
        change the //PROC8  PROC to //JOB8  JOB.
          
      - Code Example 3-1 is a poor example for the XSUBMIT and XWAIT 
        procedures. The XSUBMIT/XWAIT example JCL should be as follows, and
        is associated with the second bullet item above it:

        //JOB8    JOB
        //XSTEP01 EXEC PROC=XSUBMIT
        //SYSIN   DD *
        +/STEP01  EXEC PGM=CB001
        +/INPUT1  DD DSN=HOME.EBMTEST.DATA.AAA,DISP=(OLD,CATLG,CATLG)
        +/OUTPUT1 DD DSN=HOME.EBMTEST.DATA.CCC,DISP=(NEW,PASS,DELETE)
        //STEP02  EXEC PGM=CB002
        //INPUT2  DD DSN=HOME.EBMTEST.DATA.CCC,DISP=(OLD,DELETE,DELETE)
        //OUTPUT2 DD DSN=HOME.EBMTEST.DATA.BBB,DISP=(NEW,CATLG,CATLG)
        //XWAIT01 EXEC PROC=XWAIT,XSTEPNAME=XSTEP01,COND=EVEN
        //STEP03  EXEC PGM=IEBUPDATE
        ........
        ........

      - Code Example 3-2 for RUNPGM should be changed to one which 
        has the RUNPGM utility in it. Replace both sets of JCL with the 
        following:

        //JOB8    JOB
        //STEP102 EXEC PGM=RUNPGM
        //INPUT1  DD   DSN=HOME.EBMTEST.DATA.AAA,DISP=(OLD,CATLG,CATLG)
        //OUTPUT1 DD   DSN=HOME.EBMTEST.DATA.CCC,DISP=(NEW,PASS,DELETE)
        //INPUT2  DD   DSN=HOME.EBMTEST.DATA.CCC,DISP=(OLD,DELETE,DELETE)
        //OUTPUT2 DD   DSN=HOME.EBMTEST.DATA.BBB,DISP=(NEW,CATLG,CATLG)
        //SYSIN   DD   *
        //FUNC=CB001
        //FUNC=CB002
        /*
        //STEP03 EXEC  PGM=IEBUPDATE
        ........
        ........


   - In Chapter 3, the section "What Happens When a Program Execution
     Fails?" contains a typo in the fourth bullet: RUNPBM should be RUNPGM.

   - In Figure 3-1, the colon (:) should be changed to a period (.), as 
     follows:
     
       At the bottom, PRIMER.ACCT.MF:SEQ2
   
       should be:
   
       PRIMER.ACCT.MF.SEQ2


--------------------------------
MBM 10.0.0p1   -  113826-01
--------------------------------

1. The job editor's startup script now verifies that the Java(tm) version is at 
least 1.4. (BugID 4756983)

If the version is lower than 1.4.0, the following message is displayed:

"ERROR - Current java version: '$JAVAVER'  version 1.4.0 or above is required."

where JAVAVER is the current version of Java if the JDKROOT environment variable
is set to a version lower than 1.4.0.

2. IDCAMS Utility Limitations

  Limitation: A comment may not be continued over multiple lines in the 
  IDCAMS SYSIN data using the line continuation character (-) or the string
  continuation character (+).

  Workaround: Remove the comment or make each comment a separate line. 

  Example 1

  REPRO /* my comment +
   continued */ -

  Should be changed to:

  REPRO - 
   /* my comment continued */ -
   
  Example 2 

  REPRO -
    /* my comment -
       continued */ -

  Should be changed to:

  REPRO - 
    /* my comment continued */ -


  Limitation: If a DELETE statement includes a CATALOG parameter, not all 
  cases of embedded spaces are supported.

  Workaround: Remove any spaces within the parentheses.

  Example

  DELETE (MY.DATASET) CATALOG(MYCATLOG/ MYPASSWD)

  Should be changed to:

  DELETE (MY.DATASET) CATALOG(MYCATLOG/MYPASSWD)


  Limitation: A REPRO step where the INFILE or INDATASET parameter specifies 
  a base GDG (the concatenation of all GDG intances) might fail if no
  occurrences exist.
  
  Limitation: The ENVIRONMENT(DUMMY) syntax parameter of REPRO INFILE/INDATASET
  is not supported in the current version. The parameter is ignored by Sun MBM.
  
  Workaround: Remove the ENVIRONMENT subparameter.

  Example

  REPRO INFILE(DD1 ENVIRONMENT(DUMMY)) OUTFILE(DD2)

  Should be changed to:

  REPRO INFILE(DD1) OUTFILE(DD2)
  
3. Changes to the sample applications changes the references to the sample
directory in the Sun Mainframe Batch Manager Software Installation Guide 
from oracle 1 to oracle (BugId 4779655). In the section "Using the
Oracle Sample Application," Step 10 on page 44 requires the following
changes: 

   -The path name in substep b should be $EBMHOME/samples/oracle/ish.
   -The path name in substep c should be $EBMHOME/samples/oracle/ishp.
   -The path name in substep d should be $EBMHOME/samples/oracle

4. Fix to BugId 4705343, which allows a VSE job to restart properly and
report if a restart step is not found, resulted in a new error message.
This fix was made to the Sun MBM 10.0.0 release, but the message was not
documented in the Sun MBM Message Guide.

   MA2557 (I) Job submitted in RESTART mode : %s
   
   Description: Informational message indicating the stepname[.pstepname] 
   of the restart.

5. Changes and additions to the documentation in the Sun MBM User's Guide
on the dostrans command. (BugId 4706411)

   The current documentation for the -E option is incorrect and should be
   deleted or ignored.
   
   The new -E option translates '&' to '\$' in instream data. If you do not
   use the -E option, the default behavior of dostrans is to translate the
   '&' to '\&'.
   
   The new -D option does not translate '$' to '\$' in instream data. If you 
   do not use the -D option, the default behavior of dostrans is to change 
   '$' to '\$'.
   
   Note that using the -E and -D options results in non-standard
   mainframe behavior.
   
The following examples illustrate these changes. The first example shows the
original JCL. The other examples show how the JCL is translated based on the
dostrans options used.
   
Original JCL:
--------------
// JOB tstinstop
// EXEC PGM=IDCAMS,PARM='TEST'
   $dollar test with -E
   &ampersand test with -D
/&


dostrans tstinstop -f
---------------------
BEGINJOB
ASSGNDD ddname='SYSIN' type='INSTREAM' << !
   \$dollar test with -E
   \&ampersand test with -D
!
EXECPGM pgmname='IDCAMS' stepname='STEP0001' parm='TEST'
ENDJOB


dostrans tstinstop -f -E
------------------------
BEGINJOB
ASSGNDD ddname='SYSIN' type='INSTREAM' << !
   \$dollar test with -E
   \${ampersand} test with -D
!
EXECPGM pgmname='IDCAMS' stepname='STEP0001' parm='TEST'
ENDJOB

dostrans tstinstop -f -D
-------------------------
BEGINJOB
ASSGNDD ddname='SYSIN' type='INSTREAM' << !
   $dollar test with -E
   \&ampersand test with -D
!
EXECPGM pgmname='IDCAMS' stepname='STEP0001' parm='TEST'
ENDJOB

dostrans tstinstop -f -D -E
---------------------------
BEGINJOB
ASSGNDD ddname='SYSIN' type='INSTREAM' << !
   $dollar test with -E
   ${ampersand} test with -D
!
EXECPGM pgmname='IDCAMS' stepname='STEP0001' parm='TEST'
ENDJOB

