TOCPREVNEXTINDEX

Lund Performance Solutions


Program Commands

INUTIL Program

The Intact Dynamic Rollback utility program is the main interface between Intact Dynamic Rollback and the Intact Dynamic Rollback operator. The user must have SM, OP or PM capability to run INUTIL.
INUTIL is used to do the following:
  • Add or delete databases from the list of databases maintained by Intact Dynamic Rollback.
  • Enable and disable databases for Intact Dynamic Rollback rollback.
  • Specify the type of rollback required.
  • Report the status of databases maintained by Intact Dynamic Rollback.
  • Determine the version of Intact Dynamic Rollback and INUTIL.
  • Send report files to the system printer and other destination devices.
  • Specify the type of report to be sent to each report destination.
  • To run the utility program, type:
    :RUN INUTIL.PUB.SYS

    INUTIL Commands

    The INUTIL program requires keywords and parameters. The commands (keywords) and a short description of each are listed in the following table:


    Command
    Function
    :
    To perform MPE commands from within INUTIL.
    BMESSAGE
    To set up particular database messages to display when any program aborts.
    DELETE
    To delete databases from the CONFIG.INTACTIX.LPS file.
    DISABLE
    To disable a database for Intact Dynamic Rollback rollback.
    ENABLE
    To enable a database for Intact Dynamic Rollback rollback to either DBBEGIN or DBOPEN.
    ENTER
    To enter databases to the CONFIG.INTACTIX.LPS file.
    GMESSAGE
    To set up a global message to display when any program aborts.
    HELP
    To obtain help on the INUTIL commands.
    REDO
    To edit the previous command, similarly to the MPE command.
    REINFORCE
    To report instances when a program aborts and Intact Dynamic Rollback does not perform a rollback.
    REPORT
    To print the report files.
    RFILE
    To specify where to produce the report disc files (which file or group and account).
    RMODE
    To specify the report modes (the amount of information displayed to each report destination).
    SHOW
    To show the global or individual report settings for any of the databases.
    VERSION
    To verify the version of Intact Dynamic Rollback and INUTIL currently in use.


    GMESSAGE Command

    The GMESSAGE command of INUTIL enables global level messages.

    Syntax

    GM[ESSAGE]
    |
    [DBU[NDO]]
    |
     
    |
    [NOD[BUNDO]]
    |

    Function

    The GMESSAGE command sends a global message to the users’ terminals and the operator’s console whenever a program aborts and leaves an open database. When a program aborts, this message will display advising users to take specific action, such as, “Call Jim at ext 9430 if this message appears.”
    Only one global message may be established.
    You have the option to disallow the message for DBUNDO reports.The default setting is to produce one global message during user-requested (DBUNDO) rollout. This can be changed by adding NODBUNDO to the end of the command line.

    Examples

    GMESSAGE
    Once you enter the GMESSAGE command and press the ENTER key, you may enter up to 80 characters at the prompt.
    >GMESSAGE
    #Your program has just aborted. Please call Jane at ext 405
    To reset the global message, press the ENTER key immediately after the “#” prompt appears.
    GMESSAGE DBUNDO
    To send a global message during user-requested rollout, enter:


    >GMESSAGE DBUNDO
    #Message
    GMESSAGE NODBUNDO
    To set the global message and disallow it for DBUNDO, enter:


    >GMESSAGE NODBUNDO
    #If rollout occurred, please make note of the RFILE name

    BMESSAGE Command

    The BMESSAGE command of INUTIL enables database level messages.

    Syntax

    BM[ESSAGE]
    dbname
    |
    [G[LOBAL]]
    |
    |
    [DBU[NDO]]
    |
     
     
    |
    [NOG[LOBAL]]
    |
    |
    [NOD[BUNDO]]
    |

    Function

    With the BMESSAGE command, you can set up a base message for each individual database maintained by Intact Dynamic Rollback. When a program aborts, the users will see a message that relates specifically to the database they are working on.
  • You can specify whether an abort of a program assessing that database is to receive the global message.
  • You can show the base message or not when DBUNDO is utilized. The default is Yes (the message will display).
  • Examples

    BMESSAGE dbname
    To set the database level message for the database, MAILDB.PUB.PFIM, enter:


    >BMESSAGE MAILDB.PUB.PFIM
    #There has been an abort accessing MAILDB. Call Sylvia x35
    BMESSAGE dbname GLOBAL
    To set a global message for the database, ACCTGPUB.MAINT, enter:


    >BMESSAGE ACCTGPUB.MAINT GLOBAL
    #Message
    BMESSAGE dbname NOGLOBAL
    To set a message for the database, ACCTGPUB.MAINT, and not allow it to display globally, enter:


    >BMESSAGE ACCTGPUB.MAINT NOGLOBAL
    #Message
    BMESSAGE dbname DBUNDO
    To establish a database level message for user-defined rollout, enter:


    >BMESSAGE MAILDB.PUB.PFIM DBUNDO
    #Message
    BMESSAGE dbname NODBUNDO
    To set the database level message and not allow it to display when DBUNDO is utilized, enter:


    >BMESSAGE MAILDB.PUB.PFIM NODBUNDO
    #Message

    ENTER Command

    The ENTER command adds a database to the list of databases maintained by Intact Dynamic Rollback.

    Syntax

    ENT[ER]
    |
    dbname
    |

    Function

    Each database that is to be maintained by Intact Dynamic Rollback must be listed in the CONFIG.INTACTIX.LPS file. The ENTER command enters the database to the list. (The database name must be fully qualified.)
  • The database must be entered to the list of Intact Dynamic Rollback-maintained databases before rollback modes or reporting modes can be set up for it.
  • An entered database will automatically contain the default settings. (Refer to "RMODE Command" for information about default settings.)
  • A database name cannot be entered more than once. The maximum number of databases maintained by Intact Dynamic Rollback is 50.
  • You must verify the database name is valid. INUTIL does not verify this for you.
  • An entered database is not automatically enabled for Intact Dynamic Rollback.
  • Example

    ENTER dbname
    To enter the database, MAILDB.PUB.PFIM, to CONFIG.INTACTIX.LPS, type:


    >ENTER MAILDB.PUB.PFIM

    DELETE Command

    The DELETE command is essentially the opposite of the ENTER command.

    Syntax

    DEL[ETE]
    |
    dbname
    |
     
    |
    @
    |

    Function

    The DELETE command clears a database from the list of databases maintained by Intact Dynamic Rollback. This is useful when a database name is misspelled or when a database should be purged from the system.
  • Users are allowed to delete all databases from the Intact Dynamic Rollback list.
  • The user is prompted to confirm the delete request.
  • A database does not have to be disabled from Intact Dynamic Rollback in order to be deleted.
  • Examples

    DELETE dbname
    To delete the database, MAILDB.PUB.PFIM, from the list of databases maintained by Intact Dynamic Rollback, enter:


    >DELETE MAILDB.PUB.PFIM
    Do you really want to delete MAILDB.PUB.PFIM? Y
    DELETE @
    To delete all databases from the Intact Dynamic Rollback list, enter:


    >DELETE @
    Do you really want to delete ALL DATABASES? N

    ENABLE Command

    Once a database has been entered to the list of databases maintained by Intact Dynamic Rollback, the user can enable the database for Intact Dynamic Rollback rollback with the ENABLE command.

    Syntax

    ENA[BLE]
    |
    dbname
    |
    |
    [;DBB[EGIN]]
    |
     
     
     
     
    |
    [;DBO[PEN]]
    |
     
     
     
     
    |
    [;DBL[OCK]]
     

    Function

    There are three types of rollback:
  • Rollback to DBBEGIN
  • This is the default rollback specification.
  • Rollback to DBOPEN
  • To enable the database to rollback to DBOPEN, the user must specify DBOPEN in the ENABLE command.
  • Rollback to DBLOCK
  • The third type of rollback is DBLOCK. DBLOCK is used to rollback to DBBEGIN in situations that involve softlocking. When a no-lock error occurs, Intact Dynamic Rollback gives away all existing locks on the database and tries to obtain a set lock for the affected dataset. Once that lock is obtained, it continues with the rollback to DBBEGIN.
    The database can be disabled from Intact Dynamic Rollback maintenance by the DISABLE command (see "DISABLE Command"). A database that is enabled from a disabled state will assume all the characteristics (rollback modes, report modes, etc.) previously specified.

    Examples

    ENABLE dbname;DBBEGIN
    To enable the database, ACCTGPUB.MAINT, for rollback to DBBEGIN, assuming this database has never been enabled for Intact Dynamic Rollback maintenance before, enter:
    >ENABLE ACCTPUB.MAINT
    or
    >ENABLE ACCTGPUB.MAINT;DBBEGIN
    ENABLE dbname;DBOPEN
    To enable the database, MAILDB.PUB.PFIM, for rollback to DBOPEN, enter:


    >ENABLE MAILDB.PUB.PFIMR;DBOPEN
    ENABLE dbname;DBLOCK
    To enable MAINT.PUB.ACCT for rollback to DBLOCK, enter:


    >ENA MAINT.PUB.ACCT;DBLOCK

    DISABLE Command

    Once a database has been enabled for rollback, it can be disabled with the DISABLE command (the database name must be fully qualified).

    Syntax

    DIS[ABLE]
    |
    dbname
    |
    |
    [;DBB[EGIN]]
    |
     
     
     
    |
    |
    [;DBO[PEN]]
    |
     
     
     
    |
    |
    [;DBL[OCK]]
    |

    Function

    The DISABLE command does not remove the database from the list of Intact Dynamic Rollback databases, it just tells the Intact Dynamic Rollback program to ignore the database.
    Use the ENABLE command to enable the database again (see "REINFORCE Command").

    Examples

    DISABLE dbname
    To disable the database, MAILDB.PUB.PFIM, from Intact Dynamic Rollback maintenance, enter:


    >DISABLE MAILDB.PUB.PFIM
    DISABLE dbname;DBBEGIN
    To disable the database, MAILDB.PUB.PFIM for roll back to DBBEGIN, enter:


    >DISABLE MAILDB.PUB.PFIM;DBBEGIN
    DISABLE dbname;DBOPEN
    To disable the database, ACCTGPUB.MAINT, and change the rollback mode to DBOPEN:


    >DISABLE ACCTGPUB.MAINT;DBOPEN
    DISABLE dbname;DBLOCK
    To disable the database, ACCTGPUB.MAINT, and change the rollback mode to DBLOCK, enter:


    >DISABLE ACCTGPUB.MAINT;DBLOCK

    REINFORCE Command

    When an abort occurs and Intact Dynamic Rollback does not perform a rollout, reports, called reinforcement reports, are produced to show that no action was taken. The REINFORCE command is used to control the reinforcement reporting mode.

    Syntax

    RE[INFORCE]
    |
    [dbname]
    |
    =
    |
    [D[EFAULT]]
    |
     
    |
    [G[LOBAL]]
    |
    =
    |
    [ON]
    |
     
     
     
     
    =
    |
    [OF[f]]
    |
     
     
     
     
    =
    |
    [A]
    |
     
     
     
     
    =
    |
    [B]
    |

    Function

    The REINFORCE command is used to set up positive reinforcement reports (messages produced when Intact Dynamic Rollback is invoked and no rollback is needed).
    The four modes of reinforcement reporting are described in the following table:


    Mode
    Description
    ON
    Reinforcement reports are generated when:
  • A program abort occurs as the program accesses the database in read-only mode.
  • A program aborts occurs, but no partial transactions exist.
  • OFF
    No reinforcement reports are generated.
    A
    Reinforcement reports are generated only when a program abort occurs as the program accesses the database in read-only mode.
    B
    Reinforcement reports are generated only when a program aborts occurs, but no partial transactions exist.


    The default setting is ON (reports are generated). You may turn off the reinforcement reporting, either for all databases (globally) or for a particular database.
    You may want to discontinue reinforcement reports for the following circumstances:
  • A user opens the database in read-only mode.
  • A 4GL language does not close the database upon normal termination.
  • A program abort occurs, but no rollout is needed.
    NOTE Intact Dynamic Rollback will, by default, generate a reinforcement message every time a program in a 4GL language ends before closing the database. To disable these reports, use either the OFF or the A reinforcement mode.
  • Examples

    REINFORCE GLOBAL = OFF
    To turn off reinforcement reporting globally, enter:


    >REINFORCE GLOBAL=OFF
    REINFORCE dbname = ON
    To turn the reinforcement messages on for the database, MAILDB.PUB.PFIM, enter:


    >REINFORCE MAILDB.PUB.PFIM=ON
    REINFORCE dbname = DEFAULT
    To use the default reinforcement mode settings for the database, ACCTGPUB.MAINT, enter:


    >REINFORCE ACCTGPUB.MAINT = DEFAULT

    RMODE Command

    The RMODE command is used to specify the type and destination of a rollout report (refer to "Report Modes" and "Report Destinations").

    Syntax

    RM[ODE]
    |
    dbname
    |
    =
    |
    [DE[FAULT]]
    |
    FOR
    |
    [C[ONSOLE]]
    |
    [:DBU[NDO]]
     
    |
    G[LOBAL]
    |
    =
    |
    [OF[F]]
    |
    FOR
    |
    [U[SER]]
    |
     
     
     
     
     
    =
    |
    [T[ERSE]]
    |
    FOR
    |
    [RF[ILE]]
    |
     
     
     
     
     
    =
    |
    [R[EGULAR]]
    |
    FOR
    |
    [L[OG]]
    |
     
     
     
     
     
    =
    |
    [D[ETAILED]]
    |
    FOR
    |
    [@]
    |
     

    Function

    The RMODE command is used to specify the type of report produced when a program abort occurs and the destination of that report. (Please refer to "Report Modes" for information about reports.)

    Parameters

    Report Type Parameters
    The report type parameters associated with the RMODE command are listed below:


    Parameter
    Function
    d[ata]b[ase]name
    Specifies the fully qualified name of the database reported
    G[LOBAL]
    Represents all databases in the CONFIG.INTACTIX.LPS file. GLOBAL also invokes the default Intact Dynamic Rollback settings.
    DE[FAULT]
    Specifies the default report type for each of the four report destinations.
  • If DEFAULT is used with a database name, the GLOBAL settings will apply.
  • If DEFAULT is used with GLOBAL, the original default settings will be applied to GLOBAL.
  • OF[F]
    Disables reporting (see "Off (No Report)").
    T[ERSE]
    Specifies a brief report style (see "Terse Report").
    R[EGULAR]
    Specifies a regular report style (see "Regular Report").
    D[ETAILED]
    Specifies a detailed report style (see "Detailed Report").


    Report Destination Parameters
    The following table lists report destination parameters for the RMODE command:


    Parameter
    Report Destination
    Default Report Type
    C[ONSOLE]
    Operator’s console
    Terse
    U[SER]
    User’s terminal
    Regular
    R[FILE]
    Report file (Rfile) on disc
    Detailed
    L[OG]
    Log file as DBMEMO’s
    Terse
    @
    All destinations
    Terse
    :DBU[NDO]
    When entered as a report destination parameter, DBUNDO changes the current report type to the following:
    Operator’s console
    Off (no report)
    User’s terminal
    Terse
    Rfile
    Off (no report)
    Log file
    Terse
    Any of these report types are valid.


    Examples

    RMODE dbname = DETAILED FOR CONSOLE
    To send a detailed report to the operator’s console for the database, MAILDB.PUB.PFIM, enter:


    >RMODE MAILDB.PUB.PFIM=DETAILED FOR CONSOLE
    RMODE dbname = TERSE FOR USER
    To send a terse report to all destinations for any user whose program aborts while accessing a database, enter:


    >RMODE GLOBAL=TERSE FOR USER
    RMODE dbname = OFF FOR USER
    To turn the reporting to the user’s terminal off for anyone accessing the database, ACCTGPUB.MAINT, enter:


    >RMODE ACCTGPUB.MAINT=OFF FOR USER
    RMODE GLOBAL = REGULAR FOR CONSOLE
    To send regular reports (globally) to the operator’s console, enter the following command:


    >RMODE GLOBAL = REGULAR FOR CONSOLE
    RMODE GLOBAL = OFF FOR CONSOLE
    If you do not want the operator to be concerned with Intact Dynamic Rollback reports on the console, turn them off by entering the following:


    >RMODE GLOBAL = OFF FOR CONSOLE

    RFILE Command

    One of the report destinations is a file on disc. This file is known as an “Rfile.”

    Syntax

    RF[ILE]
    |
    [dbname]
    |
    =
    |
    [SE[ESSION] groupname]
    |
     
    |
    [GLOBAL]
    |
    =
    |
    [FILE filename]
    |
     
     
     
     
    =
    |
    [DEFAULT]
    |

    Function

    After a program abort, Intact Dynamic Rollback creates a report file (Rfile) on disc. The default report file shows the number of DBPUT’s, DBDELETE’s and DBUPDATE’s rolled out of the database and information regarding each. The RFILE command specifies the type and location of the Rfile produced.
  • A new Rfile can be made each time a program aborts.
  • The reports can be sent to a global Rfile.
  • A particular group in the same account as the database may be set up to contain the individual Rfiles.
  • Parameters

    Report File Parameters
    The parameters associated with the RFILE command are listed below:
    d[ata]b[ase]name
    “Databasename” is the fully qualified name of the database.
    G[LOBAL]
    GLOBAL specifies that all databases will use one Rfile location, if another has not been specifically assigned to that database. The default GLOBAL Rfile location is the session’s logon group and account. A report is created for every program abort.
    Session [groupname]
    The word, “session,” used alone with a database name indicates the Rfile is to be created in the session’s logon group and account. If a group name is also included, the Rfiles will be created in that specific group of the session’s logon account.
    FILE filename
    FILE, used in conjunction with a database name specifies that any reports created for this database are to be appended to the file called “filename.” (The file specified should already exist. If not, the reports will be created in the default logon group and account of the session.
    If the GLOBAL keyword is used with the FILE parameter, the reports will be sent to one disc file, “filename,” unless they were set previously to go to individual databases.
    D[EFAULT]
    DEFAULT, used in conjunction with a database name, enables Intact Dynamic Rollback to create a report in the global (default) location.
    If the GLOBAL default has not been modified, the original Intact Dynamic Rollback default location (the logon group and account of the session) will be the location of the Rfile.
    If the GLOBAL keyword is specified with DEFAULT, the GLOBAL location of the Rfiles returns to the original default of Intact Dynamic Rollback (the logon group and account of the session).

    Examples

    RFILE dbname = SESSION groupname
    To specify that the Intact Dynamic Rollback reports for the database, MAILDB.PUB.PFIM, are to be created in the INTREPT group, enter:
    >RFILE MAILDB.PUB.PFIM = SESSION INTREPT
    RFILE GLOBAL = FILE filename
    To specify where all Intact Dynamic Rollback reports are to be sent, unless specified otherwise, enter:
    >RFILE GLOBAL = FILE INTREP.INTACT.SYS
    RFILE GLOBAL = DEFAULT
    To specify that the global report file be created in the default location, enter:
    >RFILE GLOBAL = DEFAULT

    Possible Report Destination Tables

    DEFAULT Rfile Destination
    The following table shows the possible results when the databases use the default report file destination. Note how the global report destination changes.


    DB 1
    DB 2
    DB 3
    Global
    Result
    DEFAULT
    DEFAULT
    DEFAULT
    DEFAULT
    One session report in the logon group and account.
    DEFAULT
     
    DEFAULT
     
    DEFAULT
     
    SESSION GRP
    One session report in group, GRP(groupname), in the logon account.
    DEFAULT
    DEFAULT
    DEFAULT
    FILE FN
    One report added to the file (filename).


    Modified Rfile Destinations
    The next table shows the results when the destination of the report file changes for one or more (three, for example) of the Intact Dynamic Rollback enabled databases in addition to the global destination of the report.


    DB 1
    DB 2
    DB 3
    Global
    Result
    SESSION
    SESSION
    SESSION
    -
    Three session reports are created in the logon group and account.
    SESSION GRP1
    SESSION GRP2
    SESSION GRP3
    -
    Three session reports:
  • DB1 creates a report in GRP1 in logon account
  • DB2 creates a report in GRP2 in logon account
  • DB3 creates a report in GRP3 in logon account
  • SESSION GRP1
    SESSION GRP2
    DEFAULT
    SESSION GRP4
    Three session reports:
  • DB1 creates a report in GRP1
  • DB2 creates a report in GRP2
  • DB3 takes the default and creates a report in GRP4
  • SESSION GRP1
    DEFAULT
    DEFAULT
    SESSION GRP4
    Two session reports:
  • DB1 creates a report in GRP1
  • DB2 and DB3 creates one report in GRP4
  • FILE FN1
    FILE FN2
    FILE FN3
    -
    Three reports:
  • DB1 appends to FN1
  • DB2 appends to FN2
  • DB3 appends to FN3
  • SESSION
    SESSION GRP 1
    DEFAULT
    FILE FNX
    Three reports:
  • DB1 creates a report in logon group and account
  • DB2 creates a report in GRP2 of logon account
  • DB3 appends the report to FNX


  • : MPE Command

    Syntax

    : MPE command

    Function

    The : command allows the INUTIL user to execute an MPE command from within the INUTIL program.

    Example

    To find out the name of the report file to be sent to the printer, the user would enter the LISTF command:
    >:LISTF R@,2

    REDO Command

    Syntax

    REDO

    Function

    The REDO command is similar to the MPE command, REDO. It will display the last command entered and allow the user to edit it. The characters used for editing are:
  • d (delete)
  • i (insert)
  • r (replace)
  • Example

    REDO
    To edit the last command entered:
    >REINFOCR database Dynamic Rollbackfault
    Invalid command: Use HELP enter:>
    >REDO
    REINFOCR database Dynamic Rollbackfault
    >(place the cursor at the "c" in "REINFOCR") ddiRCE
    REINFORCE database Dynamic Rollbackfault
    >(place the cursor at the "r" in "Dynamic Rollbackfault") re
    REINFORCE database default

    REPORT Command

    Syntax

    RE[PORT]
    |
    filename
    |

    Function

    When a program aborts, a report file is created on disc, describing the details of the rollback activity. The REPORT command sends this file to the printer.

    Example

    REPORT filename
    To print a paper copy listing of the report file called R0321640.INT.PFIM, enter:
    >REPORT R0321640.INT.PFIM

    SHOW Command

    Syntax

    S[HOW]
    |
    [dbname]
    |
     
    |
    [@]
    |
     
    |
    [GLOBAL]
    |

    Function

    The SHOW command displays the status of the Intact Dynamic Rollback global settings. The status of each individual database or of all databases maintained by Intact Dynamic Rollback can be seen by using the SHOW command and specifying either the name of the database or "@."

    Examples

    SHOW dbname
    To show the status of the database, MAILDB.PUB.PFIM, ENTER:
    >SHOW MAILDB.PUB.PFIM
    MAILDB.PUB.PFIM ENABLED
    DBBEGIN mode Reinforcement DEFAULT RFILE SESSION in group INTACTRP
    RMODES Console is DEFAULT, DEFAULT
    User is DEFAULT, DEFAULT
    Rfile is DEFAULT, DEFAULT
    Log is DEFAULT, DEFAULT
    No base message.
    GLOBAL message allowed.
    SHOW GLOBAL
    To show the global (default) settings for all databases, enter:
    >SHOW GLOBAL
    GLOBAL reinforcement is DEFAULT
    GLOBAL RFILE DEFAULT
    GLOBAL RMODES
    Console is DETAILED, OFF
    User is DETAILED, REGULAR
    Rfile is DETAILED, DETAILED
    Log is DETAILED, OFF
    GLOBAL message is <This is the Global message>

    HELP Command

    Syntax

    S[HOW]
    |
    [dbname]
    |
     
    |
    [@]
    |
     
    |
    [GLOBAL]
    |

    Function

    The HELP command lists all INUTIL commands. Help can be obtained for each command by specifying the command name.

    Examples

    HELP
    To display a list of all valid commands, enter:
    >HELP
    VALID COMMANDS:
    ENTER - enter a database
    DELETE - delete a database or all databases
    SHOW - show the settings for a database
    ENABLE - enable a database for INTACT
    DISABLE - disable a database for INTACT
    RMODE - set the reporting modes
    GMESSAGE - set the global message
    BMESSAGE - set the database message
    REINFORCE - turn on/off the OK reports
    RFILE - set type of report file
    REPORT - print out a report file
    HELP H ? - this screen, or about the commands
    : - execute some MPE commands
    VERSION - show the version of the INTACT/INUTIL
    EXIT EX END EN E QUIT Q
    HELP command
    To access information about a specific INUTIL command, ENABLE for example, enter:
    >HELP ENABLE
    ENABLE dbname [;DBBEGIN]
    [;DBOPEN]
    [;DBLOCK]
    Enable the database for INTACT. Set the mode if specified.

    VERSION Command

    Syntax

    VER[SION]

    Function

    The VERSION command displays the version of the active Intact Dynamic Rollback program. This information is necessary when contacting the Technical Support Team at Lund Performance Solutions.

    Examples

    To issue the VERSION command, enter:
    >VERSION
    INUTIL E.01.02
    INTACT A.01.02
    The version letter and numbers for both the INUTIL program and the Intact Dynamic Rollback program are displayed below the command.
    The following result shows that Intact Dynamic Rollback is not installed:
    >VERSION
    INTACT not installed in SL
    If you receive this message, please refer to the Intact Dynamic Rollback installation instructions or contact the Technical Support Team.

    DBUNDO Intrinsic

    Calling Sequence

    Result: = DBUNDO (base, dset, mode, status)

    Function

    The DBUNDO intrinsic reduces the time spent in designing applications by eliminating the need for large buffers. It performs a rollback on a database if the database contains incomplete transactions. Rollback can be done to the DBOPEN issued by the process, if the mode parameter is set to OPEN mode. It can also be set for rollback to the previous DBBEGIN.


    NOTE To roll back to DBOPEN, DBUNDO must get a database lock. The program will wait until a database lock can be obtained. This may involve waiting until other users have released their locks.


    Suppose that a user has finished adding a complicated transaction to an order entry database when the user finds the order is invalid (perhaps critical information is missing).
    Without DBUNDO, the user must go back to the invalid order and delete entries made to the database. With DBUNDO, the user employs the DBUNDO intrinsic to undo the partial transaction. An UNDO softkey can be set up in the program to allow the user to delete the partially entered order from the database.

    Return Value

    DBUNDO returns as its function value, the same information as it returns in status word 0. See the status explanations on "status".

    Parameters

    base
    "base" is the name of the array used as the base parameter when opening the database. The first word of the array must contain the base ID returned by DBOPEN.
    dset
    "dset" is the name of an array that contains the left-justified name of the detail or master dataset to be accessed. dset can also be an integer that references the dataset by number. The dataset name may be 16 characters long or, if shorter, it may be terminated by a semicolon or blank.


    NOTE The dset parameter is not currently used by Intact Dynamic Rollback. Use a "dummy" parameter.
     


    mode
    "mode" is an integer set in the following manner:
  • 1 for DBBEGIN mode
  • 2 for DBOPEN mode
  • 3 for DBLOCK mode
  • status
    "status" is the name of a ten-word array in which DBUNDO returns status information about the procedure.
    "status" must be a unique array used only by DBUNDO.
    If the procedure executes successfully, the status array contents will display as shown in the following table:


    Word
    Contents
    Meaning
    0
    0
    Rollback was completed successfully.
    0
    10000
    Rollback was not necessary.


    If word 0 contains 10000, then word 1 of the array will contain the following information:


    Word
    Contents
    Meaning
    1
    10001
    Database opened in read only mode.
    1
    10002
    There was no transaction in progress (every DBBEGIN had a matching DBEND).


    If the procedure does not succeed, the status array contents will be:


    Word
    Contents
    Meaning
    0
    10003
    Rollback was aborted.


    If the procedure does not succeed, word 1 contains additional information:


    Word
    Contents
    Meaning
    1
    10004
    Unknown MPE version.
    1
    10005
    Unknown TurboIMAGE version.
    1
    10006
    Unable to open log file.
    1
     
    Word 2 has FSERR.
    1
    10007
    Internal error checking the logging state.
    1
    10008
    Internal error getting log information.
    1
    10009
    Invalid code in the log file.
    1
    10010
    LOGSTATUS intrinsic error.
    1
     
    Word 2 status return from intrinsic.
    1
    10011
    Insufficient stack room to run.
    1
    10012
    Internal.
    1
    10113
    Cannot open the root file.
    1
    10014
    Cannot read the root file.
    1
    10015
    Internal.
    1
    10016
    Internal.
    1
    10017
    Invalid rollback mode.
    1
    10018
    Premature end of log file.
    1
    10019
    Insufficient stack to rollback.
    1
    10020
    Error processing DBEND.
    1
    10021
    Error processing DBBEGIN.
    1
    10022
    Invalid TurboIMAGE dataset type.
    1
    10023
    Record has been modified.
    1
    10024
    Error processing DBGET.
    1
    10025
    Error processing DBDELETE.
    1
    10026
    Error processing DBPUT.
    1
    10027
    Error processing DBUPDATE.
    1
    10028
    Unable to lock the database.
    1
    10029
    Unable to lock the dataset.
    1
    10030
    Unable to unlock the dataset.
    1
    10031
    No lock on the dataset or base.
    1
    10032
    Found DBOPEN out of sequence.
    1
    10033
    Found DBCLOSE out of sequence.
    1
    10034
    Found DBEND out of sequence.
    1
    10035
    Found a DBAEND.
    1
    10036
    Error reading the log file.
    1
    10037
    No room to build log file record.
    1
    10038
    Unable to close TurboIMAGE log file.
    1
    10039
    Unable to close Intact Dynamic Rollback report file.
    1
    10040
    FRENAME error.
    1
    10041
    ERROR: INTACT has expired!
    1
    10042
    Warning: INTACT will expire shortly!
    1
    10043
    Internal
    1
    10044
    Bad DBOPEN mode. Assuming mode 1.
    1
    10045
    Bad status array adDynamic Rollbackess.
    1
    10046
    Unable to open CONFIG.INTACTIX.LPS.
    1
    10047
    Problem with CONFIG control label access.
    1
    10048
    Error checking base entry.
    1
    10049
    Internal.
    1
    10050
    Internal.
    1
    10051
    INTACT: Warning, unable to open report file, examine log file.
    1
    10052
    Unable to open report in Rfile group.
    1
    10053
    Unable to open global report file.
    1
    10054
    RFILE already open.


    Some of the errors returned in word 1 are generated by TurboIMAGE and are negative.


    Word
    Contents
    Meaning
    1
    -11
    Bad base parameter.
    1
    -113
    FLUSHLOG intrinsic error.
    1
     
    Word 2 has status return from intrinsic.


    There is a positive TurboIMAGE return.


    Word
    Contents
    Meaning
    1
    71
    Logging is not turned on.


    Examples

    The following are examples of calling DBUNDO:
    SPL
    Integer procedure DBUNDO(base,dset,mode,status))
    Logical array base,dset;
    Integer mode;
    Integer array status;
    Option EXTERNAL;
    RESULT:=DBUNDO(base,dset,mode,status)
    COBOL
    CALL "DBUNDO" USING parameter values GIVING RESULT

    Lund Performance Solutions
    www.lund.com
    Voice: (541) 812-7600
    Fax: (541) 81207611
    info@lund.com
    TOCPREVNEXTINDEX