mjpt777 on master
[Java] Upgrade to SBE 1.21.0 (compare)
vyazelenko on master
[Doc] Update the list of Java v… (compare)
mjpt777 on master
Warnings clean up. (compare)
mjpt777 on master
[Java] Warnings and typos clean… (compare)
mjpt777 on master
[Java] Fix warnings. (compare)
mjpt777 on master
[C++] Fix formatting and warnin… (compare)
mjpt777 on master
[C] Implementation for #1115, a… (compare)
mjpt777 on master
[Java] Increase client session … (compare)
mjpt777 on master
[Java] Stop sending second fram… (compare)
@mjpt777 Apologies, a bit difficult to provide the test case but can provide a few more details: Publication is on channel aeron:udp?tags=1,100001|control=hostnameA:40456|control-mode=dynamic. Subscription on host B is specified as aeron:udp?endpoint=hostnameB:49101|control=hostnameA:40456
Replication is started on hostC using same using liveDestination same as subscription defined above and connecting to the source archive on hostA using srcControlChannel=aeron:udp?endpoint=hostnameA:40461.
The replication is started successfully and i can see a replicate recording on hostC.
When i start hostB, the first thing it does is try to replay the recording from hostC and then merge into the live stream from hostA. The replaySubscriberChannel is defined as aeron:udp?endpoint=hostnameB:40491|session-id=tag:100001 and the liveDestination same as subscription above for the ReplayMerge. However when the replaymerge starts it throws “must reference a network publication” when trying to look up the network publication by sessionid tag 100001.
When i moved the replicate from hostC to hostA, i was able to replayMerge perfectly from hostB.
The media driver contains two hard-coded constants regarding network activity:
PENDING_SETUPS_TIMEOUT_NS
(1 s): dictates how often a receiver sends out setup-eliciting Status Messages to the sender, periodic in Multi-Destination-Cast (MDC)PUBLICATION_SETUP_TIMEOUT_NS
(100 ms): dictates how often a sender sends out Setup Frames to receivers, periodic in MDCIs there any background on how these specific numbers were selected or why they cannot be altered (unlike e.g. Receiver Status Message Timeout)?
hi! (please don't treat me as an employer of my company only, this question is more about my own curiosity)
if I've got an archive and I need a connection to it, I can come up with code like this one:
try (MediaDriver md = MediaDriver.launch();
Archive archive = Archive.launch();
AeronArchive aeronArchive =
AeronArchive.connect(new AeronArchive.Context().aeron(archive.context().aeron())))
{
}
but some times it throws this exception
io.aeron.exceptions.TimeoutException: ERROR - Archive connect timeout: correlationId=12 step=4
at io.aeron.archive.client.AeronArchive$AsyncConnect.checkDeadline(AeronArchive.java:3056)
at io.aeron.archive.client.AeronArchive$AsyncConnect.poll(AeronArchive.java:2942)
at io.aeron.archive.client.AeronArchive.connect(AeronArchive.java:214)
looks like that code smells, but I can't see why, could you help me to figure it out?
thanks!
invoke()
method, right?Best not to reuse the Archive's Aeron client if the Archive 'owns' the client instance.
worth adding to the Archive javadoc, what do you think?
Archive
and AeronArchive
I would construct it externally so that you know which threading mode it is using and pass it into both.
and another small imperfection https://github.com/real-logic/aeron/blob/master/aeron-archive/src/main/java/io/aeron/archive/Archive.java#L856
if aeron client is
is what? =)
oh, yes, and the last thing I'd like to mention:
it's confusing when Aeron says
io.aeron.exceptions.DriverTimeoutException: FATAL - no response from MediaDriver within (ns): 10000000000
in a case when the MediaDriver kicks off our Aeron connection. Can we make a difference in such cases?
thanks
Hello I am trying to get the Aeron Cluster Basic Auction Cluster Application to run on 4 AWS EC2 instances.
Three of the instances are node0, node1, and node2 running the cluster members and one EC2 instance is running the Aeron Basic Auction Cluster Client. The cluster nodes (node0, node1, node2) come up and the RAFT seems to work if I kill the leader then there is an election and a new leader is chosen.
However the client just throws the following exception: connect timeout, step=3 egress.isConnected=false
io.aeron.exceptions.TimeoutException: connect timeout, step=3 egress.isConnected=false
at io.aeron.cluster.client.AeronCluster$AsyncConnect.checkDeadline(AeronCluster.java:1542)
at io.aeron.cluster.client.AeronCluster$AsyncConnect.poll(AeronCluster.java:1498)
at io.aeron.cluster.client.AeronCluster.connect(AeronCluster.java:119)
at org.aeron.simple.BasicAuctionClusterClient.main(BasicAuctionClusterClient.java:205)
I did replace the Consensus Module Context Cluster Members with the IP addresses of the cluster members in the Basic Auction Clustered Service Node code. For the Basic Auction Cluster Client I pass in the IP addresses of the cluster members to the ingressEndPoints whcih creates the ingressEndPoints to pass in to the Aeron Cluster. The UDP ports are open in the Security Group for the EC2 instances.
I am not sure what else I need to do or if there are known issues trying the get that sample working in AWS. Has anyone been able to get that sample working in AWS that could maybe help me.
Thanks