readmin advance usage.

-c : display changed byte

Display altered bytes at the end of any ALT line , after the Tag, "ChgBytes:"

Example:

readmin -c

Output line:

160222 09:17:00  cc       10   stpost    Alt  STOCK_LOG  1  1002595         ECLIPSE CHAIR YELLOW CODE FABRIC              2609 ChgBytes: 124-125,3076-3077,3172,3333-3334,3336

-f <filename> : specify input log file

Example:

readmin -f log.22feb17-0

-m <logid:offset:datatype>

Search the log file for Alter logs, that changed a paticular field on one type of record.

logid

logid is the control logid which you can easily find out using fdbstat.

following example show logid for STOCK is 9

fdbstat -v /u/cc/comp/stock.dat
Filename      flags  ssize/ vsize/ bucsiz/ 1stbuc/ # bucs/ lastbuc nulls log     release
                     prelen suflen keysize elsize  maxnkey lastnod ok ?  id      alphalen

stock.dat     MASTER 3072   1024   4096    2       0       1147          9       64

offset

offset is the starting byte of the field in the record. which can be found by running align on any dec files in /u/ccr.xx/std/hdrs/

use stock.dec as an example

align /u/ccr.16/std/hdrs/stock.dec

following is a cut down version of the out.

start   end    no.of   decimal datatype field_name
byte    byte   byte
/* struct s_sstock */
0       3       4       0       RECPTR  recno
4       5       2       0       BRANCHSIZE      active
6       21      16      0       TEXT    code
22      87      66      0       FILL    old_desc
88      88      1       0       TEXT    replen_period
89      89      1       0       TEXT    status
90      90      1       0       SHTINT  staxcode
91      91      1       0       SHTINT  n_dim
92      95      4       0       RECPTR  stk_par
96      98      3       0       TEXT    st_type
99      104     6       0       TEXT    b_unit
105     110     6       0       TEXT    s_unit
111     111     1       0       TEXT    use_curr_cost
112     115     4       0       RECPTR  catptr
116     117     2       0       TYPDATE lastdblogedd
118     119     2       0       TYPTIME lastdblogedt
120     123     4       2       SHTDEC  markup
124     127     4       2       SHTDEC  supp_cost
etc....
/* total size of s_sstock = 3072 */
/* struct s_vstock */
0       3       4       2       SHTDEC  incost
4       7       4       2       SHTDEC  l_cost
8       9       2       0       TYPDATE lpdate
10      11      2       0       TYPDATE lastmov
12      35      24      0       FILL    vsupp_fill
36      39      4       2       SHTDEC  obqty
40      43      4       2       SHTDEC  qty_on_ebay
44      47      4       2       SHTDEC  qohand
etc...
/* total size of s_vstock = 1024 */

if the field is in the sstock , or static part of the record the

offset is simply the start byte use supp_cost as as example is 124.

if the field is in the vstock, or the variable part of the record the

offset is the start byte plus the size of the static part

use l_cost as example its 4+3072 = 3076.

datatype

datatype tell the program how to read the field. it can be one of the following

t -- align datatype = TEXT and no.of byte is bigger than 1(for string, e.g. descriptions. address)
b -- align datatype = TEXT and no.of byte is 1 (for options)
s -- align datatype is one of the following BRANCHSIZE, SMLPTR, SMLDEC, UCOUNT, TYPDATE, TYPTIME or COUNT
n -- align datatype is one of the following SHTDEC, RECPTR, EXTDEC THREDEC 
d -- align datatype = LNGDEC