i'm receiving this error while trying to import-cloud:
ImportingExecution error (ExceptionInfo) at datomic.client.api.async/ares (async.clj:58).
Response body did not conform to Datomic client protocol
execution:
clojure -X:import-cloud
; import-cloud.clj
(defn import-cloud
[_]
(let [file-config (-> "datomic-import-cloud-config.edn" io/resource slurp edn/read-string)]
(println "Importing datomic data from:")
(pprint/pprint (:source file-config))
(println "into:")
(pprint/pprint (:dest file-config))
(println (dl/import-cloud file-config))
(println "Completed.")))
deps:
:import-cloud {:extra-paths ["development/src" "development/resources"]
:extra-deps {com.datomic/local {:mvn/version "1.0.276"}
com.datomic/client-cloud {:mvn/version "1.0.124"}
org.clojure/clojure {:mvn/version "1.12.3"}}
:exec-fn dev.datomic-import-cloud/import-cloud}
and config:
{:source {:server-type :ion
:region "***"
:system "***"
:endpoint "***"
:db-name "***"}
:dest {:system "prod-replica"
:server-type :datomic-local
:db-name "prod-replica"}
:filter {}}
datomic cloud version 9309 on aws
what am i doing wrong?You can perform the import to a Datomic Local database from within the VPC, connecting directly to a query group node or primary-compute-group-node via the EndpointAddress in the Outputs tab of the CFT.
Alternatively, you can query with the client-api directly to your cloud instances (either first trying to use the ClientApiGatewayEndpoint, and if that doesn't work, jump into the VPC and query against the EndpointAddress which circumvents API-Gateway all together)
I keep suggesting you try to use the ClientApiGatewayEndpoint with the client-api first because jumping inside the VPC is a bit cumbersome and the import-cloud operation is actually attempting to import transactions in batches of 32 txes at a time. This means you may be able to identify the erroneous transaction by querying via the client-api for JUST that transaction because it may be under the size limitation of api-gateway.
i'm getting
"{\"message\":\"Request Entity Too Large\"}"
413 error
how can i tell if the tx are too large?I believe this is an api-gateway exception
Can you try again but omit :filter {}?
Hmm. actually I don't think that will work.
I'd open the local-db, find the latest tx that made it into the db, and then start importing 1 tx-at-a-time until you find the tx in the cloud system that was too large.
Again, I think this is an api-gateway problem
You could always create this db from within the VPC
yes i believe it's the 10mb limit of the api gateway what should be my go-to strategy to investigate prod corruption or bugs?
Wdym prod corruption?
we have a bug in a specific state of data i'm not sure how the data reached its state in order to investigate i need to connect or download the production state and apply the failing transaction
Are there plans to move com.datomic/client-cloud off of v1 of the AWS Java SDK since https://aws.amazon.com/blogs/developer/the-aws-sdk-for-java-1-x-is-in-maintenance-mode-effective-july-31-2024/ after dec 31st?
Yes
Is there a way to change the amount of jetty threads needed for the ping-host, ping-port transactor options? I found on my freshly provisioned small VPS that jetty wants 4 dedicates cores and my new VPS only has 4 cores total
java.lang.IllegalStateException: Insufficient configured threads: required=3 < max=3 for QueuedThreadPool[qtp359672405]@15702a55{STARTED,3<=3<=3,i=3,r=-1,q=0}https://docs.datomic.com/operation/deployment.html#max-threads
An annoying bug that we have a ticket for already
Sorry about that
Nah it's fine, I thought I looked there but somehow overlooked it
Thanks for the quick help. Felt like a VIP at that speed. 🙂
I do my best to ensure all my customers feel like VIPs 😎