Fork me on GitHub
Jon Walch01:03:33

Anyone seen this on datomic cloud?

clojure.lang.ExceptionInfo: Ops limit reached: 64
	at datomic.client.api.async$ares.invokeStatic(async.clj:58)
	at datomic.client.api.async$ares.invoke(async.clj:54)
	at datomic.client.api.sync$eval2156$fn__2157.invoke(sync.clj:90)
	at datomic.client.api.protocols$fn__14405$G__14359__14418.invoke(protocols.clj:126)
	at datomic.client.api$pull.invokeStatic(api.clj:285)
	at datomic.client.api$pull.invoke(api.clj:271)
	at datomic.client.api.sync$eval2156$fn__2157.invoke(sync.clj:91)
	at datomic.client.api.protocols$fn__14405$G__14359__14418.invoke(protocols.clj:126)
	at datomic.client.api$pull.invokeStatic(api.clj:287)
	at datomic.client.api$pull.invoke(api.clj:271)


Hi everyone, I'm having trouble in transacting into datomic but querying is fine. I get timeout when I do transact and got this error.

AMQ212054: Destination address=-596311ff-6dde-4e20-8f54-57f93ad53fdb.tx-submit is blocked. If the system is configured to block make sure you consume messages on this configuration.

org.apache.activemq.artemis.core.client.impl.ClientProducerCreditsImpl in acquireCredits at line 95
org.apache.activemq.artemis.core.client.impl.ClientProducerImpl in sendRegularMessage at line 285
org.apache.activemq.artemis.core.client.impl.ClientProducerImpl in doSend at line 263
org.apache.activemq.artemis.core.client.impl.ClientProducerImpl in send at line 119
datomic.connector.TransactorHornetConnector$fn__9976$fn__9979$fn__9980$fn__9983 in invoke at line 293
datomic.connector.TransactorHornetConnector$fn__9976$fn__9979$fn__9980 in invoke at line 293
datomic.connector.TransactorHornetConnector$fn__9976$fn__9979 in invoke at line 285
datomic.connector.TransactorHornetConnector$fn__9976 in invoke at line 283
Any idea/pointer where to check? Thank you in advanced.


Anyone successfuly log into the datomic forum lately? > Your account hasn’t been approved yet. You will be notified by email when you are ready to log in.

Joe Lane13:03:59

@hden I just logged in, but I already had an account. Do you already have an account?


I’ve created the account during the weekend.


@U0CJ19XAM Do you know how long those approvals usually take?

Joe Lane13:03:15

No, unfortunately. I presume it's a human action so it's subject to their availability. Hopefully soon things like this can be sped up.

Joe Lane13:03:23

Is there something you want to post in particular?


I’ve just received the approval email. Thanks for your time!

Vishal Gautam15:03:43

Quick question does datomic client support :db.attr/preds in the schema. I am trying to add a validation function to one of the attributes. When I try to transact the data. I get this error

Could not locate datomicexample/bbank/pred__init.class, datomicexample/bbank/pred.clj or datomicexample/bbank/pred.cljc on classpath.

Vishal Gautam16:03:21

Here is the pred name space

(ns datomicexample.bbank.pred)

(defn chequing?
  (and (number? val) (< 0 val)))

Vishal Gautam16:03:45

Here is how it is being used

def account-schema
  [{:db/ident       :account/chequing
    :db/valueType   :db.type/long
    :db/cardinality :db.cardinality/one
    :db.attr/preds  'datomicexample.bbank.pred/chequing?
    :db/doc         "The chequing amount in the Account"}
   {:db/ident       :account/savings
    :db/valueType   :db.type/long
    :db/cardinality :db.cardinality/one
    :db/doc         "The Users saving amount in the Account"}])


predicate functions must be on the classpath of the transactor

Vishal Gautam16:03:13

I am following this tutorial. How do I know which name space the transactor lives in

Vishal Gautam17:03:31

@U09R86PA4 should it be in the same file we the .properties file where we put licence key and other configurations


export DATOMIC_EXT_CLASSPATH=mylibs/mylib.jar


(I don’t think it has to be a jar--a clj source directory should work too)

Vishal Gautam17:03:59

Thank you for your help


Given the following model:

{:list/order [{:order/from 'a
               :order/to   'b}
              {:order/from 'b
               :order/to   'c}
              {:order/from 'c
               :order/to   'd}]}
How might I efficiently query for an :order/from value which is not referenced by any :order/to attribute, and in this example represents the beginning of a list? Unification is getting the best of me.


(d/q '[:find ?from
       [?l :list/order ?o]
       [?o :order/from ?from]
       (not-join [?l ?from]
                 [?l :list/order ?o2]
                 [?o2 :order/to ?from])]
     [['l :list/order 'o1]
      ['l :list/order 'o2]
      ['l :list/order 'o3]
      ['o1 :order/from 'a]
      ['o1 :order/to 'b]
      ['o2 :order/from 'b]
      ['o2 :order/to 'c]
      ['o3 :order/from 'c]
      ['o3 :order/to 'd]]


I can’t speak to its efficiency, but what was probably tripping you up was that you have to unify that ?o2 separately


you're exactly right, my or-join was missing a separate binding. thanks favila!