Universal Messaging 10.3 | Administration Guide | Command Line Administration Tools | The ExportEventsFromOfflineMemFile Tool
 
The ExportEventsFromOfflineMemFile Tool
Overview
The ExportEventsFromOfflineMemFile tool is a command-line recovery tool that dumps events from mem files of Universal Messaging realm server stores to XML format. Selector based event filtering can be applied while dumping with the tool.
The output file will contain a first element describing the export details and then a list of events. The ExportDetails element contains the tool version number and the protocol buffer file descriptor set in base64-encoded format, if the protocol buffer file descriptor set was specified by the user when starting the export tool.
Event structure in the output file
In XML output files, the Event element contains the following information:
id: event EID (nPublished.getKey());
size: event size (nPublished.getSize());
chanID: event ChannelAttributesId (nPublished.getChannelAttributesId());
ttl: event TTL (nPublished.getTTL());
tag: event tag (nPublished.getTag());
eventData: event data;
persistent: event isPersistent property (nPublished.isPersistant());
transient: event isTransientPropery(nPublished.isTransient());
headerProps: event header attributes;
dictionaryProps: event dictionary properties;
For now, the XML output file event eventData value is base64-encoded.
XML output file example
<?xml version="1.0" encoding="utf-8"?>
<EventsDetails>
<ExportDetails>
<ToolVersion>1.0</ToolVersion>
<Descriptor>CtwCCgxTY2hvb2wucHJvdG8i7gEKBlBlcnNvbhISCgRuYW1lGAEgAigJUgRuYW1lEg4KAmlkGAIgAigFUgJpZBIUCgVlbWFpbBgDIAEoCVIFZW1haWwSKQoFcGhvbmUYBCADKAsyEy5QZXJzb24uUGhvbmVOdW1iZXJSBXBob25lGlIKC1Bob25lTnVtYmVyEhYKBm51bWJlchgBIAIoCVIGbnVtYmVyEisKBHR5cGUYAiABKA4yES5QZXJzb24uUGhvbmVUeXBlOgRIT01FUgR0eXBlIisKCVBob25lVHlwZRIKCgZNT0JJTEUQABIICgRIT01FEAESCAoEV09SSxACIk4KBlNjaG9vbBIhCgdzdHVkZW50GAEgAygLMgcuUGVyc29uUgdzdHVkZW50EiEKB3RlYWNoZXIYAiACKAsyBy5QZXJzb25SB3RlYWNoZXJCC0IJU2Nob29sU3Vi</Descriptor>
</ExportDetails>
<Events>
<Event>
<id>0</id>
<size>306</size>
<chanID>63565653663178134</chanID>
<ttl>0</ttl>
<tag>tag0</tag>
<eventData>dGVzdGRhdGFib2R5MCBkYXRh</eventData>
<persistent>true</persistent>
<transient>false</transient>
<dictionaryProps>
<item>
<name>string_key</name>
<value>value0</value>
<type>String</type>
</item>
<item>
<name>boolean_key</name>
<value>true</value>
<type>Boolean</type>
</item>
<item>
<name>int_key</name>
<value>0</value>
<type>Integer</type>
</item>
<item>
<name>long_key</name>
<value>0</value>
<type>Long</type>
</item>
<item>
<name>short_key</name>
<value>0</value>
<type>Short</type>
</item>
<item>
<name>byte_key</name>
<value>0</value>
<type>Byte</type>
</item>
<item>
<name>char_key</name>
<value>0</value>
<type>Character</type>
</item>
<item>
<name>byte_arr_key</name>
<value>dGVzdDA=</value>
<type>byte[]</type>
</item>
<item>
<name>float_key</name>
<value>0.0</value>
<type>Float</type>
</item>
<item>
<name>double_key</name>
<value>0.0</value>
<type>Double</type>
</item>
</dictionaryProps>
<headerProps>
<item>
<name>nrvpub.time</name>
<value>1588946429779</value>
<type>Long</type>
</item>
<item>
<name>nrvpub.host</name>
<value>127.0.0.1</value>
<type>String</type>
</item>
<item>
<name>nrvpub.name</name>
<value>ekob</value>
<type>String</type>
</item>
<item>
<name>JMSDeliveryMode</name>
<value>PERSISTENT</value>
<type>String</type>
</item>
<item>
<name>JMSPriority</name>
<value>4</value>
<type>Byte</type>
</item>
</headerProps>
</Event>
</Events>
</EventsDetails>
Input parameters
-protobufdescriptor
The -protobufdescriptor input parameter is an optional parameter specifying the path to the protocol buffer file descriptor set. In this version, filtering events based on protobuf event data is not performed. The protobuf descriptor will be exported to the XML format file in the ExportDetails section just for information.
The protocol buffer file descriptor set can be received as:
protoc.exe <proto_file_name>.proto
--descriptor_set_out=<protocol_buffer_file_descriptor_set_name>.fds
If the input parameter protobufdescriptor is specified and the mem file's store is a protobuf channel with the same protobuf descriptor, the protocol buffer descriptor will be exported to the output file as a base64-encoded string.
If the input parameter protobufdescriptor is specified but the mem file's store is a protobuf channel with a different protobuf descriptor, then dumping will not be performed.
If the input parameter protobufdescriptor is specified but the mem file's store is not a protobuf channel, then the event will be considered as nPublished events anyway. The protocol buffer descriptor will be exported to the output file as a base64-encoded string.
batchsize
This parameter can be optionally specified when running the tool. It defines the number of events which will be read/loaded to the memory/from the mem file, filtered and then written to the output file as a single batch. The default value of the batch size is 100.