
archive.aeron-archive-codecs.xml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aeron-all Show documentation
Show all versions of aeron-all Show documentation
Efficient reliable UDP unicast, UDP multicast, and IPC transport protocol.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <sbe:messageSchema xmlns:sbe="http://fixprotocol.io/2016/sbe" package="io.aeron.archive.codecs" id="101" version="10" semanticVersion="5.2" description="Message Codecs for communicating with an Aeron Archive." byteOrder="littleEndian"> <types> <composite name="messageHeader" description="Message identifiers and length of message root."> <type name="blockLength" primitiveType="uint16"/> <type name="templateId" primitiveType="uint16"/> <type name="schemaId" primitiveType="uint16"/> <type name="version" primitiveType="uint16"/> </composite> <composite name="groupSizeEncoding" description="Repeating group dimensions."> <type name="blockLength" primitiveType="uint16"/> <type name="numInGroup" primitiveType="uint16"/> </composite> <composite name="varAsciiEncoding" description="Variable length ASCII string header."> <type name="length" primitiveType="uint32" maxValue="1073741824"/> <type name="varData" primitiveType="uint8" length="0" characterEncoding="US-ASCII"/> </composite> <composite name="varDataEncoding" description="Variable length data blob header."> <type name="length" primitiveType="uint32" maxValue="1073741824"/> <type name="varData" primitiveType="uint8" length="0"/> </composite> <enum name="ControlResponseCode" encodingType="int32" description="Control protocol response code."> <validValue name="OK" description="Operation successful.">0</validValue> <validValue name="ERROR" description="Error occurred during operation.">1</validValue> <validValue name="RECORDING_UNKNOWN" description="Recording id was unknown.">2</validValue> <validValue name="SUBSCRIPTION_UNKNOWN" description="Subscription id was unknown.">3</validValue> </enum> <enum name="SourceLocation" encodingType="int32" description="Source location for recorded stream."> <validValue name="LOCAL" description="Archive is local to driver.">0</validValue> <validValue name="REMOTE" description="Archive is remote to driver.">1</validValue> </enum> <enum name="BooleanType" encodingType="int32" description="Language independent boolean type."> <validValue name="FALSE" description="Language independent boolean false.">0</validValue> <validValue name="TRUE" description="Language independent boolean true.">1</validValue> </enum> <enum name="RecordingSignal" encodingType="int32" description="Signal of operations happening to a recording."> <validValue name="START" description="Recording has started for a stream.">0</validValue> <validValue name="STOP" description="Recording has stopped for a stream.">1</validValue> <validValue name="EXTEND" description="Recording has started extending.">2</validValue> <validValue name="REPLICATE" description="Recording descriptor replicated from source archive.">3</validValue> <validValue name="MERGE" description="Recording merged with live stream after replay.">4</validValue> <validValue name="SYNC" description="Recording synchronised with source archive.">5</validValue> <validValue name="DELETE" description="Recording has deleted segments.">6</validValue> <validValue name="REPLICATE_END" description="Recording replication has ended.">7</validValue> </enum> <enum name="RecordingState" encodingType="int32" description="State of a recording in the Catalog."> <validValue name="INVALID" description="Recording is invalid.">0</validValue> <validValue name="VALID" description="Recording is valid.">1</validValue> <validValue name="DELETED" description="Recording was deleted." sinceVersion="10">2</validValue> </enum> <type name="time_t" primitiveType="int64" description="Epoch time in milliseconds since 1 Jan 1970 UTC."/> <type name="version_t" primitiveType="int32" presence="optional" nullValue="0" minValue="2" maxValue="16777215" description="Protocol suite version using semantic version form."/> </types> <!-- Archive Control Protocol ======================== Control Protocol: -> [connect | auth-connect], *[start-recording | stop-recording | stop-recording-subscription | replay | stop-replay | stop-all-replays | list-recordings | list-recordings-by-uri | list-recording | find-last-matching-recording | list-recording-subscriptions | stop-recording-by-identity extend-recording | truncate-recording | replicate-recording | stop-replication | stop-all-replication | start-position | recording-position | stop-position | stop-or-recording-position | detach-segments | delete-detached-segments | purge-segments | attach-segments | migrate-segments | purge-recording | archive-id | replay-token-request], close \ <- +[control-response | challenge], *[control-response | recording-descriptor | recording-subscription-descriptor | recording-transition] Recording Progress Events: <- recording-started, *recording-progress, recording-stopped 1. Connect - Connect to an archive providing response channel, stream id, and optional credentials if authenticating. - Connection can be local or remote. Local can be optimised for IPC. - If successful a control session will be created with control responses provided. - If a response stream cannot be created within timeout then the session is automatically closed. 2. Recording - A recording can be started for a given channel and stream id. Channel can be restricted to session specific. - Each matching Image will get its own recording and assigned a unique id which can be used for replay. - Each Image recording can be tracked with recording-events or locally via a RecordingPos counter. - Recordings can be stopped by URI and stream-id or subscription registration id. - Existing recordings can be extended or truncated. 3. Replay - Recordings can be replayed to a provided channel and stream id which is different to the control stream. - Replays will start when the replay stream is connected and will automatically close at the end or if the replay stream is not connected. - Replays will likely have a different session if from the original recording. - A replay can be for a live recording which will follow a live recording in an open-ended fashion if requested length is -1 or greater than current recorded position. - A replay may be stopped early by closing the replay subscription or calling stop-replay. - A replay can be bounded by a provided counter id which limits the replay by externally controlled counter. 4. Query - Existing recordings can be listed by recording id range and filtered by uri and stream-id. - Recording subscriptions can be listed for all sessions, so they can be closed on failure. An active recording subscription can be found by recording id. - The start, stop, and active recording position for recordings. 5. Recording Signals - Signals indicating the asynchronous start, stop, extension, replicate, etc. of recordings during operation. 6. Truncate - Truncate an existing recording by deleting the end of a recording from a position. - Truncated to zero is an effective delete. 7. Replication - Replication a recording from one archive to another including the recording descriptor. - Replicated stream will likely not have the same recording id in destination archive. - Can follow a live recording up to the point it is stopped at the source. - Optionally Merge with a live stream after replay catch up to have multiple recordings of a live stream. - The Subscription used for replication can have its tags provided, so it can be followed externally. 8. Recording Progress Events - Events indicating the asynchronous start, stop, and progress of all recordings. - This can be a high volume stream which reports progress in batches of messages recorded to storage. - If only interested in the change of lifecycle events such as start, stop, and extend then use the below. 9. Recording Storage Maintenance - Detach segments from the beginning of a recording, so they can be moved or deleted. - Delete segments from the beginning of a recording which have been detached. - Purge segments from the beginning of a recording which is composite action of detach and delete. - Attach segments to the beginning of a recording which have been previously detached. - Migrate segments from another matching recording and attached them to the beginning of a recording. --> <sbe:message name="ControlResponse" id="1" description="Generic response to a control request. Error message will be empty if code is OK."> <field name="controlSessionId" id="1" type="int64" description="Session id for a multiplexed session over a shared connection, i.e. same Image."/> <field name="correlationId" id="2" type="int64" description="Request correlation id with which this response is associated."/> <field name="relevantId" id="3" type="int64" description="Relevant identity of an object, e.g. recordingId if RECORDING_UNKNOWN, or error code."/> <field name="code" id="4" type="ControlResponseCode" description="Code type of the response which is one of ControlResponseCode."/> <field name="version" id="5" type="version_t" presence="optional" sinceVersion="4" description="Protocol version for the server using semantic version form."/> <data name="errorMessage" id="6" type="varAsciiEncoding" description="Detailed error message which is provided when code is ERROR."/> </sbe:message> <sbe:message name="ConnectRequest" id="2" description="Request a connection to an archive and provide response details for the control session."> <field name="correlationId" id="1" type="int64"/> <field name="responseStreamId" id="2" type="int32"/> <field name="version" id="3" type="version_t" presence="optional" sinceVersion="2"/> <data name="responseChannel" id="4" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="CloseSessionRequest" id="3" description="Close an existing control session."> <field name="controlSessionId" id="1" type="int64"/> </sbe:message> <sbe:message name="StartRecordingRequest" id="4" description="Request a channel:stream be recorded."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="streamId" id="3" type="int32"/> <field name="sourceLocation" id="4" type="SourceLocation"/> <data name="channel" id="5" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="StopRecordingRequest" id="5" description="Request a channel:stream stop recording."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="streamId" id="3" type="int32"/> <data name="channel" id="4" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="ReplayRequest" id="6" description="Replay recording range request."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="position" id="4" type="int64"/> <field name="length" id="5" type="int64"/> <field name="replayStreamId" id="6" type="int32"/> <field name="fileIoMaxLength" id="8" type="int32" sinceVersion="7"/> <field name="replayToken" id="9" type="int64" sinceVersion="10"/> <data name="replayChannel" id="7" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="StopReplayRequest" id="7" description="Stop active Replay request."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="replaySessionId" id="3" type="int64"/> </sbe:message> <sbe:message name="ListRecordingsRequest" id="8" description="Request a range of recording descriptors."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="fromRecordingId" id="3" type="int64"/> <field name="recordCount" id="4" type="int32"/> </sbe:message> <sbe:message name="ListRecordingsForUriRequest" id="9" description="Request a range of recording descriptors."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="fromRecordingId" id="3" type="int64"/> <field name="recordCount" id="4" type="int32"/> <field name="streamId" id="5" type="int32"/> <data name="channel" id="6" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="ListRecordingRequest" id="10" description="Request a descriptor for a recording id."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="ExtendRecordingRequest" id="11" description="Request an existing recording be extended"> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="streamId" id="4" type="int32"/> <field name="sourceLocation" id="5" type="SourceLocation"/> <data name="channel" id="6" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="RecordingPositionRequest" id="12" description="Request the recorded position of an active recording."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="TruncateRecordingRequest" id="13" description="Request the truncation of stopped recording."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="position" id="4" type="int64"/> </sbe:message> <sbe:message name="StopRecordingSubscriptionRequest" id="14" description="Request a subscription stop recording."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="subscriptionId" id="3" type="int64"/> </sbe:message> <sbe:message name="StopPositionRequest" id="15" description="Request the stop position of a recording."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="FindLastMatchingRecordingRequest" id="16" description="Find the last recording id after minRecordingId which matches criteria."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="minRecordingId" id="3" type="int64"/> <field name="sessionId" id="4" type="int32"/> <field name="streamId" id="5" type="int32"/> <data name="channel" id="6" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="ListRecordingSubscriptionsRequest" id="17" description="Request a range of active recording subscriptions which match a criteria."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="pseudoIndex" id="3" type="int32"/> <field name="subscriptionCount" id="4" type="int32"/> <field name="applyStreamId" id="5" type="BooleanType"/> <field name="streamId" id="6" type="int32"/> <data name="channel" id="7" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="BoundedReplayRequest" id="18" description="Replay recording range request bounded by a position counter."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="position" id="4" type="int64"/> <field name="length" id="5" type="int64"/> <field name="limitCounterId" id="6" type="int32"/> <field name="replayStreamId" id="7" type="int32"/> <field name="fileIoMaxLength" id="9" type="int32" sinceVersion="7"/> <field name="replayToken" id="10" type="int64" sinceVersion="10"/> <data name="replayChannel" id="8" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="StopAllReplaysRequest" id="19" description="Stop all active replays."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <!-- Archive Catalog Metadata --> <sbe:message name="CatalogHeader" id="20" description="Used as first element in Catalog to set the version and alignment of entries."> <field name="version" id="1" type="int32"/> <field name="length" id="2" type="int32"/> <field name="nextRecordingId" id="3" type="int64"/> <field name="alignment" id="4" type="int32"/> <field name="reserved" id="5" type="int8" offset="31"/> </sbe:message> <sbe:message name="RecordingDescriptorHeader" id="21" description="Used in the catalog to describe the recording descriptor entry which follows."> <field name="length" id="1" type="int32" description="Length of the RecordingDescriptor in bytes including alignment padding."/> <field name="state" id="2" type="RecordingState" description="State of the recording."/> <field name="checksum" id="4" type="int32" description="Checksum of the entire RecordingDescriptor."/> <field name="reserved" id="3" type="int8" offset="31"/> </sbe:message> <!-- Records in the Catalog which describe recordings that can be listed via the Control Protocol --> <sbe:message name="RecordingDescriptor" id="22" description="Describes a recording in the catalog."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="startTimestamp" id="4" type="time_t"/> <field name="stopTimestamp" id="5" type="time_t"/> <field name="startPosition" id="6" type="int64"/> <field name="stopPosition" id="7" type="int64"/> <field name="initialTermId" id="8" type="int32"/> <field name="segmentFileLength" id="9" type="int32"/> <field name="termBufferLength" id="10" type="int32"/> <field name="mtuLength" id="11" type="int32"/> <field name="sessionId" id="12" type="int32"/> <field name="streamId" id="13" type="int32"/> <data name="strippedChannel" id="14" type="varAsciiEncoding"/> <data name="originalChannel" id="15" type="varAsciiEncoding"/> <data name="sourceIdentity" id="16" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="RecordingSubscriptionDescriptor" id="23" description="Describes a recording subscription that has been started and not yet stopped."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="subscriptionId" id="3" type="int64"/> <field name="streamId" id="4" type="int32"/> <data name="strippedChannel" id="5" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="RecordingSignalEvent" id="24" description="Signal of operations which happen to a recording."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="subscriptionId" id="4" type="int64"/> <field name="position" id="5" type="int64"/> <field name="signal" id="6" type="RecordingSignal"/> </sbe:message> <!-- Extended Control Protocol --> <sbe:message name="ReplicateRequest" id="50" description="Replicate a recording from another archive."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="srcRecordingId" id="3" type="int64"/> <field name="dstRecordingId" id="4" type="int64"/> <field name="srcControlStreamId" id="5" type="int32"/> <data name="srcControlChannel" id="6" type="varAsciiEncoding"/> <data name="liveDestination" id="7" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="StopReplicationRequest" id="51" description="Stop active replication session."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="replicationId" id="3" type="int64"/> </sbe:message> <sbe:message name="StartPositionRequest" id="52" description="Request the start position of a recording."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="DetachSegmentsRequest" id="53" description="Detach segments from a recording to give a new start position."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="newStartPosition" id="4" type="int64"/> </sbe:message> <sbe:message name="DeleteDetachedSegmentsRequest" id="54" description="Delete detached segments from a recording."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="PurgeSegmentsRequest" id="55" description="Purge (detach and delete) segments from a recording to give a new start position."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="newStartPosition" id="4" type="int64"/> </sbe:message> <sbe:message name="AttachSegmentsRequest" id="56" description="Attach segments to beginning of a recording to give a new start position."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="MigrateSegmentsRequest" id="57" description="Migrate segments to beginning of a recording to give a new start position."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="srcRecordingId" id="3" type="int64"/> <field name="dstRecordingId" id="4" type="int64"/> </sbe:message> <sbe:message name="AuthConnectRequest" id="58" description="Connect request with authentication credentials."> <field name="correlationId" id="1" type="int64"/> <field name="responseStreamId" id="2" type="int32"/> <field name="version" id="3" type="version_t"/> <data name="responseChannel" id="4" type="varAsciiEncoding"/> <data name="encodedCredentials" id="5" type="varDataEncoding"/> </sbe:message> <sbe:message name="Challenge" id="59" description="Challenge the client to provide credentials."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="version" id="3" type="version_t"/> <data name="encodedChallenge" id="4" type="varDataEncoding"/> </sbe:message> <sbe:message name="ChallengeResponse" id="60" description="Response to an archive challenge with credentials."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <data name="encodedCredentials" id="3" type="varDataEncoding"/> </sbe:message> <sbe:message name="KeepAliveRequest" id="61" description="Keep an archive control session alive by indicating the client is alive."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> </sbe:message> <sbe:message name="TaggedReplicateRequest" id="62" description="Replicate a recording from another archive and set tags on subscription."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="srcRecordingId" id="3" type="int64"/> <field name="dstRecordingId" id="4" type="int64"/> <field name="channelTagId" id="5" type="int64"/> <field name="subscriptionTagId" id="6" type="int64"/> <field name="srcControlStreamId" id="7" type="int32"/> <data name="srcControlChannel" id="8" type="varAsciiEncoding"/> <data name="liveDestination" id="9" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="StartRecordingRequest2" id="63" description="Request a channel:stream be recorded with the option to auto stop when complete."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="streamId" id="3" type="int32"/> <field name="sourceLocation" id="4" type="SourceLocation"/> <field name="autoStop" id="5" type="BooleanType"/> <data name="channel" id="6" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="ExtendRecordingRequest2" id="64" description="Request an existing recording be extended."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> <field name="streamId" id="4" type="int32"/> <field name="sourceLocation" id="5" type="SourceLocation"/> <field name="autoStop" id="6" type="BooleanType"/> <data name="channel" id="7" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="StopRecordingByIdentityRequest" id="65" description="Try and stop an active recording by its identity."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="ReplicateRequest2" id="66" description="Replicate a recording from another archive." sinceVersion="6"> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="srcRecordingId" id="3" type="int64"/> <field name="dstRecordingId" id="4" type="int64"/> <field name="stopPosition" id="5" type="int64"/> <field name="channelTagId" id="6" type="int64"/> <field name="subscriptionTagId" id="7" type="int64"/> <field name="srcControlStreamId" id="8" type="int32"/> <field name="fileIoMaxLength" id="12" type="int32" sinceVersion="7"/> <field name="replicationSessionId" id="13" type="int32" sinceVersion="8"/> <data name="srcControlChannel" id="9" type="varAsciiEncoding"/> <data name="liveDestination" id="10" type="varAsciiEncoding"/> <data name="replicationChannel" id="11" type="varAsciiEncoding"/> <data name="encodedCredentials" id="14" type="varDataEncoding" sinceVersion="8"/> <data name="srcResponseChannel" id="15" type="varAsciiEncoding" sinceVersion="10"/> </sbe:message> <sbe:message name="MaxRecordedPositionRequest" id="67" description="Request the stop or active recording position of a recording." sinceVersion="9"> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="ArchiveIdRequest" id="68" description="Resolve id of the Archive." sinceVersion="9"> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> </sbe:message> <!-- Archive Recording Progress Events --> <sbe:message name="RecordingStarted" id="101" description="Describes a new image recording as a notification."> <field name="recordingId" id="1" type="int64"/> <field name="startPosition" id="2" type="int64"/> <field name="sessionId" id="3" type="int32"/> <field name="streamId" id="4" type="int32"/> <data name="channel" id="5" type="varAsciiEncoding"/> <data name="sourceIdentity" id="6" type="varAsciiEncoding"/> </sbe:message> <sbe:message name="RecordingProgress" id="102" description="Recording progress notification for an Image."> <field name="recordingId" id="1" type="int64"/> <field name="startPosition" id="2" type="int64"/> <field name="position" id="3" type="int64"/> </sbe:message> <sbe:message name="RecordingStopped" id="103" description="Recording termination notification."> <field name="recordingId" id="1" type="int64"/> <field name="startPosition" id="2" type="int64"/> <field name="stopPosition" id="3" type="int64"/> </sbe:message> <sbe:message name="PurgeRecordingRequest" id="104" description="Request the invalidation of stopped recording." sinceVersion="5"> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> <sbe:message name="ReplayTokenRequest" id="105" sinceVersion="10" description="Request a token to allow a replay to be triggered from a different image."> <field name="controlSessionId" id="1" type="int64"/> <field name="correlationId" id="2" type="int64"/> <field name="recordingId" id="3" type="int64"/> </sbe:message> </sbe:messageSchema>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy