EloCap - 2.21

June 23, 2009

 

Contents

========

 

      I.    Overview

     II.    Installation and Setup

    III.    Running EloCap

     IV.    Capture Files

      V.    ASCII Capture Files

     VI.    MAKAP

    VII.    Support

 

 

I. Overview

===========

 

EloCap from Taurus Software is a program that can provide real-

time data capture of transactions on Eloquence databases.  Using

EloCap, all writes, deletes and update transactions can be copied

to a Capture File to log all changes to a database.  The Capture

File is then processed to replicate the changes to one or more

target databases.  The functionality that EloCap provides for

Eloquence is similar to the functionality provided by Bridge for

TurboIMAGE databases on MPE/iX.

 

EloCap operates by accessing the Eloquence FWUtil API to read all

committed transactions from Eloquence forward log files.  The

transactions are passed on to the Eloquence server for processing

and while EloCap writes them to the Capture File.

 

Capture Files created by EloCap are processed by Warehouse as

they are written to provide real-time replication to the target

database.

 

The entire process looks like this:

 

    +------------+     +------------+     +------------+

    | User       |     | Eloquence  |     | Eloquence  |

    | Programs   | --> | Database   | --> | FWD log    |

    |            |     |            |     | files      |

    +------------+     +------------+     +-------+----+

       (A)                (B)                (C)  |

                                                  |

                                                  |

        +-----------------------------------------+

        |

        |

        V

    +------------+     +------------+     +------------+

    | Eloquence  |     |            |     | Warehouse  |

    | FWUtil     | --> | EloCap     | --> | Capture    |

    | API        |     |            |     | File       |

    +------------+     +------------+     +----------+-+

         (D)                (E)                (F)   |

                                                     |

                                                     |

        +--------------------------------------------+

        |

        |

        V

    +------------+     +------------+

    | Warehouse  |     | Target     |

    | Program    | --> | Database   |

    |            |     |            |

    +------------+     +------------+

         (G)                (H)

 

    (A) User programs insert, update and delete data from one or

        more Eloquence databases.

 

    (B) The Eloquence database writes changes to disk and generates

        forward log files.

 

    (C) Eloquence forward log files are maintained by Eloquence and

        contain a record of all committed changes to the database.

 

    (D) The FWUtil API provided by Eloquence reads the Eloquence

        forward log files and provides the data to the calling

        program.

 

    (E) EloCap calls the FWUtil API to read records from the

        Eloquence forward log files.  EloCap then inserts header

        information and writes the records to a Warehouse Capture

        File.  The FWUtil API maintains the current position

        in the log file sequence through the use of a status file.

 

    (F) The Warehouse Capture File contains changes to the

        database along with header information.  This file is in a

        proprietary format and operates like a message file on

        MPE/iX.  This file can only be read by Warehouse and MAKAP,

        both from Taurus Software, Inc.

 

    (G) The Warehouse program processes a Warehouse script that reads

        from the Capture File and propagates changes to the target

        database.  The Warehouse script is typically generated using

        DataBridger Studio from Taurus Software.

 

    (H) The target database is kept synchronized by the Warehouse

        script.  The target database may be on another system and

        of any type supported by Warehouse (Oracle, SQL Server,

        TurboIMAGE, etc.)

 

 

II. Installation and Setup

==========================

 

1.  EloCap is shipped as a standalone program with Warehouse on

    HP-UX.  There are no EloCap specific installation

    instructions.  The program is called "elocap" in Warehouse

    installation directory.

 

2.  Eloquence version B.07.10 or later must be installed on the

    source system.

 

3.  The Eloquence FWUtil API must be downloaded and installed on

    the source system.  See:

    http://eloquence.marxmeier.com/download/beta/B0710/fwutil/

 

