Apache ActiveMQ Artemis 日志记录解释
Apache ActiveMQ Artemis journal record explanation
因此,我丢失了一些来自 Apache Active MQ Artemis 的消息(有关更多信息,我之前的问题位于此处 )。
查看日志记录后,我看到了这些与丢失消息相关的条目 (recordID=1094612593)。我可以从这些条目中推断出什么。它们对进一步的故障排除有帮助吗?
operation@AddRecordTX;txID=1094612560,recordID=1094612593;userRecordType=45;isUpdate=false;compactCount=0;Message(messageID=1094612593;userMessageID=aa844c3f-1c6e-11ec-840c-005056be4b8b;msg=CoreMessage[messageID=1094612593,durable=true,userID=aa844c3f-1c6e-11ec-840c-005056be4b8b,priority=4, timestamp=Thu Sep 23 16:03:37 EEST 2021,expiration=0, durable=true, address=[===myQueue===],size=1277,properties=TypedProperties[===PROPERTIES==]]@1335046207
operation@UpdateTX;txID=1094612540,recordID=1094612663;userRecordType=32;isUpdate=true;compactCount=0;AddRef;QueueEncoding [queueID=7]
operation@UpdateTX;txID=1094612655,recordID=1094612663;userRecordType=33;isUpdate=true;compactCount=0;ACK;QueueEncoding [queueID=7]
operation@DeleteRecord;recordID=1094612663
P.s
我试图重现丢失的情况,但无济于事。
这里的数据是不确定的,因为记录之间没有直接关系。让我们一一看每条记录...
operation@AddRecordTX;txID=1094612560,recordID=1094612593;userRecordType=45;isUpdate=false;compactCount=0;Message(messageID=1094612593;userMessageID=aa844c3f-1c6e-11ec-840c-005056be4b8b;msg=CoreMessage[messageID=1094612593,durable=true,userID=aa844c3f-1c6e-11ec-840c-005056be4b8b,priority=4, timestamp=Thu Sep 23 16:03:37 EEST 2021,expiration=0, durable=true, address=[===myQueue===],size=1277,properties=TypedProperties[===PROPERTIES==]]@1335046207
这是包含实际消息数据(即 body 和属性 & headers)的“添加消息”记录。此记录的 ID(即 1094612593
)将被与此消息相关的其他记录引用。
operation@UpdateTX;txID=1094612540,recordID=1094612663;userRecordType=32;isUpdate=true;compactCount=0;AddRef;QueueEncoding [queueID=7]
这是一条“添加参考”记录。由于单个消息实际上可以在多个 queue 上(例如,在 JMS 主题的多个订阅中),消息数据不会每次都重复。而是将“ref”添加到每个 queue(即本例中的 queueID=7
),并且每个“ref”指向实际消息的 ID(即此处的 1094612663
)。在这种情况下 1094612663
与 1094612593
的“添加消息”记录 ID 不匹配,因此这些日记条目与 2 条不同的消息相关。
operation@UpdateTX;txID=1094612655,recordID=1094612663;userRecordType=33;isUpdate=true;compactCount=0;ACK;QueueEncoding [queueID=7]
这是一条“确认”记录,表示一条消息已被确认。消息可以由客户端确认(例如在正常消费期间),也可以通过管理方式确认(例如在通过管理 API 的删除操作期间)。
operation@DeleteRecord;recordID=1094612663
这是一条“删除”记录,一旦一条消息的所有“参考”都得到确认,它就会被添加到日志中。 recordID
指回原来的“添加消息”记录。
稍后在称为“压缩”的过程中,将清除所有删除记录以及它们引用的记录,包括 ref 和 ack 记录。这样,可以释放日志文件中可用的 space 和 re-used.
因此,我丢失了一些来自 Apache Active MQ Artemis 的消息(有关更多信息,我之前的问题位于此处
查看日志记录后,我看到了这些与丢失消息相关的条目 (recordID=1094612593)。我可以从这些条目中推断出什么。它们对进一步的故障排除有帮助吗?
operation@AddRecordTX;txID=1094612560,recordID=1094612593;userRecordType=45;isUpdate=false;compactCount=0;Message(messageID=1094612593;userMessageID=aa844c3f-1c6e-11ec-840c-005056be4b8b;msg=CoreMessage[messageID=1094612593,durable=true,userID=aa844c3f-1c6e-11ec-840c-005056be4b8b,priority=4, timestamp=Thu Sep 23 16:03:37 EEST 2021,expiration=0, durable=true, address=[===myQueue===],size=1277,properties=TypedProperties[===PROPERTIES==]]@1335046207
operation@UpdateTX;txID=1094612540,recordID=1094612663;userRecordType=32;isUpdate=true;compactCount=0;AddRef;QueueEncoding [queueID=7]
operation@UpdateTX;txID=1094612655,recordID=1094612663;userRecordType=33;isUpdate=true;compactCount=0;ACK;QueueEncoding [queueID=7]
operation@DeleteRecord;recordID=1094612663
P.s
我试图重现丢失的情况,但无济于事。
这里的数据是不确定的,因为记录之间没有直接关系。让我们一一看每条记录...
operation@AddRecordTX;txID=1094612560,recordID=1094612593;userRecordType=45;isUpdate=false;compactCount=0;Message(messageID=1094612593;userMessageID=aa844c3f-1c6e-11ec-840c-005056be4b8b;msg=CoreMessage[messageID=1094612593,durable=true,userID=aa844c3f-1c6e-11ec-840c-005056be4b8b,priority=4, timestamp=Thu Sep 23 16:03:37 EEST 2021,expiration=0, durable=true, address=[===myQueue===],size=1277,properties=TypedProperties[===PROPERTIES==]]@1335046207
这是包含实际消息数据(即 body 和属性 & headers)的“添加消息”记录。此记录的 ID(即 1094612593
)将被与此消息相关的其他记录引用。
operation@UpdateTX;txID=1094612540,recordID=1094612663;userRecordType=32;isUpdate=true;compactCount=0;AddRef;QueueEncoding [queueID=7]
这是一条“添加参考”记录。由于单个消息实际上可以在多个 queue 上(例如,在 JMS 主题的多个订阅中),消息数据不会每次都重复。而是将“ref”添加到每个 queue(即本例中的 queueID=7
),并且每个“ref”指向实际消息的 ID(即此处的 1094612663
)。在这种情况下 1094612663
与 1094612593
的“添加消息”记录 ID 不匹配,因此这些日记条目与 2 条不同的消息相关。
operation@UpdateTX;txID=1094612655,recordID=1094612663;userRecordType=33;isUpdate=true;compactCount=0;ACK;QueueEncoding [queueID=7]
这是一条“确认”记录,表示一条消息已被确认。消息可以由客户端确认(例如在正常消费期间),也可以通过管理方式确认(例如在通过管理 API 的删除操作期间)。
operation@DeleteRecord;recordID=1094612663
这是一条“删除”记录,一旦一条消息的所有“参考”都得到确认,它就会被添加到日志中。 recordID
指回原来的“添加消息”记录。
稍后在称为“压缩”的过程中,将清除所有删除记录以及它们引用的记录,包括 ref 和 ack 记录。这样,可以释放日志文件中可用的 space 和 re-used.