ipxrns
ipxrns - new version
IPXRNS is to handle the new RNS (Sequence 5plus) service. It sits waiting for
incoming data, parses it, reformats it and sends it on.
eg ipxrns -s(stratus) -p(theirPort) -n RNS.SEP95
or ipxrns -s(stratus) -p(theirPort) -n RNS.SEP95 -M
pram file rns.sep95 is in tables/setup
all files go to wfs5 spool/newrns (destination newrns)
-M for this one does the manual resends
or ipxrns -P(localPort) -n (param file)
or ipxrns -P(localPort) -n (param file) -I for interactive from iprnsd
Record types and associated formatting and destinations are held in the
parameter file in tables/setup. This is normally the ServiceName (-n input
switch) in UpperCase but can be overridden by the '-z' flag.
One and Only one IPXRNS should have the -M for 'look for Manual resends' flag.
These use files in fix to track what has been asked for.
For Manual resends, use iprnsr to send. This leaves a note ipxrns which scans
the file when the second (third, etc) time check/idle poll arrives with no
intervening traffic. This is to make sure the line is quiet before asking for
repeats.
Crontab every NIGHT should erase all files starting '/fip/fix/rns*' but in any
case the program should zap the 'rns' files at midnight.
Auto resends MAY not come clean if there is heavy traffic as there MAY be 2 or
more files interleaved.
The Syntax of the parameter file is :
; comment
msgtyp:(Type) version:(Version) process:(Process) usekey:(Key)
where msgtyp is the LMIL Message Type as in Ref SEQ504
such as '5NC' for RNS News Control
Case is ignored.
version is Message Version Identifier in SEQ504
normally this will be 'AA'
(006t may also be 'AB')
Case is ignored.
process is the internal IPXR process and can be :
Case is ignored.
rnsC for RNS news control, version aa
rnsT for RNS news text, version aa and ab
rnsF for RNS news flash, version aa
rnsH for RNS header or trailer, ver aa
rnsX for RNS missing data, version aa
rnsR for RNS resend, first block, version aa
idle for Idle Polls
yuk for Disaster Recovery
If no process is specified the 'msgtyp'
is ignored.
usekey is the Key for routing using 'key' below
Case is ignored.
key:(Key) dest:(Valid destinations)
or key:(Key) group:(Group) dest:(Valid destinations)
where key is a key described above. Note that the
key for RNS news Control is ignored as the
News Text is used.
dest is one or more valid destinations that
must be in the tables/sys/USERS file.
Two or more are separated by '+' NOT spcs
group is the (Optional) Announcement Group Code
before: Fixed text to add at the start of any Rns file
after: Fixed text to add at the end of any Rns file
fixhdr: additional Fip Hdr info you may want to add
chrset: defaults to 'ascii' - FipHdr field SC
defdest: defaults to 'rns' FipHdr field DU
idlemsg: message otput if an Idle Poll is found
default is "Time Check"
stripeol: Strip multiple End of lines
default - dont
dest-Amarker: (Valid destinations)
This sends a quick FipHdr-only file of an incoming
RNS story made from the news control information.
The FipHdr field specified is used to flag it is
one of these rushes. The whole text file is sent
only when all the data is available.
default: do not send.
amarker-folder: (Folder for Amarkers)
default is the main output folder
dest-abstract (Valid destinations)
This sends a quick FipHdr and first chunk of an
incoming RNS story made from the news control
information and first bit of data.
The FipHdr field specified is used to flag it is
one of these rushes. The whole text file is sent
only when all the data is available.
default: do not send.
abstract-size: (size in bytes) default: 10000 bytes
abstract-small-files:yes/no
default: no
dest-chunk (Valid destinations)
This sends a new file containing the FipHdr and data
in chunks up to factors of 'chunk-size'.
ie the incoming RNS story made from the news control
information and first bit of data.
The FipHdr field specified is used to flag it is
one of these rushes. The whole text file is sent
only when all the data is available.
default: do not send.
chunk-size: (size in bytes) default: 10000 bytes
max-chunk-size: (size in bytes)
Do NOT chunk after this filesize; put all the remaining data into a single,
last chunk
default: no limit
chunk-break-table: (yes/no)
Do/Do NOT break chunks inside an HTML table default: no
chunk-folder: (Folder for Chunks)
default is the main output folder
add-uid: Add the ID in the HR FipHdr field
duplicate-folder: (Folder for a duplicate of the file)
Only complete files are duplicated, not chunks, Amarkers or Abstracts
default: no duplicates
duplicate-fiphdr: (extra FipHdr for a duplicate file)
default: no duplicates
The program will send to the destination that first matches the key. So if
there are several 'if' lines, the first one is used. So any 'if/group' lines,
must be ABOVE the 'if' line for that key with NO 'group' keyword.
ONLY those 'msgtyp's that need to be processed need to be specified in the
parameter file. All others are stripped.
RNS file have a Fip Header of :
SN - announcement number (with preceeding 'rns')
SQ - msgseqno of this Control record.
RA - ann Date and time
RB - ann Date and time - in original format
RC - 3 chrs : Y/Z (resend), Correction, Standby
RY - Y/Z resend flag only or dot
RR - previous Announcement Number
RH - Headline
RD - Company Description
RI - ISIN : Tradable Instrument Code
RJ - ISIN : Country Code
RP - EPIC or Tradable Instrument Display Mnemonic
RG - Announcement Group Code
RT - Category - Security Classification (alpha, beta etc)
RW - For Service Messages/Disaster Recovery/Time Checks - the actual one line
message
RZ - For Service Messages/Disaster Recovery/Time Checks - the actual record
type
SI - Seaq Intl indicator
EA,EF,EK,EP Related Headline 1-4
EB,EG,EL,EQ Related Company Desc 1-4
EC,EH,EM,ER Related ISIN Code 1-4
ED,EI,EN,ES Related ISIN Country 1-4
EE,EJ,EO,ET Related EPIC 1-4
plus RU - Service :AMR, Abtract or blank (for main files)
RF - type of file S-startheadline, H-chunk, R-replace all
Input Parameters :
Mandatory :
-n : name of this service default: RNS
either -s : Spider name or TTY device name default: none
-p : Spider port number default: none
or -P : Port on UnixBox to use for outbound default: none
This is only used where Terminal Servers can
NOT run reverse telnet correctly and need to set a Permanent
Virtual Connection across the ethernet to a fixed port number
on the UnixBox
Optional :
-I : use this for the receive from interactive default: broadcast
(ths switch is capital eye for 'i' not el for 'l')
-M : This copy is used for any manual resends default: no
-a : Allow automatic resends default: not allowed
-A : Do NOT Allow automatic resends default: not allowed
-L : also display all incoming traffic. default: no
-o : output queue default: 2go
-d : dump the RAW feed into file in dump/SU default: no
-z : name of parameter file if not the ServiceName def: no
-X : incoming records are NOT prefixed with an STX def: yestheyare
-m : Using Multicast default: no
-v : Print the version number and exit
Version Control
;6y15 05jul99 added rnsR and rnsS
;a 27jul99 woops bugettre - no seqno for resends SQ:1-3
;b 26aug99 woops - put err msgs back in for -P
;c 17aug01 LINUX version
;d 26nov01 RNS Phase3 mods ...
;e 19jan02 added Service messages in an RW FipHdr field
;f-i 5jun02 WINNT
;j 08jul02 added send-Amarker:
;k-m 25jul02 added mbone -m
;n-o 27nov03 added Abstract
;p-q 04aug04 allow -s host for -P
;r-s 16aug04 added abstract-small-files:yes/no
;t 26sep05 added 5NC version AB
msgtyp:5nc version:ab process:rnsC usekey:rnscopy
;u 02jun06 added speedy and -9
;v-x 15feb07 added chunking (again)
;y14 17sep07 added duplicates, chunk limit and break-tables
and chunk folder and amarker-folder and abstract-folder
(11 and 12a - better error handling for duff input data and bug in abstract)
(14 mods to mcast lib - no xrns)
(copyright) 2025 and previous years FingerPost Ltd.