4.  The Eloquence database must be configured for forward logging

    and auditing enabled.  To do this, edit your Eloquence

    configuration file (e.g. /etc/opt/eloquence6/eloqdb6.cfg) and

    in the [ForwardLog] section, set EnableAudit to 1 and FwLog

    to indicate the file name series of the forward log files.

    Use %N to indicate the log file number.  Example:

 

        [ForwardLog]

        EnableAudit = 1

        FwLog = /mnt/disk2/data/db-forward-%N.log

 

    For more information, see:

    http://eloquence.marxmeier.com/support/B0710/doc/fwlog/

 

5.  Eloquence must be restarted for the configuration changes to

    take effect.  Once the configuration changes have been made

    and Eloquence has been restarted, EloCap is ready to run.

 

6.  On Linux systems, the LD_LIBRARY_PATH variable must be set

    to point to the fwutil library director before running EloCap.

    To test the installation on a Linux system enter the following

    commands:

 

        $ export LD_LIBRARY_PATH=/opt/eloquence6/lib

        $ elocap -version

        EloCap - 1.40

        FWUTIL B.07.10.05 (build Mar 29 2007)

 

    If you receive a version for both EloCap and FWUTIL, the

    installation was successful.

 

 

III. Running EloCap

===================

 

The syntax of the EloCap program is:

    elocap [options] [capture-options] capture-file

                     [ [capture-options] capture-file] [..]

 

General Options:

 

  -bg                   Run in background.  Specifying -bg causes

                        the elocap process to run in the

                        background.  If the -pidfile option is

                        also used, the EloCap process can be

                        killed using the PID from the pidfile.

                        Example:

                            If EloCap is run with

                                $ elocap -bg -pidfile elocap.pid ...

                            EloCap can be stopped with:

                                $ kill `cat elocap.pid`

 

  -capstats             Displays capture file statistics showing

                        the databases and datasets written to

                        each capture file.  The statistics include

                        the number of records written and the type

                        (Insert, Update, Delete) for each dataset.

 

  -dumprecs             Dumps raw records in hex as they are read

                        from the Eloquence log files and written

                        to the capture files.

 

  -help                 Show help.

 

  -pidfile <file>       Write the PID of the EloCap process to

                        <file>

 

  -rollover             Causes a roll over to the next file when a

                        message capture file reaches the

                        2-gigabyte file limit.  The name of the next

                        file is 1 greater than the current file if

                        current file name ends in a number.  If the

                        current file name does not end in a number,

                        then "1" is appended to the current file name.

                        If the next file in sequence already exists,

                        it is not used and the next file name is used

                        until an available name is found.  File name

                        extensions such as ".log" are ignored when

                        calculating the next file name.  Here are some

                        examples:

 

                            Capture file name   Next Capture file name

                            capture             capture1

                            capture1            capture2

                            capture9            capture10

                            capture09           capture10

                            capture.msg         capture1.msg

                            capture99.msg       capture100.msg

                            cap1                cap3 (if cap2 exists)

 

                        Note: -rollover does no apply to ASCII capture

                        files.

 

  -synconly             Stop after processing current records.

                        Unless -synconly is specified, EloCap

                        copies the current log file records to

                        the capture file(s) and continues to

                        wait for more database changes to copy.

                        Specifying -synconly causes EloCap to

                        stop processing once the current log

                        records have been copied.

 

  -verbose              Display diagnostic messages.

 

  -version              Display EloCap version and version of

                        FWUtil.

 

Eloquence Options:

 

  -cfg <eloq cfg file>  Specify Eloquence configuration file.

                        If -cfg is not specified, the default

                        Eloquence configuration file is used.

                        (/etc/opt/eloquence6/eloqdb6.cfg)

 

  -showstat             Show contents of status file indicated

                        with -stat.  If -verbose is specified,

                        more information is displayed.

 

  -start <log spec>     Specifies the forward log starting point.

                        This option must be specified the first

                        time EloCap is run for a given status

                        file and should not be specified

                        thereafter since the current location is

                        kept in the status file.  The <log spec>

                        is in the formation of:

                            gen[-seq[.tag]]

                        where

                          gen is the log generation

                          seq is the log sequence

                          tag is the log tag sequence

                        Example: -start 48

 

  -stat <status file>   Specifies the status file.  The status

                        file keeps track of the current position

                        in the forward log file sequence.  Using

                        -start initializes the status file and

                        needs to be used the first time a given

                        status file is accessed.  After the first

                        run, the status file is used to contains

                        the current log file position.  If no

                        -stat is specified, default is

                        fwutil.status.

 

