Dump journal File
The AMPS journal dump utility is used in examining the contents of an AMPS journal file for debugging and program tuning. The amps_journal_dump
utility is most commonly used as a tool to debug the forensic lifespan of messages that have previously been published to AMPS. The amps_journal_dump
tool is used to show that messages exist in a journaled topic, and to show the order the message was received in, and the timestamp associated with the message.
Command Line Options
The amps_journal_dump
program has the following options available. These can also be printed to the screen by typing amps_journal_dump -help
.
Option | Description |
| Filename of the AMPS journal file. |
| Show the program help message and quit. |
| Limit range of output to entries N:M where N is the first entry and M is the last entry. Passing in a single value, M, will return the first M results. |
| Display ISO 8601 timestamp in local time. |
| Add local and replication extents information at the end of the journal dump. |
| Do not display data values in the journal dump output. |
| Include noops in the journal dump. |
Looking at the Output
In this section will examine some sample output from running amps_journal_dump
. We will then go over what each of the entries emitted by the program means.
As is apparent in the listing, the output from amps_journal_dump
is split into three sections, a header, a listing of the contents of the journal file and a footer.
The header contains general information about the journal file as it is represented in the filesystem, and state data about the journal file.
Field | Description |
File Name | The name of the file as it appears on the local filesystem. |
File Size | Number of total bytes allocated by the journal file. |
Version | This is the version of the formatting used to write the data in the journal file. |
Extents | A pair of numbers where the first is the number of extents used by the journal file, and the second is the number of blocks allocated for the journal file. |
The second section of the amps_journal_dump
lists each of the entries contained in the journal file, along with all of the meta-data used to track and describe the entry. For the sake of simplicity, the example only shows a single journal entry. In an actual installation, amps_journal_dump
will produce a record for every message in the journal.
The exact options present depend on the version of the journal file.
Field | Description |
entry | A monotonically increasing value representing the order in which the record was inserted into the transaction log file. |
crc32 | The cyclic redundancy check used for error checking the transaction log entry. |
type | The AMPS command used in the original message or the type of entry in the journal file. |
file offset | Offset for this entry within the journal file. |
tx byte count | Size of this entry within the journal file. |
msg byte count | Number of bytes in the message payload. |
msg type | Message type of the message. |
local txid | The monotonically increasing identifier used across all records local transaction log journal files. |
previous local txid | The monotonically increasing identifier used across all records local transaction log journal files. |
source txid | The monotonically increasing identifier used across all records local transaction log journal files. If a publish from a client does not include a sequence number, and the publish was made directly to this instance, this field can be used to hold the original client name hash for a publish or delete. In that case, the client name hash used for message identification purposes is generated by AMPS (to avoid message identity conflicts). |
source name hash | For replicated messages, the hash of the instance from which the message was received. |
client name hash | The hash of the publisher client name. The combination of the client name hash and the client seq are used as the identity of the message. If a publish or delete does not include a sequence number, and the publish was made directly to this instance, this field may be a hash generated by AMPS while the original client name hash is stored in the source txid field. |
client seq | The sequence number of the message from this publisher. |
topic hash | The identifier for the topic name. |
sow expiration time | The expiration set on this individual message when it is used in a SOW topic or queue. |
iso8601 timestamp | The time the message was processed, represented as an ISO-8601 timestamp. |
timestamp | The raw timestamp stored in the AMPS transaction log. This is a microsecond-precision timestamp. |
previous byte count | The size, in bytes, of the previous record in the transaction log. |
topic byte count | The length, in bytes, of the topic name. |
topic | The name of the topic this command applies to. |
data | The data for this entry in the transaction log. For published messages, this will be the message as published. For other commands, this could be data used internally by AMPS. |
correlation id byte count | The number of bytes in the correlation ID for the command. |
correlation id | The correlation ID for the command, if one was set on the command. |
auth id byte count | The length of the authenticated ID that submitted the command. |
auth id | The authenticated ID that submitted the command. |
rep path byte count | The length of the replication path. This path records the route that this message took to reach this instance of AMPS. |
rep path | The replication path. This path records the route that the message took to reach this instance of AMPS. |
As seen in the listing, the final section contains general usage information about the data contained in the journal file.
Field | Description |
Total Entries | Total number of journal entries entered into the journal file. |
Total Bytes | The number of reserved bytes consumed by the journal file. |
Remaining Bytes | The number of unused bytes available out of the total reserved file size. |
Timestamp Formatting
The timestamp format used in amps_journal_dump
is formatted by default using the system timezone for its location. To display the time in another timezone, the TZ
environment variable can be configured to modify the output.
Last updated