mjpt777 on master
Tidy up after merge of PR #257. (compare)
vyazelenko on master
[Java] Set min Agrona version t… (compare)
mikeb01 on master
[Java] Use a message to ensure … (compare)
mikeb01 on master
[CMake] Remove debug for releas… (compare)
mikeb01 on 1.38.x
Reduce sharing on image endpoin… (compare)
mikeb01 on master
Reduce sharing on image endpoin… (compare)
mjpt777 on master
[Java] Update recordingId on an… Merge remote-tracking branch 'o… (compare)
mjpt777 on master
[Java] When attempting ClientSe… (compare)
With no changes to our code, but just a restart, we are suddenly facing an unusual ERROR when the Consensus Module is starting up. What could be possible causes? Full stack trace in thread.
ERROR io.aeron.cluster.ConsensusModuleAgent java.lang.IllegalStateException: Cannot assign long arg5 to int
Hi @mjpt777
It's been a while but I'm now looking at adding MDC support to aeron-go.
I was wondering if there is an XML spec for the flyweights used for AddDestination etc? I had a bit of a browse in the aeron git and wiki but failed to find anything.
It all seems pretty transparent from the code - it's just I prefer to start from a spec where possible.
Thanks,
Bill.
Is using ReplayMerge necessary for merging replay with live stream? I guess otherwise it is not trivial to find the
cut off point at which subscriber should consume live stream instead of replayed and guarantee "at most once" delivery.
The problem I am facing is that ReplayMerge does not seem to work where live messages are published and recorded over multicast. I am getting error message "channel does not allow manual control" which I guess means ReplayMerge is tring to add subscription to the publisher which publishes over multicast channel that does not support manual control.
All ReplayMerge examples/tests use MDC so I wonder if multicast is supported for this use case
Thank you, I can get ReplayMerge working now for single publication sessionId. Unfortunately it does not seem to support multiple simultaneous sessions. I have multiple clients publishing to the same streamId over the same multicast channel, each having different sessionId. I tried running one ReplayMerge per session (getting sessionIds from archive recordings) with segregated replayDestinations but ReplayMerge gets confused when attempting to switch to live as it is trying to merge replay that delivers messages from a single session with live stream that delivers events from multiple sessions.
Ideally I would have one recording per streamId instead of the current recording per sessionId. Forcing the shared sessionId on multiple publishers results in archive/subscription treating multiple publications as one session, i.e. removing what it thinks are duplicate message.
ReplayMergeTest
fail (e.g. modify the test and put fail()
or throw exception from it). When the test fails it will capture all of the data (media driver, Archive etc.) and store under the build/test-output
directory (i.e. aeron-system-tests/build/test-output/io.aeron.archive.ReplayMergeTest-shouldMergeFromReplayToLive
).
archiveDir
when the test ends. Thus you can simply navigate to that dir to see what is inside.
./gradlew clean assemble -x javadoc
) and then add the logging options to the test executable. Here is an example which enables admin
events for the media driver and all of the events for the Archive:-javaagent:<path_to_aeron_project>/aeron/aeron-agent/build/libs/aeron-agent-1.38.0-SNAPSHOT.jar
-Daeron.event.log=admin
-Daeron.event.archive.log=all