Capture file Options:

 

  -dset <dset pattern>  Specifies a dataset or group of datasets

                        to be copied to the capture file.  The

                        format is DB:DATASET with "@" used as a

                        wildcard.  For example, to copy all

                        datasets in the SALES database, use

                        "-dset SALES:@".  To copy all datasets in

                        all databases beginning with "CUST", use

                        "-dset @:CUST@".  The -dset parameter may

                        be specified multiple times to copy

                        several datasets.  Example:

                        "-dset SALES:ORDERS -dset SALES:ORDLINES"

 

  -exthdr               Write capture file records with extended

                        header.  The additional information includes

                        the program name, database users, operating

                        system user and pid of the program that

                        wrote to the database.

 

  -yyyy                 Write capture file records with YYYY

                        dates.  If -yyyy is not specified, capture

                        file records are written with YY dates.

 

  -recnum               Write capture file records with the

                        Eloquence record number.  The record number

                        is written as a 15 character unsigned number.

 

  -fga                  Indicates that the database name should

                        be parsed into FILE.GROUP.ACCOUNT when

                        writing the database name to the capture

                        file.  Without -fga, the first 24

                        characters of the database name as returned

                        by Eloquence are written to the capture file.

 

  -ascii                Write capture file records to a text file.

                        When -ascii is specified, all numeric

                        data is converted to ASCII and character

                        data is cleaned of binary data by converting

                        non-printing characters to '~'.  (To

                        reverse the byte order of binary integers

                        and floating point numbers, use -asciirev

                        instead of -ascii.)

 

  -dirty                May only be used with -ascii.  This option

                        prevents the substitution of non-printing

                        data with '~' and leaves binary data

                        in the output.  Note:  Use of this option

                        is not recommended and may create an

                        unusable capture file.

 

  -bwfmt                May only be used with -ascii.  This option

                        causes I, J and K items to be converted

                        with leading spaces and P and Z items

                        to be converted with leading zeros

                        stripped.  See "V. ASCII Capture Files" below

                        for more information.

 

  -info                 Allows information from the Eloquence

                        environment variable EQ_AUDIT_INFO to be put

                        into the capture file header.  When Eloquence

                        writes a forward log record, the value of

                        the environment variable EQ_AUDIT_INFO is also

                        written to the log file.  The -info option is

                        used to write this value to one of the header

                        fields in the capture file.

 

                        The syntax of the -info option is:

 

                        -info <header field> where <header field>

                            indicates into which capture file header

                            field to write the info and must be either DBNAME,

                            DBUSER, PROG or SESSION.  If the data from the

                            Eloquence audit information is longer than the

                            specified capture file header field, the data is

                            truncated to fit the capture field.  The offset

                            into the capture file depends on whether or not

                            -yyyy is also specified.  The offsets are:

 

                                                    No -yyyy  -yyyy

                                Field       Size    Offset    Offset

                                DBNAME      24      7         7

                                PROG        24      63        65

                                SESSION     8       87        89

                                DBUSER      24      95        97

 

  -progterm <string>    Causes the program name returned by Eloquence to be

                        searched for <string>.  If found, the characters

                        preceding <string> are written to the capture file

                        in the PROG header field.  The program name is

                        delimited by a space with a maximum of 24 characters

                        written to PROG.   If <string> does not appear, then

                        the program name without the directory is written to

                        PROG, with a maximum of 24 characters.  For example,

                        if EloCap is run with "-progterm .acu" and the

                        command line returned by Eloquence FWUtil is:

                       

                        runcbl_AMXW805 -c //TAHP/PROG/MECO0020.acu -x -b -y

 

                        then "//TAHP/PROG/MECO0020" is written to the capture

                        file PROG field because it is bounded by a space

                        and ".acu".

 

Notes:

 

  . All options are case-insensitive.

 

  . The -help, -showstat and -version options simply display

    information with no data captured.  Unless one of these

    options is indicated, at least one capture file is required.

 

  . Capture file options only apply when specified before the

    capture file name.  After one capture file is specified, the

    capture file options are cleared and must be specified again

    for the next capture file.  Example:

      -yyyy -dset SALES:@ sales.msg -yyyy -dset CUSTS:@ custs.msg

 

  . One or more capture files may be specified with different

    capture file options.

 

Examples:

 

    Example 1:

      /opt/taurus/elocap \

      -start 22 -stat elocap.stat -synconly -yyyy capfil.msg

 

      Runs elocap starting from forward log file 22 and writes

      all log file records to capture file "capfil.msg" using

      YYYY dates.  The current log file position is written to

      the status file "elocap.stat".  The -synconly parameter

      causes EloCap to stop after all current log file records

      are processed.

 

    Example 2:

      /opt/taurus/elocap -bg -stat elocap.stat -yyyy capfil.msg

 

      Runs elocap in the background using "elocap.stat" as the

      status file to keep track of the current position.  All log

      file records are written to capture file "capfil.msg" using

      YYYY dates.  The current log file position is kept in the

      status file "elocap.stat".  Since -synconly is not

      specified, the program runs continuously copying changes

      from the log files to the capture file.

 

    Example 3:

      /opt/taurus/elocap -bg -pidfile elocap.pid -stat elocap.stat \

      -yyyy -recnum -dset SALES:@ sales.msg \

      -yyyy -recnum -dset CUST:CUSTOMER -dset CUST:PROD cust.msg

 

      Runs elocap in the background using "elocap.stat" as the

      status file to keep track of the current position.  Two

      capture files are written using YYYY dates and the

      Eloquence record number.  One capture file contains all

      changes to the SALES database and the other capture file

      contains only changes to the datasets CUSTOMER and PROD in

      the CUST database.  The PID of the EloCap process is

      written to the file elocap.pid.

 

    Example 4:

      /opt/taurus/elocap -bg -stat elocap.stat -ascii capfil.txt

 

      Runs elocap in the background using "elocap.stat" as the

      status file to keep track of the current position.  All log

      file records are written in ASCII mode to the text capture

      file "capfil.txt".

 

    Example 5:

      /opt/taurus/elocap -synconly -capstats -start 102 -stat \

        elocap.stat -info dbname capfil.msg

 

      Runs elocap starting from forward log file 102 and writes

      all log file records to capture file "capfil.msg" using

      the standard header the YY dates.  The current log file

      position is written to the status file "elocap.stat".

      The -synconly parameter causes EloCap to stop after all

      current log file records are processed.  The -capstats

      parameter causes a display of the statistics of for each

      dataset when processing is done.  The "-info dbname"

      parameter causes the log file information from the

      EQ_AUDIT_INFO environment variable at the time of log

      to be written to the DBNAME field in the capture

      file header.

 

 

IV. Capture Files

=================

 

The Capture Files written by EloCap are in a proprietary format

intended to duplicate the functionality of MPE/iX message files. 

For users familiar with Unix pipes, a message file is similar to

a pipe except that disk storage is associated with a message

file.  Unlike a pipe, when records are written to a message file,

there does not need to be a reader to read the data.  If there is

no reader, the data is written to disk just like a normal file

and, unlike with a Unix pipe, is durable.

 

Capture files have variable length records.  The length of each

record is written into the file and returned to the calling

program.  This is necessary since each transaction in the file

may contain a different amount of data.

 

When a record is written to a Capture File, it is always appended

to the end of the file.

 

Whenever a record is read from a message file, the oldest record

is read and it is destroyed unless the record was read "non-

destructively."  Non-destructive reads do not change the file.

 

If a process attempts to read from a file that is empty, the read

process waits until a record is written as long as at least one

other process has the file open for writing.  If a process

attempts to read from a file that is empty and no process has the

