Fork me on GitHub
#datomic
<
2022-11-04
>
Drew Verlee16:11:55

my logs are showing that a Datomic Transactor, which was expected to be there, isn't available to the Datomic Peer. How would you go about debugging this? My first thought in glancing at the code is that I would want to know the connection info to make sure it wasn't somehow getting the wrong configuration (e.g the location of the transactor). I see a call like this (datomic.api/log conn) I say "like" because there is indirection through potemkin e.g (potekin/import-vars [datomic.api log]) that i'm not 100% how to read. And when i looked at the datomic docs, i can't find a datomic.api/log function.

favila16:11:18

datomic connects to storage, pulls the host= and alt-host= values (written into transactor.properties), and tries both of them to connect to the transactor.

favila16:11:11

if it can’t connect to storage, you’ll get some exception from your storage driver (e.g. from dynamo if you are using dynamo)

favila16:11:25

if it can’t connect to the transactor, you’ll get an exception thrown from artemis

favila16:11:51

using that you can bisect which thing is wrong

favila16:11:45

on the datomic side, the only things that can be wrong are bad connection string or a bad or missing alt-host value (assuming the txor is running fine)

favila16:11:09

everything else is going to be something in your network stack that’s preventing peers from talking to storage or transactor or both

👀 1
favila16:11:40

(The purpose of alt-host= is to give a host value that peers could use to connect to the transactor, in case the host= value that the transactor uses to bind its listen is not routable to by peers)

Drew Verlee01:11:43

thanks again. Ill have to think about that a bit :thinking_face: