nastel / tnt4j-streams Goto Github PK
View Code? Open in Web Editor NEWTNT4J Streams allows data streaming, parsing from various data sources into TNT4J event sinks
License: Apache License 2.0
TNT4J Streams allows data streaming, parsing from various data sources into TNT4J event sinks
License: Apache License 2.0
example of MQ Activity Trace-
MonitoringType: MQI Activity Trace
Correl_id:
00000000: 414D 5143 4147 4E54 3120 2020 2020 2020 'AMQCAGNT1 '
00000010: 865A A758 2027 A116 '†Z§X '¡. '
stream conversion example -
MQCFBS (com.ibm.mq.headers.internal.store.ByteStore [encoding: 0x00000001, ccsid: 1208, size: 40] @542337171)
MQLONG Type: 9 (0x00000009)
MQLONG StrucLength: 40 (0x00000028)
MQLONG Parameter: 7011 (MQBACF_CORREL_ID)
MQLONG StringLength: 24 (0x00000018)
MQBYTE[] String: 0x414d514341474e543120202020202020dd989b58204f8037
this is the only trace i am able to share. it seems that it goes into loop
in WmqTraceStream line code 174.
i can not reproduce it at will, but it seems to it relates to activity trace intercepts from the IIB
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
at com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream.getNextItem(WmqTraceStream.java:174)
For consistency, use local timestamp; see below at the arrow "<==="
Extract from tnt4j-streams.log:
2017-09-07 12:17:03,489 TRACE [9:WmqTraceStream:WmqActivityTraceStreamQM_A!WmqTraceParser] - Locator 'MQGACF_ACTIVITY_TRACE.MQIACF_INVALID_DEST_COUNT' resolved value: null | TRACE |
2017-09-07 16:17:03.489000 UTC | RUNTIME=9068@Howard2-PC#SERVER=Howard2-PC#NETADDR=11.0.0.24#DATACENTER=UNKNOWN#GEOADDR=0,0 <====
2017-09-07 12:17:03,489 TRACE [9:WmqTraceStream:WmqActivityTraceStreamQM_A!ActivityInfo] - Applying field MQTrace.InvalidDestCount from: null | TRACE | 2017-09-07 16:17:03.489000 UTC | RUNTIME=9068@Howard2-PC#SERVER=Howard2-PC#NETADDR=11.0.0.24#DATACENTER=UNKNOWN#GEOADDR=0,0
2017-09-07 12:17:03,489 TRACE [9:WmqTraceStream:WmqActivityTraceStreamQM_A!ActivityInfo] - Field MQTrace.InvalidDestCount resolves to null value. Will not apply field to activity... | TRACE |
An example below
need to support concatenating fields that use transformation.
<field name="MFT_SRC_FILE_NAME" locator="/transaction/transferSet/item/source/file" locator-type="Label">
<field-transform name="fileName" lang="xpath">
ts:getFileName($fieldValue)
</field-transform>
</field>
<field name="MFT_DST_FILE_NAME" locator="/transaction/transferSet/item/destination/file" locator-type="Label">
<field-transform name="fileName" lang="xpath">
ts:getFileName($fieldValue)
</field-transform>
</field>
concatenate two results as this field
2016-12-01 08:52:10,410 DEBUG [10:WmqStream:WmqStream!MessageActivityXmlParser] - Parsing: started192.168.188.1useruserAGNT1AAGNT1Auseruser192.168.188.1414d512041474e543
120202020202020d9433358207b6426Monitor for SUNGUARD files4Monitor for SUNGUARD files | DEBUG | 2016-12-01 13:52:10.410000
UTC | RUNTIME=83488@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=11.0.0.236#DATACENTER=UNKNOWN#GEOADDR=0,0
2016-12-01 08:52:10,703 ERROR [10:WmqStream:WmqStream!WmqStream] - Failed to record activity at position 0: Failed to process activity data at position 0 | ERROR | 2016-12-01 13:52:10.702000 UTC | RUNTIME=83488@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=11.0.0.236#DATACENTER=UNKNOWN#GEOADDR=0,0
java.text.ParseException: Failed to process activity data at position 0
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.makeActivityInfo(TNTParseableInputStream.java:225)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.processActivityItem(TNTParseableInputStream.java:244)
at com.jkoolcloud.tnt4j.streams.inputs.TNTInputStream.run(TNTInputStream.java:629)
at java.lang.Thread.run(Unknown Source)
Caused by: java.text.ParseException: Failed parsing data for field CompCode
at com.jkoolcloud.tnt4j.streams.parsers.ActivityXmlParser.parsePreparedItem(ActivityXmlParser.java:278)
at com.jkoolcloud.tnt4j.streams.parsers.ActivityXmlParser.parse(ActivityXmlParser.java:215)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.applyParsers(TNTParseableInputStream.java:167)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.applyParsers(TNTParseableInputStream.java:142)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.makeActivityInfo(TNTParseableInputStream.java:222)
... 3 more
Caused by: java.text.ParseException: Field CompCode, multiple locators are not supported for enumeration-based fields
at com.jkoolcloud.tnt4j.streams.fields.ActivityInfo.applyField(ActivityInfo.java:126)
at com.jkoolcloud.tnt4j.streams.parsers.ActivityParser.applyFieldValue(ActivityParser.java:126)
at com.jkoolcloud.tnt4j.streams.parsers.MessageActivityXmlParser.applyFieldValue(MessageActivityXmlParser.java:192)
at com.jkoolcloud.tnt4j.streams.parsers.ActivityParser.applyFieldValue(ActivityParser.java:152)
at com.jkoolcloud.tnt4j.streams.parsers.ActivityXmlParser.parsePreparedItem(ActivityXmlParser.java:268)
... 7 more
Need trace option for tnt4j-streams
2017-05-16 12:28:14,243 ERROR [9:WmqStream:WmqStream!TrackerImpl] - Failed to open event sink vm.name=55479@P1RAZ0080AS001, tid=9, event.sink=com.jkoolcloud.jesl.tnt4j.sink.JKCloudEventSink@a97d8ab(url: https://data.jkoolcloud.com:6585, jk.handle: com.jkoolcloud.jesl.net.JKClient@1a037526, piped.sink: com.jkoolcloud.tnt4j.sink.impl.FileEventSink@5177aec8), source=com.jkoolcloud.tnt4j.source.
java.io.IOException: Failed to connect to uri=https://data.jkoolcloud.com:6585, reason=Connection timed out (Connection timed out)
at com.jkoolcloud.jesl.net.http.HttpClient.connect(HttpClient.java:171)
at com.jkoolcloud.jesl.net.http.HttpClient.connect(HttpClient.java:180)
at com.jkoolcloud.jesl.net.JKClient.connect(JKClient.java:128)
at com.jkoolcloud.jesl.tnt4j.sink.JKCloudEventSink.open(JKCloudEventSink.java:250)
at com.jkoolcloud.tnt4j.tracker.TrackerImpl.openEventSink(TrackerImpl.java:133)
at com.jkoolcloud.tnt4j.tracker.TrackerImpl.open(TrackerImpl.java:683)
at com.jkoolcloud.tnt4j.tracker.TrackerImpl.(TrackerImpl.java:107)
at com.jkoolcloud.tnt4j.tracker.DefaultTrackerFactory.getInstance(DefaultTrackerFactory.java:61)
at com.jkoolcloud.tnt4j.TrackingLogger.getInstance(TrackingLogger.java:369)
at com.jkoolcloud.tnt4j.streams.outputs.AbstractJKCloudOutput.getTracker(AbstractJKCloudOutput.java:216)
at com.jkoolcloud.tnt4j.streams.outputs.JKCloudActivityOutput.logItem(JKCloudActivityOutput.java:72)
at com.jkoolcloud.tnt4j.streams.outputs.JKCloudActivityOutput.logItem(JKCloudActivityOutput.java:37)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.processActivityItem(TNTParseableInputStream.java:261)
at com.jkoolcloud.tnt4j.streams.inputs.TNTInputStream.run(TNTInputStream.java:690)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:542)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:414)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326)
at com.jkoolcloud.jesl.net.http.HttpClient.connect(HttpClient.java:167)
... 14 more
2017-05-16 12:28:14,244 ERROR [9:WmqStream:WmqStream!WmqStream] - Failed to record activity at position 0: Tracker is not opened to record activity data... | ERROR | 2017-05-16 12:28:
java.lang.IllegalStateException: Tracker is not opened to record activity data...
at com.jkoolcloud.tnt4j.streams.outputs.AbstractJKCloudOutput.checkTrackerState(AbstractJKCloudOutput.java:169)
at com.jkoolcloud.tnt4j.streams.outputs.AbstractJKCloudOutput.getTracker(AbstractJKCloudOutput.java:217)
at com.jkoolcloud.tnt4j.streams.outputs.JKCloudActivityOutput.logItem(JKCloudActivityOutput.java:72)
at com.jkoolcloud.tnt4j.streams.outputs.JKCloudActivityOutput.logItem(JKCloudActivityOutput.java:37)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.processActivityItem(TNTParseableInputStream.java:261)
at com.jkoolcloud.tnt4j.streams.inputs.TNTInputStream.run(TNTInputStream.java:690)
at java.lang.Thread.run(Thread.java:745)
2017-05-16 12:28:14,245 DEBUG [9:WmqStream:WmqStream!StreamsThread] - Signaled to stop 9:WmqStream:WmqStream
how to handle properties in tnt4j?
2016-12-01 09:05:19,179 ERROR [main!StreamsAgent] - Parser MQFTEParserNormal already has field named Custom, at line 109 |
org.xml.sax.SAXException: Parser 'MQFTEParserNormal' already has field named 'Custom', at line 109
java.lang.IllegalArgumentException: Parser 'MQFTEParserNormal' already has field named 'Custom'
at com.jkoolcloud.tnt4j.streams.configure.sax.ConfigParserHandler.endElement(ConfigParserHandler.java:1149)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at com.jkoolcloud.tnt4j.streams.configure.sax.StreamsConfigSAXParser.parse(StreamsConfigSAXParser.java:80)
at com.jkoolcloud.tnt4j.streams.configure.StreamsConfigLoader.load(StreamsConfigLoader.java:153)
at com.jkoolcloud.tnt4j.streams.configure.StreamsConfigLoader.(StreamsConfigLoader.java:103)
at com.jkoolcloud.tnt4j.streams.StreamsAgent.loadConfigAndRun(StreamsAgent.java:181)
at com.jkoolcloud.tnt4j.streams.StreamsAgent.loadConfigAndRun(StreamsAgent.java:175)
at com.jkoolcloud.tnt4j.streams.StreamsAgent.main(StreamsAgent.java:88)
Caused by: java.lang.IllegalArgumentException: Parser 'MQFTEParserNormal' already has field named 'Custom'
at com.jkoolcloud.tnt4j.streams.parsers.GenericActivityParser.addField(GenericActivityParser.java:105)
at com.jkoolcloud.tnt4j.streams.configure.sax.ConfigParserHandler.endElement(ConfigParserHandler.java:1112)
... 18 more
In reference to my earlier opened issue "Name-Value parser does not handle new line char (or in regex) as FieldDelim or ValueDelim correctly", a real SWIFT msg format has no space delimiter between the SWIFT tag and the field value and no semi-colon at the end of the line, eg.
:33A:BankOfParis
:25:234.00DLR
etc
I cannot find a combination of FieldDelim and ValueDelim to properly parse the msg.
When I run the message-broker/run.sh (ubuntu 16.04) I get the following error:
Failed to connect to queue manager: com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2495'. (MQRC_MODULE_NOT_FOUND)
My QMGR is started.
I think it has something to do with the app not finding mqjbnd, or the right version of it. I tried pointing my MQ_JAVA_LIB_PATH to the 32-bit and the 64-bit lib-subfolders, but that did not help. Any ideas on how to solve this?
similarly to #19 client applications issue MQOPEN, MQCLOSE, MQCONNECT, MQDISCONNECT, MQCONNECT_X and etc. that could cause overflow.
need a method to suppress unwanted MQ trace operations
Trying to parse a simple msg, whose text arrives via the IBM activity trace.
In my parser source xml file, I have specified the following, with FieldDelim, end of a field, to be one or more carriage return or new line chars, and ValueDelim is a space:
<parser name="SWIFT_NV_Msg_Data_parser" class="com.jkoolcloud.tnt4j.streams.parsers.ActivityNameValueParser">
<property name="FieldDelim" value="[\r\n]+"/>
<property name="ValueDelim" value=" "/>
<property name="Pattern" value="(.*)"/>
<property name="StripQuotes" value="false"/>
<property name="UseActivityDataAsMessageForUnset" value="false"/>
<field name="TransID" locator=":33A" locator-type="Label"/>
<field name="TransType" locator=":24B" locator-type="Label"/>
<field name="TransValue" locator=":35J" locator-type="Label"/>
<field name="UserData" separator=":">
<field-locator locator=":57J" locator-type="Label"/>
<field-locator locator=":36" locator-type="Label"/>
</field>
</parser>
The test msg contains these lines, each ending with a newline char \n = 0x0A
: :33A: TEST11_TID1234;
:24B: TEST11_TRANTYPE;
:35J: TEST11_$123.45;
:57J: /ABIC/TEST11_LOYDGB22
/NAME/Lloyds_Treasury
/GBSC/301557;
:36: TEST11_SENDING_PARTY;
The tnt4j-streams.log (below) shows that the input was split on the two 'r' chars in the word 'Treasury'
instead of the new line char at the end of each line, indicating that the '\r' in the FieldDelim param was handled as a literal 'n' char. The same result occurs if FieldValue="\n".
Setting FieldValue=";" will cause correct parsing, but I added the semi-colons to the msg for test purposes; a real SWIFT msg line ends with \n char or \r\n depending on the OS.
==========================================
tnt4j-streams.log:
2017-09-06 18:00:14,982 DEBUG [9:WmqTraceStream:WmqActivityTraceStreamQM_A!ActivityNameValueParser] - Split input into 3 fields | DEBUG | 2017-09-06 22:00:14.982000 UTC | RUNTIME=8800@Howard2-PC#SERVER=Howard2-PC#NETADDR=11.0.0.24#DATACENTER=UNKNOWN#GEOADDR=0,0
2017-09-06 18:00:14,982 TRACE [9:WmqTraceStream:WmqActivityTraceStreamQM_A!ActivityNameValueParser] - Found Name/Value: :33A: TEST11_TID1234;:24B: TEST11_TRANTYPE;:35J: TEST11_$123.45;:57J: /ABIC/TEST11_LOYDGB22/NAME/Lloyds_T | TRACE | 2017-09-06 22:00:14.982000 UTC | RUNTIME=8800@Howard2-PC#SERVER=Howard2-PC#NETADDR=11.0.0.24#DATACENTER=UNKNOWN#GEOADDR=0,0
2017-09-06 18:00:14,982 TRACE [9:WmqTraceStream:WmqActivityTraceStreamQM_A!ActivityNameValueParser] - Found Name/Value: easu | TRACE | 2017-09-06 22:00:14.982000 UTC | RUNTIME=8800@Howard2-PC#SERVER=Howard2-PC#NETADDR=11.0.0.24#DATACENTER=UNKNOWN#GEOADDR=0,0
2017-09-06 18:00:14,982 TRACE [9:WmqTraceStream:WmqActivityTraceStreamQM_A!ActivityNameValueParser] - Found Name/Value: y/GBSC/301557;:36: TEST11_SENDING_PARTY; | TRACE | 2017-09-06 22:00:14.982000 UTC | RUNTIME=8800@Howard2-PC#SERVER=Howard2-PC#NETADDR=11.0.0.24#DATACENTER=UNKNOWN#GEOADDR=0,0
017-02-28 12:09:16,376 DEBUG [10:WmqTraceStream:WmqActivityTraceStream!WmqTraceStream] - Trace message consumption check: PCF message is null | DEBUG | 2017-02-28 17:09:16.376000 UTC | RUNTIME=58004@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=11.0.0.236#DATACENTER=UNKNOWN#GEOADDR=0,0
017-02-28 12:09:16,376 DEBUG [10:WmqTraceStream:WmqActivityTraceStream!WmqTraceStream] - Waiting for message on SYSTEM.ADMIN.TRACE.ACTIVITY.QUEUE | DEBUG | 2017-02-28 17:09:16.376000 UTC | RUNTIME=58004@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=7:#DATACENTER=UNKNOWN#GEOADDR=0,0
017-02-28 12:09:16,378 DEBUG [10:WmqTraceStream:WmqActivityTraceStream!WmqTraceStream] - Read msg from SYSTEM.ADMIN.TRACE.ACTIVITY.QUEUE, total payload length=712 | DEBUG | 2017-02-28 17:09:16.378000 UTC | RUNTIME=58004@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=7:#DATACENTER=UNKNOWN#GEOADDR=0,0
017-02-28 12:09:16,381 DEBUG [10:WmqTraceStream:WmqActivityTraceStream!WmqTraceStream] - Trace operation MQXF_CLOSE match stream defined operations set: true | DEBUG | 2017-02-28 17:09:16.381000 UTC | RUNTIME=58004@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=7:#DATACENTER=UNKNOWN#GEOADDR=0,0
017-02-28 12:09:16,381 DEBUG [10:WmqTraceStream:WmqActivityTraceStream!WmqTraceStream] - Trace reason code MQRC_NONE is not in stream defined exclusions set: true | DEBUG | 2017-02-28 17:09:16.381000 UTC | RUNTIME=58004@7:N-PC#SERVER=7:N-PC#NETADDR=7:#DATACENTER=UNKNOWN#GEOADDR=0,0
017-02-28 12:09:16,382 DEBUG [10:WmqTraceStream:WmqActivityTraceStream!WmqTraceStream] - Trace message initiation: PCF message activity trace marker value: 1/1 | DEBUG | 2017-02-28 17:09:16.382000 UTC | RUNTIME=58004@7:N-PC#SERVER=7:N-PC#NETADDR=7:#DATACENTER=UNKNOWN#GEOADDR=0,0
017-02-28 12:09:16,382 DEBUG [10:WmqTraceStream:WmqActivityTraceStream!WmqTraceParser] - Parsing: com.ibm.mq.pcf.PCFMessage | DEBUG | 2017-02-28 17:09:16.382000 UTC | RUNTIME=58004@7:N-PC#SERVER=7:N-PC#NETADDR=7:#DATACENTER=UNKNOWN#GEOADDR=0,0
017-02-28 12:09:16,398 WARN [10:WmqTraceStream:WmqActivityTraceStream!WmqTraceParser] - Failed to transform locator 'MQGACF_ACTIVITY_TRACE.MQBACF_MESSAGE_DATA' value: 'null' | WARNING | 2017-02-28 17:09:16.398000 UTC | RUNTIME=58004@7:N-PC#SERVER=7:N-PC#NETADDR=7:#DATACENTER=UNKNOWN#GE
ADDR=0,0
om.jkoolcloud.tnt4j.streams.transform.TransformationException: Failed to apply transformation 'fileName'
at com.jkoolcloud.tnt4j.streams.transform.GroovyTransformation.transform(GroovyTransformation.java:57)
at com.jkoolcloud.tnt4j.streams.fields.ActivityFieldLocator.transformValue(ActivityFieldLocator.java:489)
at com.jkoolcloud.tnt4j.streams.parsers.GenericActivityParser.getLocatorValue(GenericActivityParser.java:408)
at com.jkoolcloud.tnt4j.streams.parsers.GenericActivityParser.parseLocatorValues(GenericActivityParser.java:347)
at com.jkoolcloud.tnt4j.streams.parsers.GenericActivityParser.parseLocatorValues(GenericActivityParser.java:326)
at com.jkoolcloud.tnt4j.streams.parsers.GenericActivityParser.parsePreparedItem(GenericActivityParser.java:237)
at com.jkoolcloud.tnt4j.streams.parsers.GenericActivityParser.parse(GenericActivityParser.java:207)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.applyParsers(TNTParseableInputStream.java:167)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.applyParsers(TNTParseableInputStream.java:142)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.makeActivityInfo(TNTParseableInputStream.java:222)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.processActivityItem(TNTParseableInputStream.java:244)
at com.jkoolcloud.tnt4j.streams.inputs.TNTInputStream.run(TNTInputStream.java:690)
at java.lang.Thread.run(Unknown Source)
aused by: java.lang.NullPointerException
at java.lang.String.(Unknown Source)
at sun.reflect.GeneratedConstructorAccessor21.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:255)
at fileName.run(fileName:1)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:604)
at com.jkoolcloud.tnt4j.streams.transform.GroovyTransformation.transform(GroovyTransformation.java:54)
... 12 more
[ERROR] /C:/java/GitHub/tnt4j-streams/tnt4j-streams-core/src/main/java/com/jkoolcloud/tnt4j/streams/inputs/TNTInputStream.java:[859,17] cannot find symbol
symbol: method endTransaction()
location: class com.jkoolcloud.tnt4j.streams.inputs.TNTInputStream<T,O>
[INFO] 1 error
May be applicable beyond MQ but specifically, MQ provides 2 forms of MQGET, a destructive get and a browse (controlled by message get options). Browsing can create a lot of messages since a common application model is to browse the entire queue looking for a specific message. It may do this repeatedly over the course of time, potentially generating 1000s of message events. In some cases, these events are useful but in many cases, they are just 'noise'.
The XML test msg as shown with the given source parser spec fails to parse. But if the namespace attribute is changed to add a namespace prefix, i.e "xmlns:mybank=..." or if the entire XML namespace attribute is removed, then the msg parses correctly.
Test Msg
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Request xmlns="http://www.mybank.com/EPH/BankRequest">
<header>
<amount>TEST30-0.01</amount>
<sender>HISBANK</sender>
<currency>USD</currency>
</header>
<genericTransFields>
<type>SWF202 OUTBOUND </type>
<receiver>MYBANK FRANKFURT FRANKFURT BRANCH</receiver>
<userRef>TEST30-QT06171612-1</userRef>
</genericTransFields>
</Request>
Parser source .xml
<parser name="MYBANK_XML_Msg_Data_parser" class="com.jkoolcloud.tnt4j.streams.parsers.ActivityXmlParser">
<field name="EventName" value="MYBANK XML Transaction"/>
<field name="TransID" locator="/Request/genericTransFields/userRef" locator-type="Label"/>
<field name="TransType" locator="/Request/genericTransFields/type" locator-type="Label"/>
<field name="TransValue" separator=":" >
<field-locator locator="/Request/header/amount" locator-type="Label"/>
<field-locator locator="/Request/header/currency" locator-type="Label"/>
</field>
</parser>
<field name="MessageDataText10" locator="MQGACF_ACTIVITY_TRACE.MQBACF_MESSAGE_DATA" locator-type="Label" datatype="String"
format="string" transparent="true">
<parser-ref name="MYBANK_XML_Msg_Data_parser" aggregation="Merge"/>
</field>
Howard
When I try to run bin/tnt4j-streams.sh (standalone), I get the following error:
Error: Could not find or load main class com.jkoolcloud.tnt4j.streams.StreamsAgent
Also dependencies for com.jkoolcloud.tnt4j and com.jkoolcloud.jesl cant be resolved.
What am I missing here?
Ok, after downloading and building JESL, TNT4J and tnt4j-syslogd, dependencies were resolved.
Still getting the error though...
Add support for data transformation rules to tnt4j-streams. This would allow the raw data, after being extracted based on the locator rules, to be altered, or transformed, before sending to jKool.
The simple use case is that the raw data being extracted is a full file name path, but only the simple file name is wanted. However, this needs to support potentially complex transformations, including chains of transformations.
One thought was to add support for <field-transform>
elements under a <field>
and <field=locator>
elements. These would be applied after all other items, like <field-map>
. If <field-transform>
elements was directly under <field>
element, then it would apply to the complete field value, after all locators are processed. If under a <field-locator>
element, then would apply only to the value extracted by that locator.
If multiple <field-transform>
elements, they are applied sequentially, as defined in configuration, with the input for each transform being the output of the previous one.
example:
errors:
2016-12-01 09:47:10,835 ERROR [10:WmqStream:WmqStream!WmqStream] - Failed to record activity at position 0: Failed to process activity data at position 0
java.text.ParseException: Failed to process activity data at position 0
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.makeActivityInfo(TNTParseableInputStream.java:225)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.processActivityItem(TNTParseableInputStream.java:244)
at com.jkoolcloud.tnt4j.streams.inputs.TNTInputStream.run(TNTInputStream.java:629)
at java.lang.Thread.run(Unknown Source)
Caused by: java.text.ParseException: Failed parsing data for field StatusCode
at com.jkoolcloud.tnt4j.streams.parsers.ActivityXmlParser.parsePreparedItem(ActivityXmlParser.java:278)
at com.jkoolcloud.tnt4j.streams.parsers.ActivityXmlParser.parse(ActivityXmlParser.java:215)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.applyParsers(TNTParseableInputStream.java:167)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.applyParsers(TNTParseableInputStream.java:142)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.makeActivityInfo(TNTParseableInputStream.java:222)
... 3 more
Caused by: java.lang.NumberFormatException: ERROR is not a valid number.
at org.apache.commons.lang3.math.NumberUtils.createNumber(NumberUtils.java:574)
at com.jkoolcloud.tnt4j.streams.fields.ActivityInfo.getNumberValue(ActivityInfo.java:985)
at com.jkoolcloud.tnt4j.streams.fields.ActivityInfo.getPropertyValue(ActivityInfo.java:380)
at com.jkoolcloud.tnt4j.streams.fields.ActivityInfo.setFieldValue(ActivityInfo.java:356)
at com.jkoolcloud.tnt4j.streams.fields.ActivityInfo.applyField(ActivityInfo.java:153)
at com.jkoolcloud.tnt4j.streams.parsers.ActivityParser.applyFieldValue(ActivityParser.java:126)
at com.jkoolcloud.tnt4j.streams.parsers.MessageActivityXmlParser.applyFieldValue(MessageActivityXmlParser.java:192)
at com.jkoolcloud.tnt4j.streams.parsers.ActivityParser.applyFieldValue(ActivityParser.java:152)
at com.jkoolcloud.tnt4j.streams.parsers.ActivityXmlParser.parsePreparedItem(ActivityXmlParser.java:268)
... 7 more
Assumption that opType is a required field in tnt4j streams. The parser config has no reference of such a field. In DF this field is ActivityType is the field we use to map operation type.
what should it be for operation type filed?
2016-12-01 12:37:10,751 DEBUG [10:WmqStream:WmqStream!MessageActivityXmlParser] - Parsing: started192.168.188.1useruserAGNT1AAGNT1Auseruser192.168.188.1414d512041474e543120202020202020d9433358207efb23Monitor for SUNGUARD files4Monitor for SUNGUARD files | DEBUG | 2016-12-01 17:37:10.751000 UTC | RUNTIME=84780@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=11.0.0.236#DATACENTER=UNKNOWN#GEOADDR=0,0
2016-12-01 12:37:10,798 DEBUG [10:WmqStream:WmqStream!JKCloudActivityOutput] - Build new tracker for source APPL=JOB:Monitor for SUNGUARD files#SERVER=192.168.188.1#NETADDR= | DEBUG | 2016-12-01 17:37:10.798000 UTC | RUNTIME=84780@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=11.0.0.236#DATACENTER=UNKNOWN#GEOADDR=0,0
2016-12-01 12:37:10,802 ERROR [10:WmqStream:WmqStream!WmqStream] - Failed to record activity at position 0: opType must be non-null | ERROR | 2016-12-01 17:37:10.801000 UTC | RUNTIME=84780@IRGUN-PC#SERVER=IRGUN-PC#NETADDR=11.0.0.236#DATACENTER=UNKNOWN#GEOADDR=0,0
java.lang.NullPointerException: opType must be non-null
at com.jkoolcloud.tnt4j.core.Operation.setType(Operation.java:232)
at com.jkoolcloud.tnt4j.streams.fields.ActivityInfo.buildEvent(ActivityInfo.java:690)
at com.jkoolcloud.tnt4j.streams.fields.ActivityInfo.buildTrackable(ActivityInfo.java:603)
at com.jkoolcloud.tnt4j.streams.fields.ActivityInfo.recordActivity(ActivityInfo.java:591)
at com.jkoolcloud.tnt4j.streams.outputs.JKCloudActivityOutput.logItem(JKCloudActivityOutput.java:59)
at com.jkoolcloud.tnt4j.streams.outputs.JKCloudActivityOutput.logItem(JKCloudActivityOutput.java:32)
at com.jkoolcloud.tnt4j.streams.inputs.TNTParseableInputStream.processActivityItem(TNTParseableInputStream.java:261)
at com.jkoolcloud.tnt4j.streams.inputs.TNTInputStream.run(TNTInputStream.java:629)
at java.lang.Thread.run(Unknown Source)
for example, below is event fileds for EventName MQCLOSE
**MQCLOSE** 2017-02-20 16:25:47.000000 -05:00 0ms **_CLOSE_** PCFMessage: MQC
the actual PCF message looks like this. seebelow. As you may see there are multiple MQIACF grouping messages for the field MQIACF_OPERATION_ID that has different values.
also, i see mismatch between Eventname and EventType for instance:
MQDISCONNECT 2017-02-20 16:25:54.000000 -05:00 0ms OTHER PCFMessage: MQCF
MQCONNECT 2017-02-20 16:25:59.000000 -05:00 0ms OTHER PCFMessage: MQ
PCFMessage:
MQCFH (com.ibm.mq.headers.internal.store.ByteStore [encoding: 0x00000001, ccsid: 1208, size: 36] @841820874)
MQLONG Type: 26 (0x0000001a)
MQLONG StrucLength: 36 (0x00000024)
MQLONG Version: 3 (0x00000003)
MQLONG Command: 209 (0x000000d1)
MQLONG MsgSeqNumber: 1 (0x00000001)
MQLONG Control: 1 (0x00000001)
MQLONG CompCode: 0 (0x00000000)
MQLONG Reason: 0 (0x00000000)
MQLONG ParameterCount: 30 (0x0000001e)
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 2015 (MQCA_Q_MGR_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "AGNT1 "
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3191 (MQCACF_HOST_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 7 (0x00000007)
MQCHAR[] String: "IGOR-PC"
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 2711 (MQCAMO_START_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 2712 (MQCAMO_START_TIME/MQCAMO_LAST_USED)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 2707 (MQCAMO_END_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 2708 (MQCAMO_END_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 31 (MQIA_COMMAND_LEVEL)
MQLONG Value: 750 (0x000002ee)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1079 (MQIACF_SEQUENCE_NUMBER)
MQLONG Value: 0 (0x00000000)
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 48 (0x00000030)
MQLONG Parameter: 3024 (MQCACF_APPL_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 28 (0x0000001c)
MQCHAR[] String: "erver\bin\DataFlowEngine.exe"
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1 (MQIA_APPL_TYPE/MQIA_FIRST)
MQLONG Value: 11 (0x0000000b)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1024 (MQIACF_PROCESS_ID)
MQLONG Value: 306132 (0x0004abd4)
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3025 (MQCACF_USER_IDENTIFIER)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "SYSTEM "
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1357 (MQIACF_API_CALLER_TYPE)
MQLONG Value: 1 (0x00000001)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1358 (MQIACF_API_ENVIRONMENT)
MQLONG Value: 0 (0x00000000)
MQCFST (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3200 (MQCACF_APPL_FUNCTION)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 10 (0x0000000a)
MQCHAR[] String: "����������"
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1400 (MQIACF_APPL_FUNCTION_TYPE)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1359 (MQIACF_TRACE_DETAIL)
MQLONG Value: 1 (0x00000001)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1375 (MQIACF_TRACE_DATA_LENGTH)
MQLONG Value: 1000 (0x000003e8)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1397 (MQIACF_POINTER_SIZE)
MQLONG Value: 4 (0x00000004)
MQCFIN (com.ibm.mq.headers.internal.ReflectingStore [encoding: 0x00000001, ccsid: 1208, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 32 (MQIA_PLATFORM)
MQLONG Value: 11 (0x0000000b)
MQCFGR (com.ibm.mq.headers.internal.store.ByteStore [encoding: 0x00000222, ccsid: 437, size: 252] @861162882)
MQLONG Type: 20 (0x00000014)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 8013 (MQGACF_ACTIVITY_TRACE)
MQLONG ParameterCount: 8 (0x00000008) {
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 4 (0x00000004)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
com.ibm.mq.pcf.MQCFBS:MQCFBS (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 9 (0x00000009)
MQLONG StrucLength: 44 (0x0000002c)
MQLONG Parameter: 7006 (MQBACF_CONNECTION_ID)
MQLONG StringLength: 24 (0x00000018)
MQBYTE[] String: 0x414d514341474e543120202020202020865aa7582020890f
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 2015 (MQCA_Q_MGR_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "AGNT1 "
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)} {
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 4 (0x00000004)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
MQCFBS (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 9 (0x00000009)
MQLONG StrucLength: 44 (0x0000002c)
MQLONG Parameter: 7006 (MQBACF_CONNECTION_ID)
MQLONG StringLength: 24 (0x00000018)
MQBYTE[] String: 0x414d514341474e543120202020202020865aa7582020890f
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 2015 (MQCA_Q_MGR_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "AGNT1 "
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)}
MQCFGR (com.ibm.mq.headers.internal.store.ByteStore [encoding: 0x00000222, ccsid: 437, size: 324] @1672260641)
MQLONG Type: 20 (0x00000014)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 8013 (MQGACF_ACTIVITY_TRACE)
MQLONG ParameterCount: 11 (0x0000000b) {
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 6 (0x00000006)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1016 (MQIACF_OBJECT_TYPE)
MQLONG Value: 5 (0x00000005)
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 3046 (MQCACF_OBJECT_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "������������������������������������������������"
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 3023 (MQCACF_OBJECT_Q_MGR_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "������������������������������������������������"
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1360 (MQIACF_HOBJ)
MQLONG Value: 15441664 (0x00eb9f00)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1022 (MQIACF_OPEN_OPTIONS)
MQLONG Value: 8224 (0x00002020)} {
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 6 (0x00000006)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1016 (MQIACF_OBJECT_TYPE)
MQLONG Value: 5 (0x00000005)
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 3046 (MQCACF_OBJECT_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "������������������������������������������������"
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 3023 (MQCACF_OBJECT_Q_MGR_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "������������������������������������������������"
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1360 (MQIACF_HOBJ)
MQLONG Value: 15441664 (0x00eb9f00)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1022 (MQIACF_OPEN_OPTIONS)
MQLONG Value: 8224 (0x00002020)}
MQCFGR (com.ibm.mq.headers.internal.store.ByteStore [encoding: 0x00000222, ccsid: 437, size: 156] @1566104998)
MQLONG Type: 20 (0x00000014)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 8013 (MQGACF_ACTIVITY_TRACE)
MQLONG ParameterCount: 7 (0x00000007) {
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 12 (0x0000000c)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1360 (MQIACF_HOBJ)
MQLONG Value: 15441664 (0x00eb9f00)} {
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 12 (0x0000000c)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1360 (MQIACF_HOBJ)
MQLONG Value: 15441664 (0x00eb9f00)}
MQCFGR (com.ibm.mq.headers.internal.store.ByteStore [encoding: 0x00000222, ccsid: 437, size: 172] @1967123754)
MQLONG Type: 20 (0x00000014)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 8013 (MQGACF_ACTIVITY_TRACE)
MQLONG ParameterCount: 8 (0x00000008) {
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 7 (0x00000007)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1360 (MQIACF_HOBJ)
MQLONG Value: 15441664 (0x00eb9f00)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1365 (MQIACF_CLOSE_OPTIONS)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)} {
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 7 (0x00000007)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1360 (MQIACF_HOBJ)
MQLONG Value: 15441664 (0x00eb9f00)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1365 (MQIACF_CLOSE_OPTIONS)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)}
MQCFGR (com.ibm.mq.headers.internal.store.ByteStore [encoding: 0x00000222, ccsid: 437, size: 324] @938187913)
MQLONG Type: 20 (0x00000014)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 8013 (MQGACF_ACTIVITY_TRACE)
MQLONG ParameterCount: 11 (0x0000000b) {
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 6 (0x00000006)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1025 (MQIACF_THREAD_ID)
MQLONG Value: 2 (0x00000002)
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 32 (0x00000020)
MQLONG Parameter: 3132 (MQCACF_OPERATION_DATE)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 12 (0x0000000c)
MQCHAR[] String: "2017-02-20��"
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 28 (0x0000001c)
MQLONG Parameter: 3133 (MQCACF_OPERATION_TIME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 8 (0x00000008)
MQCHAR[] String: "16:25:47"
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1016 (MQIACF_OBJECT_TYPE)
MQLONG Value: 5 (0x00000005)
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 3046 (MQCACF_OBJECT_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "������������������������������������������������"
com.ibm.mq.pcf.MQCFST:MQCFST (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 4 (0x00000004)
MQLONG StrucLength: 68 (0x00000044)
MQLONG Parameter: 3023 (MQCACF_OBJECT_Q_MGR_NAME)
MQLONG CodedCharSetId: 0 (0x00000000)
MQLONG StringLength: 48 (0x00000030)
MQCHAR[] String: "������������������������������������������������"
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1360 (MQIACF_HOBJ)
MQLONG Value: 15441664 (0x00eb9f00)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1242 (MQIACF_COMP_CODE)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1254 (MQIACF_REASON_CODE)
MQLONG Value: 0 (0x00000000)
com.ibm.mq.pcf.MQCFIN:MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1022 (MQIACF_OPEN_OPTIONS)
MQLONG Value: 8224 (0x00002020)} {
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x00000010)
MQLONG Parameter: 1356 (MQIACF_OPERATION_ID)
MQLONG Value: 6 (0x00000006)
MQCFIN (com.ibm.mq.headers.internal.store.MQMessageStore [encoding: 0x00000222, ccsid: 437, hconnCharacterSetID: 0])
MQLONG Type: 3 (0x00000003)
MQLONG StrucLength: 16 (0x0
if this is possible at all to present activity-trace message payload in text format
example received from activity trace (MQGACF_ACTIVITY_TRACE.MQBACF_MESSAGE_DATA):
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxuczI6THFtUmVxdWVzdCB4bWxuczpuczI9Imh0dHA6Ly93d3cuYm55bWVsbG9uLmNvbSI+PE1ldGFkYXRhPjxNZXNzYWdlUmVmZXJlbmNlSWQ+MTk1MTMyNzM2OC0wbGlxdWlkaXR5bWFuPC9NZXNzYWdlUmVmZXJlbmNlSWQ+PFJlcXVlc3RUeXBlPk5FVzwvUmVxdWVzdFR5cGU+PHRuczpBQUxfQUNLMV9BQ1RJT04+TkVXPC90bnM6QUFMX0FDSzFfQUNUSU9OPjx0bnM6QUFMX0FDSzJfQUNUSU9OPk9MRDwvdG5zOkFBTF9BQ0syX0FDVElPTj48UmVxdWVzdFN1YlR5cGU+PC9SZXF1ZXN0U3ViVHlwZT48U291cmNlU3lzdGVtPkVQSDwvU291cmNlU3lzdGVtPjxNZXNzYWdlVHlwZT4yMDI8L01lc3NhZ2VUeXBlPjxTb3VyY2VTeXN0ZW1SZWY+RVBIMTIzNDU2SUdPUjwvU291cmNlU3lzdGVtUmVmPjxTb3VyY2VTeXN0ZW1Dcm9zc1JlZj5VU0Q0NTA2MTMyMVdXV1c8L1NvdXJjZVN5c3RlbUNyb3NzUmVmPjxSZXF1ZXN0VGltZXN0YW1wPjIwMTUtMDYtMTcgMTY6MTc6NDIuMDQyPC9SZXF1ZXN0VGltZXN0YW1wPjwvTWV0YWRhdGE+PFBheW1lbnRPYmplY3Q+PFRyYW5zYWN0aW9uRGV0YWlscz48Q3VycmVuY3k+VVNEPC9DdXJyZW5jeT48QW1vdW50PjMyMTc4OTAuNjk8L0Ftb3VudD48VmFsdWVEYXRlPjIwMTUtMDYtMTc8L1ZhbHVlRGF0ZT48U291cmNlU3lzdGVtUHJpb3JpdHk+MTwvU291cmNlU3lzdGVtUHJpb3JpdHk+PC9UcmFuc2FjdGlvbkRldGFpbHM+PE5vc3Ryb0RldGFpbHM+PE5vc3Ryb0REQVN5c3RlbT5NTUQ8L05vc3Ryb0REQVN5c3RlbT48Tm9zdHJvQWNjb3VudD4zNTgzMjA5NzAwPC9Ob3N0cm9BY2NvdW50PjxOb3N0cm9CcmFuY2g+MDQ8L05vc3Ryb0JyYW5jaD48Tm9zdHJvRW50aXR5PjAwMjc2PC9Ob3N0cm9FbnRpdHk+PE5vc3Ryb0N1dE9mZlRpbWU+MjAxNTA2MTcxODU5MDA8L05vc3Ryb0N1dE9mZlRpbWU+PC9Ob3N0cm9EZXRhaWxzPjxDbGllbnREZQ==
Need to provide a way in all streams to filter streams based on the field name.
for instance, to name a few, suppress IIB (message broker) statistics events, resource stats, state events from internal MFT agent, etc.
the wmq streams do a unlimited wait on messages from the queue and even though a signal to terminate is processed, these waits do not terminate until a message leaving the process in a hung state.
the gets should specify a time out after a period of time, check signal processing and then re-issue
Ability to provide field map ranges for numeric fields. Examples: range [0-100](number between 0-100, both inclusive), 100+ n >= 100, 100- n <= 100. Support for odd/vs even.
I'm trying to use stacked parsers to parse a msg that contains both XML elements and SWIFT type fields.
The msg, parser rules and error msgs are below.
It appears that a Name-Value parser cannot be referenced from an XML parser.
The test msg is TEST30_mybank4.txt:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Request xmlns="http://www.mybankcom/EPH/Request" xmlns:ns2="http://www.mybank.com/EPH/Response">
<header>
<messageId>ABC1506170075211-1951317824-0</messageId>
<entity>XYZ1234</entity>
<currency>EUR</currency>
<amount>TEST30-0.01</amount>
<currency2>USD</currency2>
<receiver>MYBANK FRANKFURT</receiver>
</header>
<genericTransFields>
<type>SWF202 OUTBOUND </type>
<sender>OTHER_BANK_XXX</sender>
<reference>QT06171612-1</reference>
<userRef>TEST30-QT06171612-1</userRef>
</genericTransFields>
<messageDetails>
<tag20>QT06171612-1</tag20>
<tag21>QAVOLUME</tag21>
etc
</messageDetails>
<sourceMessage>{1:DEFAXXX6952}{2:abcd902N}{3:{108:QT06171612-1}}{4:
:20:QT06171612-1 <=== SWIFT data starts here
:21:QAVOLUME
:32A:150617EUR0,01
:52A:HIS_BANK
:53B:/0049609710
:57A:LONDON
:58A:/11548432050460
LONDON
:72:/ABC/DEF-TEST
-}
</sourceMessage>
</Request>
Lines from parser .xml file :
<!-- Parse the SWIFT data and extract as field "UserData=field_20_value:field_52A_value" -->
<parser name="MYBANK_UserData_Parser" class="com.jkoolcloud.tnt4j.streams.parsers.ActivityNameValueParser">
<property name="EntryPattern"><![CDATA[:(?<key>.*?):(?<value>.[^:]+)]]></property>
<property name="ActivityDelim" value="EOF"/>
<field name="EventName" value="MYBANK UserData"/>
<field name="UserData" separator=":">
<!-- locators are the keys i.e. :key_of_any_length:value_of_one or_more_chars_excluding_colon -->
<field-locator locator="20" locator-type="Label"/>
<field-locator locator="52A" locator-type="Label"/>
</field>
</parser>
<parser name="MYBANK_XML_Msg_Data_Parser" class="com.jkoolcloud.tnt4j.streams.parsers.ActivityXmlParser">
<property name="NamespaceAware" value="false"/>
<field name="EventName" value="MYBANK XML Transaction"/>
<field name="TransID" locator="/Request/genericTransFields/userRef" locator-type="Label"/>
<field name="TransType" locator="/Request/genericTransFields/type" locator-type="Label"/>
<field name="TransValue" separator=":" >
<field-locator locator="/Request/header/amount" locator-type="Label"/>
<field-locator locator="/Request/header/currency" locator-type="Label"/>
</field>
<!-- Parse the SWIFT data, starting after chars "{4:", with a Name-Value parser and merge -->
<field name="MYBANK_XML_MessageDataText" locator="{4:" locator-type="Label" transparent="true" datatype="String" format="string">
<parser-ref name="MYBANK_UserData_Parser" aggregation="Merge"/>
</field>
</parser>
<!-- Parse MQ trace activity events -->
<parser name="TraceEventsParser"
class="com.jkoolcloud.tnt4j.streams.custom.parsers.WmqTraceParser">
<property name="TranslateNumValues" value="true"/>
<property name="RequireDefault" value="false"/>
<many MQ related trace fields here>
...
<!-- Extract additional custom properties from the msg and merge into output stream -->
<field name="MessageDataText10"
locator="MQGACF_ACTIVITY_TRACE.MQBACF_MESSAGE_DATA" locator-type="Label" datatype="String" format="string" transparent="true">
<parser-ref name="MYBANK_XML_Msg_Data_Parser" aggregation="Merge"/>
</field>
</parser> <!-- end of TraceEventsParser -->
<stream name="WmqActivityTraceStreamQM_A"
class="com.jkoolcloud.tnt4j.streams.custom.inputs.WmqTraceStream">
...
<parser-ref name="TraceEventsParser"/> <!-- Parser to be used, defined above -->
</stream>
...
WmqTraceStream] - Failed to record activity at position 0: Failed to process activity data at position 0
java.text.ParseException: Failed to process activity data at position 0
java.text.ParseException: Failed parsing data for field 'MessageDataText10'
ParseException: Failed parsing data for field 'MYBANK_XML_MessageDataText'
Exception occurred while processing XPath expression.
TransformerException: A node test that matches either NCName:* or QName was expected.
...
at com.jkoolcloud.tnt4j.streams.inputs.TNTInputStream$ActivityItemProcessingTask.run(TNTInputStream.java:1057)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Cannot invoke method replace() on null object
at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at DiffTransform.run(DiffTransform:1)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:604)
at com.jkoolcloud.tnt4j.streams.transform.GroovyTransformation.transform(GroovyTransformation.java:67)
... 21 more
When setting up application activity events, the user has the option to set the number of events which can be sent in a single message. This is done to optimize the message traffic by reducing the number of messages.
While it can be set to 1, which sends a single event per message, the customer should have the ability to set this to a higher setting.
Currently, MQ log streams only read a log extract and terminate. For a running system, these should be able to read the active log and handle when the log switches from the 01 to the 02 log.
Both the tnt4j-streams-0.1-beta\samples\apache-access-multi-log and tnt4j-streams-0.1-beta\samples\apache-access-single-log show parsing errors.
The activity stream log is built but it appears nothing was streamed to jKool
tnt4j Stream (e.i. for activity-trace) need a way to suppress activity trace based on MQRC to limit unnecessary data coming to jKool.
for instance, MQRC - 2033 - MQRC_NO_MSG_AVAILABLE
or MQRC - 30737 which is observed on qmgr 7.5.0.7 and IIBv10 when broker application issues "MQCALLBACK" .
Sometimes event messages from IBM Integration Bus are not sent to jkoolcloud.
Use-case:
I configured the TransactionStart and TransactionEnd events on the input node in the message-flow, so I expect 2 event message for every message I put on MQ.
Using RFHUtilc I first put 10 messages on MQ:
10.38.22 Message sent to MQTOP.IN length=303
10.38.21 Message sent to MQTOP.IN length=303
10.38.21 Message sent to MQTOP.IN length=303
10.38.21 Message sent to MQTOP.IN length=303
10.38.21 Message sent to MQTOP.IN length=303
10.38.21 Message sent to MQTOP.IN length=303
10.38.21 Message sent to MQTOP.IN length=303
10.38.20 Message sent to MQTOP.IN length=303
10.38.20 Message sent to MQTOP.IN length=303
10.38.20 Message sent to MQTOP.IN length=303
All 20 messages show up in jKool:
Then, a couple of minutes later, I put another 10 messages on MQ:
10.43.28 Message sent to MQTOP.IN length=303
10.43.28 Message sent to MQTOP.IN length=303
10.43.28 Message sent to MQTOP.IN length=303
10.43.27 Message sent to MQTOP.IN length=303
10.43.27 Message sent to MQTOP.IN length=303
10.43.27 Message sent to MQTOP.IN length=303
10.43.27 Message sent to MQTOP.IN length=303
10.43.27 Message sent to MQTOP.IN length=303
10.43.26 Message sent to MQTOP.IN length=303
10.43.26 Message sent to MQTOP.IN length=303
This time, only 17 messages show up in jKool:
Trace-log:
tnt4j-streams.zip
CollectD sample and B2Bi samples will not work on version 1.2.1 release and 1.3.0-SNAPSHOT, due to the bug on dynamic fields handling.
When XML matcher parser is used it forwards field result that is Node, and it references whole parsed document, witch is actually evaluated by xpath instead of selected node.
For a workaround a sandwich of parsers could be used. see MFT sample.
Currently, for a given field, you can specify filters but often times you want to include/exclude multiple values. Include/Exclude Saturday/Sunday. However, if specified, only 1 value is recognized. A list or multiple values should be supported.
Similarly, in many cases, the desire is to use a mask to filter. Include/Exclude everything from PROD where PROD could be a regular expression.
IBM added JSON formatted logs in 9,0,5 which may simplify log analysis. We should provide the ability to support them directly
Jkool\TNT4J\tnt4j-streams-master\tnt4j-streams-wmq\samples\trace-events>run.bat
Jkool\TNT4J\tnt4j-streams-master\tnt4j-streams-wmq\samples\trace-events>....\bin\tnt4j-streams.bat -f:tnt-data-source.xml
The system cannot find the path specified.
need one more level up
....\bin\tnt4j-streams.bat -f:tnt-data-source.xml
An example would be something like this
let's say there are two pcf fields Field1 and Field2
so parser should always extract Field1 when it is not zero otherwise locate and extract Field2.
If two or more locators on field correlator present, it's possible that whel one of the correlators resolves to null it set\s nul to correlator field
i.e.:
<field name="Correlator">
<field-locator locator="MQGACF_ACTIVITY_TRACE.MQBACF_CORREL_ID" locator-type="Label" datatype="Binary" required="false">
<filter name="CorrelValueFilter">
<value handle="exclude" format="hexBinary">0x000000000000000000000000000000000000000000000000</value>
</filter>
</field-locator>
<field-locator locator="MsgIdforC" locator-type="Activity"/>
<field>
I this case if locator 1, or locator 2 resolves null. TNT4J-Streams set's "null" to correlator field.
mismatch label name in tnt4j-streams.bat
@echo off
set RUNDIR=%~p0
set CLASSPATH=%CLASSPATH%";"%RUNDIR%..*";"%RUNDIR%..\lib*
set TNT4JOPTS=-Dtnt4j.config="%RUNDIR%..\config\tnt4j.properties"
set LOG4JOPTS=-Dlog4j.configuration="file:%RUNDIR%..\config\log4j.properties"
REM set LOGBACKOPTS=-Dlogback.configurationFile="file:%RUNDIR%..\config\logback.xml"
set STREAMSOPTS=%STREAMSOPTS% %LOG4JOPTS% %TNT4JOPTS%
if "%MAINCLASS%" == "" goto set_default_main
goto run_stream
:set_default
set MAINCLASS=com.jkoolcloud.tnt4j.streams.StreamsAgent
:run_stream
java %STREAMSOPTS% -classpath %CLASSPATH% %MAINCLASS% %*
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.