file open for writing, an end-of-file condition is returned to

the program.  There is an exception for the first read of the

file.  The first read of the file always waits if the file is

empty.  Thereafter, a read will only wait on an empty file if

there is at least one other process writing to the file.

 

Capture files may be opened for reading in a mode that reads

records sequentially like a regular file without deleting them. 

This is the mode that MAKAP uses when printing Capture File

information.

 

Warehouse can be used to access Capture Files created by EloCap. 

To access a Capture File, use the keyword MSG on the OPEN

statement of  a FIXED file.  The syntax is:

 

  OPEN tag FIXED filename MODE={ r | w } MSG

 

Message files must be open with a mode of either r for reading or

w for writing.  When reading from a message file, the keyword NDR 

may be used instead of MSG.  This is to maintain script

compatibility between MPE/iX systems and other systems.

 

Caution:  If you open a message file using MODE=w without MSG,

Warehouse will open the file as a regular file.  Since MODE=w

causes the file contents to be erased when opened, leaving off

MSG will destroy the file contents.

 

Access to Capture Files created in ASCII mode by EloCap is done

with the TEXT file type.  The syntax is:

 

  OPEN tag TEXT filename [MODE=r]

 

For more information, see the Warehouse Reference Manual from

Taurus Software.

 

Each transaction captured results in a record written to the

Capture File.  The capture record for an insert (put) transaction

contains a header and the data inserted.  The capture record for

a delete transaction contains a header and the data deleted.  The

capture record for an update contains a header along with two

copies of the data; one containing the data before it was updated

and the other containing the data after it was updated.

 

    Insert and delete transactions look like this:

 

         Insert Transaction           Delete Transaction

        +-------------------+        +-------------------+

        |                   |        |                   |

        |    Header         |        |    Header         |

        |                   |        |                   |

        +-------------------+        +-------------------+

        |                   |        |                   |

        |    Data           |        |    Data           |

        |    Inserted       |        |    Deleted        |

        |                   |        |                   |

        +-------------------+        +-------------------+

 

    Update transactions look like this:

 

         Update Transaction

        +-------------------+

        |                   |

        |    Header         |

        |                   |

        +-------------------+

        |                   |

        |    Data Before    |

        |    Update         |

        |                   |

        +-------------------+

        |                   |

        |    Data After     |

        |    Update         |

        |                   |

        +-------------------+

 

Every Capture File record has a header that describes the

transaction to the database.  The format of the header depends on

the Capture File options specified when EloCap is run.  There are

two general formats, regular and extended.  In addition, there

are two formats for the transaction date, YYMMDD and YYYYMMDD. 

The regular header with a two-digit year is 62 bytes long.  The

extended header with a two-digit year is 124 bytes long.  If

four-digit years are used, the headers are two bytes longer.  An

Eloquence record number 15 characters long may also be appended

to the end of the header.

 

Many of the header fields are not used by EloCap and are always

spaces.  The FWUtil API supplied by Eloquence does not return the

information, but the header fields are retained for compatibility

with existing DataBridger scripts.

 

The header is entirely in ASCII text characters; it contains no

binary data.  In the header layout below, size is the size in

character bytes and offset is the offset from the beginning of

