mjpt777 on master
[Java] Increase cluster termina… (compare)
mjpt777 on master
Tidy up warnings and formatting. (compare)
mjpt777 on master
[C++] Better example of ReplayM… (compare)
mjpt777 on master
[C++] Extra debugging info for … (compare)
mjpt777 on master
[C++] Remove the need to split … (compare)
mjpt777 on master
[C++] Tidy up archive tests. (compare)
mjpt777 on master
[C++] Tidy up archive tests. (compare)
mjpt777 on master
[C++] Fix archive tests to run … (compare)
mjpt777 on master
[Java] Improve ArchiveTest in s… (compare)
mjpt777 on master
[Java] Avoid boxing of boolean … (compare)
mjpt777 on master
[Java] Naming. (compare)
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
hi once again... I hope I'm not bothering you too much with my messages
I notice that the approach to provide to RecordingSignalAdapter
instance the subscription from aeronArchive.controlResponsePoller().subscription();
is kind of "asking for troubles" if you use that instance of aeronArchive for any requests/response (like listRecordings, stopPosition, etc)
for example here https://github.com/real-logic/aeron/blob/932717568bc3906cdadfa48d4173c0f7adffb50a/aeron-system-tests/src/test/java/io/aeron/archive/ReplicateRecordingTest.java#L569
because aeronArchive polls exactly the same subscription for responses, so if you've got both instances you can lose either a response or a signal