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