the record with the beginning at 1.

 

                        YY Date             YYYY Date

    Field       Size    Offset      Size    Offset

    SEQ         6       1           6       1

    FILENAME    8       7           8       7

    GROUPNAME   8       15          8       15

    ACCTNAME    8       23          8       23

    DSETNAME    16      31          16      31

    TXDATE      6       47          8       47

    TXTIME      8       53          8       55

    TXTYPE      2       61          2       63

 

    Size                62                  64

 

    Extended Header Information when -exthdr option is used:

 

    Field       Size    Offset      Size    Offset

    PROG        24      63          24      65

    SESSION     8       87          8       89

    USER        8       95          8       97

    GROUP       8       103         8       105

    ACCOUNT     8       111         8       113

    JS          1       119         1       121

    JSNUM       5       120         5       122

 

    Size                124                 126

 

    Other fields:

 

    Field       Size    Offset      Size    Offset

    RECNUM      15      125         15      127

    DBNAME      24      7           24      7

    DBUSER      24      95          8       97

 

    If RECNUM is specified, it is at the end of the record

    and has a size of 15.  DBNAME and DBUSER are alternate

    names for a concatenation of three other fields.

 

    SEQ       Contains the zero-filled sequence number of the record

              within the file.  This number starts with 000000 and

              increments by one with each transaction.

 

              SEQ begins again at zero each time EloCap is run, so a

              Capture File may have several 000000 sequence records.

 

    FILENAME  Contains characters 1 through 8 of the database

              name.  If the -fga option was specified, the database

              name is parsed and FILENAME contains the FILE part

              of the MPE FILE.GROUP.ACCOUNT syntax.

 

    GROUPNAME Contains characters 9 through 16 of the database

              name.  If the -fga option was specified, the database

              name is parsed and GROUPNAME contains the GROUP part

              of the MPE FILE.GROUP.ACCOUNT syntax.

 

    ACCTNAME  Contains characters 17 through 24 of the database

              name.  If the -fga option was specified, the database

              name is parsed and ACCTNAME contains the ACCOUNT part

              of the MPE FILE.GROUP.ACCOUNT syntax.

 

    DSETNAME  Contains the space-filled name of the dataset accessed.

              The type of transaction to this dataset is indicated by

              TXTYPE.

 

    TXDATE    Contains the current date of the transaction in YYMMDD

              format, unless -yyyy was specified.  If -yyyy was

              specified when EloCap was run, TXDATE is in YYYYMMDD

              format.

 

    TXTIME    Contains the current time of the transaction in

              HH:MM:SS format.

 

    TXTYPE    Contains the type of transaction to the dataset.  The

              possible values are:

 

                 ID - indicates a delete to the dataset

                 IP - indicates an insert (put) to the dataset

                 IU - indicates an update to the dataset

 

    PROG      Contains the first 24 characters of the program name

              with the program directory and options removed.

 

    SESSION   Contains the first 8 characters of the operating system

              user name.

 

    USER      Contains characters 1 through 8 of the database user

              name.

 

    GROUP     Contains characters 9 through 16 of the database user

              name.

 

    ACCOUNT   Contains characters 16 through 24 of the database user

              name.

 

    JS        This field is blank unless the operating system PID

              is longer than five digits, in which case JS contains

              the first digit of the PID.

 

    JSNUM     Contains the zero-filled, right justified first five

              digits of the operating system PID (process ID) of the

              program accessing the database.

 

    RECNUM    Contains the ASCII zero filled Eloquence record number

              of affected record.  This field is only in the header

              if -recnum was specified when EloCap was run.

 

    DBNAME    Is a name for the FILENAME, GROUPNAME and ACCTNAME

              fields concatenated together.

 

    DBUSER    Is a name for the USER, GROUP and ACCOUNT fields

              concatenated together.

 

Here is a Warehouse script that can be used to display the

