useFilePolling="true", pollInterval="5000",
inputDataset=”TIBFA.TEST.IN”,
processDataset=”TIBFA.TEST.PROCESS”,
outputDataset=”TIBFA.TEST.OUT”,
useFieldWidth="false", delimiter="|",
useFilePolling="true", pollInterval="5000",
inputDataset=”TIBFA.TEST.IN”,
processDataset=”TIBFA.TEST.PROCESS”,
outputDataset=”TIBFA.TEST.OUT”,
As an example of how to use the constraint parameter, suppose a file contains both order header and order detail records that must be combined into one output TIBCO message, but the records have different formats. You could create a TIBCO message as follows:
4.
|
The parameter containerName is used to identify the container. For this example, the values supplied are containerName=”OrderHeader” and containerName=”OrderDetail”.
|
HDR123-234-52344DTL34234:22343:3534534
DTL47463:34763:2734641
DTL18231:23423:1234123
HDR874-647-12331
DTL81321:46157:412564 …
containerName = “OrderDetail” },
This example shows a FilePublisher configuration file that supports the following four supported numeric data types: zoned, binary, packed, and floating point. For the FilePublisher sample configuration file, three messageItems are specified.
•
|
The FILE_OPTIONS element of the FileType section contains the parameter isBinary, specified as true.
|
•
|
The precision tag in the messageItem parameter is used to identify the relative length of the field and the number of decimal positions. FilePublisher, depending on the data type, calculates the length of the field within the record. For example, if the field is identified as BINARY, and the precision is specified as 9,2, then the field occupies 4 bytes of data in the record.
|
When you configure COMP-1 or COMP-2 values, do not include a precision tag. This is because COMP-1 and COMP-2 fields have defined attributes, such as the length of the field and the decimal precision.
The following example lists the configuration file for publishing a KSDS VSAM file. The important flags are
inputDataset, which specifies the cluster name and
datasetType, which specifies that it is a VSAM file. All remaining flags are same as the SEQ file types. Various trigger messages that can be used to publish the file. are also listed.
inputDataset = "TIBCO.TFA.KSDS.CLUSTER.UPATH",
vsamAltIndex=" TIBCO.TFA.KSDS.CLUSTER.UPATH",
vsamAltIndex=" TIBCO.TFA.KSDS.CLUSTER.NUPATH",
To publish the contents of the KSDS file using the
AltIndex starting with binary integer keys 1234 and ending at key 5678:
To publish the contents of the RRDS file starting with
RRN 100 and continuing for a maximum of 10 records:
RVMSG_STRING 2 MAXRECORDS "10"
This configuration is for publishing a file using ECM with __TIBCO_AE_ADAPTER_FAFT_*.<subject name> administrative messages handshake.
FILE_OPTIONS = {filePrefix = "PB026",
dataSetType = "SEQ",
useFilePolling = "false",
useExplicitConfirmation = "true",
publishSubjectName = "A.FT11",
triggerSubjectName = "TRIG.PUB018",
ECMSubscriberName = "SUB1",
ECMSubscriberName = "SUB2",
blockTransferMode = "true",
messagesPerTransaction = "3",
transactionDelay = "5000",
retransmissionDelayTicks = "10",
noWaitAfterConfirmation = "true",
isBinary = "true",
endPublishSubject = "END.BLOCK_TRANSFER.FILE"
}
EPM_DESTINATION = "A.EMSP001"
This configuration demonstrates how multiple File Types can be defined in a single config file. Up to a maximum of 512 File Types can be defined in a single config file. A single config file can contain any combination of record mode, block mode, VSAM, SEQ, or PDS files.
When nesting map messages, child messages are nested inside a stream message. This allows the nested map messages to be retrieved in the order in which they were inserted from inside the stream message without extra effort. In addition, at each transaction boundary, each map message will identify itself with an internal name-value pair generated by the FilePublisher. This internal name-value pair appears as follows:
where dytsth is the name defined for the container name in the CONSTRAINT.
MESSAGE_FIELDS = { CONSTRAINT = {POSITION = "0", length = "1", value = "H", startnewmessage = "true",
containername = "dytsth" } ,
MESSAGEITEM = { position="0", length = "1",
label="hdrRec", type="STRING" },
MESSAGEITEM = { position="1", length = "11",
label="hPartNo", type="STRING" },
MESSAGEITEM = { position="12",length = "15",
label="hDesc", type="STRING" },
MESSAGEITEM = { position="27",length = "11",
label="hManufacturer", type="STRING" },
MESSAGEITEM = { position="38",length = "12",
label="hModel", type="STRING" } }
MESSAGE_FIELDS = { CONSTRAINT = {POSITION = "0", length = "1", value = "D", startnewmessage = "false",
containername = "dytstd" } ,
MESSAGEITEM = { position="0", length = "1",
label="dtlRec", type="STRING" },
MESSAGEITEM = { position="1", length = "11",
label="PartNo", type="STRING" },
MESSAGEITEM = { position="12",length = "15",
label="Desc", type="STRING" },
MESSAGEITEM = { position="27",length = "11",
label="Manufacturer", type="STRING" },
MESSAGEITEM = { position="38",length = "12",
label="Model", type="STRING" }
Hpartnumber1description1111manufact111modelnum1111Dpartnumber1description1111manufact111modelnum1111
Hpartnumber2description2222manufact222modelnum2222
Dpartnumber2descriptionXXXXmanufact222modelnum2222
Dpartnumber2description2222manufact222modelnum2222
Hpartnumber3description3333manufact333modelnum3333
Dpartnumber3description3333manufact333modelnum3333
StreamMessage={ Header={ JMSMessageID={ID:EMS-SERVER.7B84B0D3513102:25} JMSDestination={Queue[DY.MRECFM.FILE.BACKUP]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={Thu Dec 03 10:03:43 EST 2009} JMSExpiration={0} JMSPriority={4} } Properties={ JMS_TIBCO_MSG_EXT={Boolean:true} } Fields={ {MapMsg:{ hDesc={String:description1111} hModel={String:modelnum1111} aXxXCONSTRAINTXxXa={String:dytsth} hPartNo={String:partnumber1} hManufacturer={String:manufact111} hdrRec={String:H} }} {MapMsg:{ Manufacturer={String:manufact111} Model={String:modelnum1111} aXxXCONSTRAINTXxXa={String:dytstd} PartNo={String:partnumber1} dtlRec={String:D} Desc={String:description1111} }} } }
StreamMessage={ Header={ JMSMessageID={ID:EMS-SERVER.7B84B0D3513102:26} JMSDestination={Queue[DY.MRECFM.FILE.BACKUP]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={Thu Dec 03 10:03:44 EST 2009} JMSExpiration={0} JMSPriority={4} } Properties={ JMS_TIBCO_MSG_EXT={Boolean:true} } Fields={ {MapMsg:{ hDesc={String:description2222} hModel={String:modelnum2222} aXxXCONSTRAINTXxXa={String:dytsth} hPartNo={String:partnumber2} hManufacturer={String:manufact222} hdrRec={String:H} }} {MapMsg:{ Manufacturer={String:manufact222} Model={String:modelnum2222} aXxXCONSTRAINTXxXa={String:dytstd} PartNo={String:partnumber2} dtlRec={String:D} Desc={String:descriptionXXXX} }} {MapMsg:{ Manufacturer={String:manufact222} Model={String:modelnum2222} aXxXCONSTRAINTXxXa={String:dytstd} PartNo={String:partnumber2} dtlRec={String:D} Desc={String:description2222} }} } }
StreamMessage={ Header={ JMSMessageID={ID:EMS-SERVER.7B84B0D3513102:27} JMSDestination={Queue[DY.MRECFM.FILE.BACKUP]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={Thu Dec 03 10:03:44 EST 2009} JMSExpiration={0} JMSPriority={4} } Properties={ JMS_TIBCO_MSG_EXT={Boolean:true} } Fields={ {MapMsg:{ hDesc={String:description3333} hModel={String:modelnum3333} aXxXCONSTRAINTXxXa={String:dytsth} hPartNo={String:partnumber3} hManufacturer={String:manufact333} hdrRec={String:H} }} {MapMsg:{ Manufacturer={String:manufact333} Model={String:modelnum3333} aXxXCONSTRAINTXxXa={String:dytstd} PartNo={String:partnumber3} dtlRec={String:D} Desc={String:description3333} }} } }
MapMessage={ Header={ JMSMessageID={ID:EMS-SERVER.7B84B0D3513102:28} JMSDestination={Queue[DY.MRECFM.FILE.BACKUP]} JMSReplyTo={null} JMSDeliveryMode={PERSISTENT} JMSRedelivered={false} JMSCorrelationID={null} JMSType={null} JMSTimestamp={Thu Dec 03 10:03:44 EST 2009} JMSExpiration={0} JMSPriority={4} } Properties={ } Fields={ HOSTNAME={String:IBMI-V5R4.NA.TIBCO.COM} RecordNumber={Integer:0} filename={String:DY2A} eof={Boolean:true} numofretries={Integer:1} NumberOfMessages={Integer:3} trackingid={String:Kq2@@D@@GlPVoE@56azzxkDkzzw} version={String:5.0} USERID={String:} } }