Hello all,
I’ve looked through the documentation surrounding the yaml config files and i have a few questions.
- Are the config files name specific? I’ve seen in the documentation to give it a name like manager or database but it wasn’t explicitly said that i could or could not give them other names. For example, could i name my manager.yml myconfig.yml instead?
- Is having the EventStore.Manager executable a requirement for being able to use config files? I set up a 3 node cluster using the documentation for only having database nodes (OSS), but I encounter problems on start up of the application. The version I’m using is the 4.1 hotfix. in my case i just pass “–config config.yml” to the commandline when starting it.
- Is there documentation available to troubleshoot errors in config files? I got an error but it was so generic i couldn’t really understand what it didn’t like. error is below:
"An invalid configuration file has been specified.
(Line: 2, Col: 6, Idx: 18) - (Line: 2, Col: 6, Idx: 18): Mapping values are not allowed in this context."
This is what has lead me to ask Questions 1 and 2 in reference to question 3.
No need for the manager, we also just stick it in the same folder as the EventStore.ClusterNode.exe and use --config “configuration.yaml”. Make sure you’re using the “Config file YAML” keys from https://eventstore.org/docs/server/command-line-arguments/index.html. Here is an example of ours (make sure every node has the same yaml unless you have a good reason to differentiate them),
IntTcpHeartbeatInterval: 5000
IntTcpHeartbeatTimeout: 5000
ExtTcpHeartbeatInterval: 5000
ExtTcpHeartbeatTimeout: 5000
GossipIntervalMs: 2000
GossipTimeoutMs: 2500
CommitTimeoutMs: 3000
PrepareTimeoutMs: 3000
``
Just to add, the error you are getting sounds invalid YAML.
Hi Austin,
I suggest changing these settings as a good rule of thumb is to set the interval half of the timeout as follow:
IntTcpHeartbeatInterval: 2500
IntTcpHeartbeatTimeout: 5000
ExtTcpHeartbeatInterval: 2500
ExtTcpHeartbeatTimeout: 5000
GossipIntervalMs: 2000
GossipTimeoutMs: 4000
You should also apply interval and timeouts on client side. C# example:
yourclientconfig.SetHeartbeatInterval(TimeSpan.FromSeconds(3)).SetHeartbeatTimeout(TimeSpan.FromSeconds(6))
Riccardo
Thank you all for the insight. I’ll double check my YAML.
It took me a good bit however I eventually figured out where the issues in the yaml were.
thank you all again.