contents of a Capture File (The MODE=rc indicates the Capture

File is opened in read-copy mode which leaves the Capture File

contents intact.)

 

    * Change <capfile> to your Capture File

    OPEN CAPFIL FIXED <capfile> MODE=rc MSG

    * For an ASCII capture file, use:

    *   OPEN CAPFIL TEXT <capfile> READ

    *

    * Set EXTHDR, RECNUM and YYYY to "Y" or "N"

    #SETVAR EXTHDR ="N"

    #SETVAR RECNUM ="N"

    #SETVAR YYYY   ="N"

    FORMAT CAPFILFMT : RECORD

        SEQ       : IMAGE X6

        FILENAME  : IMAGE X8

        GROUPNAME : IMAGE X8

        ACCTNAME  : IMAGE X8

        DSETNAME  : IMAGE X16

    #IF YYYY="Y"

        TXDATE    : IMAGE X8

    #ELSE

        TXDATE    : IMAGE X6

    #ENDIF

        TXTIME    : IMAGE X8

        TXTYPE    : IMAGE X2

    #IF EXTHDR="Y"

        PROG      : IMAGE X24

        SESSION   : IMAGE X8

        USER      : IMAGE X8

        GROUP     : IMAGE X8

        ACCOUNT   : IMAGE X8

        JS        : IMAGE X1

        JSNUM     : IMAGE X5

    #ENDIF

    #IF RECNUM="Y"

        RECNUM    : IMAGE X15

    #ENDIF

    END

 

    DEFINE NREC : INTEGER VALUE 0

    READ R=CAPFIL FORMAT CAPFILFMT

      SETVAR NREC = NREC + 1

      PRINT NREC:4, SEQ,

      PRINT FILENAME,

      PRINT GROUPNAME,

      PRINT ACCTNAME,

      PRINT DSETNAME,

      PRINT TXDATE,

      PRINT TXTIME,

      PRINT TXTYPE,

    #IF EXTHDR="Y"

      PRINT

      PRINT "    ",

      PRINT PROG,

      PRINT SESSION,

      PRINT USER,

      PRINT GROUP,

      PRINT ACCOUNT,

      PRINT JS,

      PRINT JSNUM,

    #ENDIF

    #IF RECNUM="Y"

      PRINT RECNUM,

    #ENDIF

      PRINT

    ENDREAD

    PRINT

    PRINT NREC:4, "records in Capture File."

 

 

V. ASCII Capture Files

======================

 

When EloCap writes to a Capture File using -ascii, numeric

data types are converted to ASCII characters and non-printing

characters in text fields are "cleaned" from character data

by converting them to '~'.  (The conversion to '~' can be

prevented by using the -dirty option.)

 

In ASCII mode, the capture record is written to a text file

instead of a message file.  Since there is no binary data in the

capture file, it can be accessed by standard text file tools.

 

Data types are converted by EloCap in ASCII mode as follows:

 

    Type Conversion

 

    E2   X15, right justified, space-filled, floating point number

    E4   X25, right justified, space-filled, floating point number

    E8   unimplemented

    I1   X14, right justified, space-filled, floating sign if negative

    I2   X14, right justified, space-filled, floating sign if negative

    I4   X30, right justified, space-filled, floating sign if negative

    J1   X14, Same as I1

    J2   X14, Same as I2

    J4   X30, Same as I4

    K1   X15, right justified, space-filled, unsigned

    K2   X15, right justified, space-filled, unsigned

    K4   X30, right justified, space-filled, unsigned

    Pn   Xn, Sign in first byte, zero-filled

    R2   X15, Same as E2

    R4   X25, Same as E4

    R8   unimplemented

    Un   Xn, non-printing characters converted to '~'

    Xn   Xn, non-printing characters converted to '~'

    Zn   Xn+1, Sign in first byte, zero-filled

 

The sign for P and Z fields will be one these values:

    ' ' - Indicates an unsigned number

    '+' - Indicates a positive number

    '-' - Indicates a negative number

    '*' - Indicates invalid data in field.  For Z items, the

          remaining bytes are the "cleaned" original binary value.

          For P items, the original binary value is "cleaned",

          right-justified with leading spaces.  Implementation

          of invalid items is subject to change in future releases.

 

Other data types are considered an error by EloCap.

 

Examples:

 

    Value       Hex Value         Type EloCap Output

 

    14          000E              I1   | | | | | | | | | | | | |1|4|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2 3 4

 

    -196        FFFFFF3C          I2   | | | | | | | | | | |-|1|9|6|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2 3 4

 

    52016       CB30              K1   | | | | | | | | | | |5|2|0|1|6|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1 1 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

 

    14          303030303134      Z6   | |0|0|0|0|1|4|

                                       +-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0

                                        1 2 3 4 5 6 7

 

    -1400       30303134307D      Z6   |-|0|0|1|4|0|0|

                                       +-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0

                                        1 2 3 4 5 6 7

 

    "Taurus"    546175727573      Z6   |*|T|a|u|r|u|s|

                                       +-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0

                                        1 2 3 4 5 6 7

 

    -196        00000000196D      P12  |-|0|0|0|0|0|0|0|0|1|9|6|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2

 

    binary      000000000000      P12  |*| | | | | |~|~|~|~|~|~|

    zeros                              +-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2

 

    "  Good  "  2020476F6F642020  X8   | | |G|o|o|d| | |

                                       +-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0

                                        1 2 3 4 5 6 7 8

 

    "Bad\r\nX8" 4261640D0A583820  X8   |B|a|d|~|~|X|8| |

                                       +-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0

                                        1 2 3 4 5 6 7 8

 

Using the -bwfmt option combined with ASCII changes the

behavior to output some leading zeros for I, J and K items.

The -bwfmt option also strips leading zeros for P and Z items.

 

The -bwfmt converts as follows:

 

    For I1 and J1 items, output is X14 with:

        Positions 1-6 are spaces

        Position  7 is '-' if number is negative, space if positive

        Positions 8-14 are right justified number with leading zeros

 

    For K1 items output, is X15 with:

        Positions 1-7 are spaces

        Positions 8-10 are '0'

        Positions 11-15 are right justified number with

        leading zeros

 

    For I2 and J2 items, output is X14:

        If number is from 0 to 9999999:

            Positions 1-7 are spaces

            Positions 8-14 are right justified number with

            leading zeros

        If number is from -9999999 to -1:

            Positions 1-6 are spaces

            Position  7 is '-'

            Positions 8-14 are right justified number with

            leading zeros

        Numbers outside above ranges are converted right justified,

        floating sign with no leading zeros.

 

    For K2 items output, is X15 with:

        If number is from 0 to 9999999:

            Positions 1-7 are spaces

            Positions 8-14 are number with leading zeros

        Numbers above 9999999 are converted right justified

        with no leading zeros.

 

    For Pn items output, is Xn right justified, space-filled,

    floating sign if negative.  (Negative zero is output with

    no sign.)

 

    For Zn items output, is Xn+1 right justified, space-filled,

    floating sign if negative.  (Negative zero is output with

    no sign.)

 

Examples of ASCII mode with -bwfmt specified:

 

    Value       Hex Value         Type EloCap Output

 

    14          000E              I1   | | | | | | | |0|0|0|0|0|1|4|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2 3 4

 

    -196        FFFFFF3C          I2   | | | | | | |-|0|0|0|0|1|9|6|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2 3 4

 

    52016       CB30              K1   | | | | | | | |0|0|0|5|2|0|1|6|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1 1 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

 

    14          303030303134      Z6   | | | | | |1|4|

                                       +-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0

                                        1 2 3 4 5 6 7

 

    +124        303030313244      Z6   | | | | |1|2|4|

                                       +-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0

                                        1 2 3 4 5 6 7

 

    -1400       30303134307D      Z6   | | |-|1|4|0|0|

                                       +-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0

                                        1 2 3 4 5 6 7

 

    +196        00000000196C      P12  | | | | | | | | | |1|9|6|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2

 

    -196        00000000196D      P12  | | | | | | | | |-|1|9|6|

                                       +-+-+-+-+-+-+-+-+-+-+-+-+

                                        0 0 0 0 0 0 0 0 0 0 1 1

                                        1 2 3 4 5 6 7 8 9 0 1 2

 

 

VI. MAKAP

========

 

MAKAP is a utility program for accessing Warehouse Capture Files. 

See the file ReadMe.MAKAP included with your Warehouse

distribution.

 

 

VII. Support

===========

 

Telephone help is available from Taurus Software Monday through

Friday from 7:00 a.m. to 5:00 p.m. Pacific Time (holidays

excluded).  Taurus Software customer support may also be reached

using one of the following:

 

    Address:   Taurus Software Inc.

               420 Brewster Avenue

               Redwood City, CA 94063

 

    Phone:     (650) 482-2022 x200

 

    FAX:       (650) 482-2010

 

    Email:     support@taurus.com

 

    Web:       http://www.taurus.com