<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Datomic Knowledgebase - Recent questions tagged transactor</title>
<link>https://ask.datomic.com/index.php/tag/transactor</link>
<description>Powered by Question2Answer</description>
<item>
<title>Possibly security issue with the dev H2 storage?</title>
<link>https://ask.datomic.com/index.php/1003/possibly-security-issue-with-the-dev-h2-storage</link>
<description>&lt;p&gt;While trying to understand more about the behaviour of Datomic dev (mainly from a security/encryption point of view), I attempted to connect to datomic.mv.db from an instance of the H2 console. I accidentally tried to log in as &quot;admin&quot; with a blank password and was surprised when I connected successfully. Connecting as &quot;admin&quot; with any password fails, so it seems explicitly to be blank. As far as I can tell I only have public  schema access and can't see any transacted data, but I am able to run SQL queries in the console.&lt;/p&gt;
&lt;p&gt;Clearly a dev transactor isn't intended to be high security, but admin with a blank password seems risky even for a dev environment. In most SQL environments I work with, the sa/admin account is just disabled if not used. Am I missing something?&lt;/p&gt;
&lt;p&gt;As an aside, does the dev transactor use H2's AES encryption or is the resulting data file unencrypted?&lt;/p&gt;
</description>
<category>On-Prem</category>
<guid isPermaLink="true">https://ask.datomic.com/index.php/1003/possibly-security-issue-with-the-dev-h2-storage</guid>
<pubDate>Wed, 13 Mar 2024 21:58:26 +0000</pubDate>
</item>
<item>
<title>how to run a dev transactor from the same process as a peer?</title>
<link>https://ask.datomic.com/index.php/964/how-to-run-a-dev-transactor-from-the-same-process-as-a-peer</link>
<description>&lt;p&gt;At scale you definitely want a separate transactor, but for development or for deploying an early prototype , it would be very handy to be able to have the transactor running in the same process as the peer. This would trade reliability and predictability for resource efficiency, and allow deploying on an inexpensive instance somewhere in a public cloud. This would probably lower the bar for trying out datomic in many settings.&lt;/p&gt;
&lt;p&gt;In fact, it seems that &lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.datomic.com/cloud/datomic-local.html&quot;&gt;datomic local&lt;/a&gt; allows having an embedded H2 database and a transactor into the same JVM process as your client.&lt;/p&gt;
&lt;p&gt;You mentioned that it is possible to do the same for datomic on-prem, could you detail how one might do it?&lt;/p&gt;
</description>
<category>On-Prem</category>
<guid isPermaLink="true">https://ask.datomic.com/index.php/964/how-to-run-a-dev-transactor-from-the-same-process-as-a-peer</guid>
<pubDate>Wed, 10 Jan 2024 22:30:06 +0000</pubDate>
</item>
<item>
<title>Is it possible to run a transactor within the scope of my application?</title>
<link>https://ask.datomic.com/index.php/957/is-it-possible-run-transactor-within-the-scope-application</link>
<description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Is it possible to run a transactor from within a Clojure application? I'm trying to gain more control over/feedback about the state of the transactor, and simply shelling out to bin\transactor doesn't seem like a neat solution. I'd also prefer that the end user doesn't have to provide and maintain their own transactor.&lt;/p&gt;
&lt;p&gt;PS, I understand concerns about contention for resources, but what I envision is a simple wrapper application that runs in its own JVM process separate from the rest of my application logic.&lt;/p&gt;
</description>
<category>On-Prem</category>
<guid isPermaLink="true">https://ask.datomic.com/index.php/957/is-it-possible-run-transactor-within-the-scope-application</guid>
<pubDate>Sun, 03 Dec 2023 11:52:25 +0000</pubDate>
</item>
<item>
<title>Failure to transact a DB after delete and re-create</title>
<link>https://ask.datomic.com/index.php/630/failure-to-transact-a-db-after-delete-and-re-create</link>
<description>&lt;p&gt;Hi, when we perform these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;delete-database&lt;/li&gt;
&lt;li&gt;create-database&lt;/li&gt;
&lt;li&gt;transact schema&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;...the transact fails with a cognitect.anomaly/forbidden citing a 403.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{:msg &quot;YADA ! yada.components.user.handlers CreateUserTx:STEP MSG&quot;, :outcome &quot; FAILURE: Datomic Client Exception&quot;, :lvl &quot;⚠️ WARN&quot;, :loc &quot;yada/components/user/handlers.clj:134&quot;}
; Execution error (ExceptionInfo) at datomic.client.api.async/ares (async.clj:58).
; Datomic Client Exception
clj꞉yada.core꞉&amp;gt; 
*e
#error {
 :cause &quot;Datomic Client Exception&quot;
 :data {:cognitect.anomalies/category :cognitect.anomalies/forbidden, :http-result {:status 403, :headers {&quot;server&quot; &quot;Jetty(9.4.36.v20210114)&quot;, &quot;content-length&quot; &quot;19&quot;, &quot;date&quot; &quot;Wed, 23 Jun 2021 17:38:56 GMT&quot;, &quot;content-type&quot; &quot;application/transit+msgpack&quot;}, :body nil}}
 :via
 [{:type clojure.lang.ExceptionInfo
   :message &quot;Datomic Client Exception&quot;
   :data {:cognitect.anomalies/category :cognitect.anomalies/forbidden, :http-result {:status 403, :headers {&quot;server&quot; &quot;Jetty(9.4.36.v20210114)&quot;, &quot;content-length&quot; &quot;19&quot;, &quot;date&quot; &quot;Wed, 23 Jun 2021 17:38:56 GMT&quot;, &quot;content-type&quot; &quot;application/transit+msgpack&quot;}, :body nil}}
   :at [datomic.client.api.async$ares invokeStatic &quot;async.clj&quot; 58]}]
 :trace
 [[datomic.client.api.async$ares invokeStatic &quot;async.clj&quot; 58]
  [datomic.client.api.async$ares invoke &quot;async.clj&quot; 54]
  [datomic.client.api.sync$eval37636$fn__37641 invoke &quot;sync.clj&quot; 104]
  [datomic.client.api.protocols$fn__11841$G__11795__11848 invoke &quot;protocols.clj&quot; 72]
  [datomic.client.api$transact invokeStatic &quot;api.clj&quot; 200]
  [datomic.client.api$transact invoke &quot;api.clj&quot; 183]
  [datomic.cloud.client.local.Connection transact &quot;local.clj&quot; 97]
  [datomic.client.api$transact invokeStatic &quot;api.clj&quot; 200]
  [datomic.client.api$transact invoke &quot;api.clj&quot; 183]
  [yada.util.datomic$transact$fn__7133 invoke &quot;datomic.clj&quot; 428]
  [yada.util.anom$with_retry$fn__7039 invoke &quot;anom.clj&quot; 25]
  [yada.util.anom$with_retry invokeStatic &quot;anom.clj&quot; 25]
  [yada.util.anom$with_retry doInvoke &quot;anom.clj&quot; 13]
  [clojure.lang.RestFn invoke &quot;RestFn.java&quot; 410]
  [yada.util.datomic$transact invokeStatic &quot;datomic.clj&quot; 427]
  [yada.util.datomic$transact invoke &quot;datomic.clj&quot; 407]
  [yada.components.user.handlers$create_user_tx invokeStatic &quot;handlers.clj&quot; 142]
  [yada.components.user.handlers$create_user_tx invoke &quot;handlers.clj&quot; 131]
  [clojure.core.reducers$map$fn__26594$fn__26595 invoke &quot;reducers.clj&quot; 134]
  [clojure.lang.ArrayChunk reduce &quot;ArrayChunk.java&quot; 58]
  [clojure.core.protocols$fn__8178 invokeStatic &quot;protocols.clj&quot; 136]
  [clojure.core.protocols$fn__8178 invoke &quot;protocols.clj&quot; 124]
  [clojure.core.protocols$fn__8138$G__8133__8147 invoke &quot;protocols.clj&quot; 19]
  [clojure.core.protocols$seq_reduce invokeStatic &quot;protocols.clj&quot; 31]
  [clojure.core.protocols$fn__8174 invokeStatic &quot;protocols.clj&quot; 75]
  [clojure.core.protocols$fn__8174 invoke &quot;protocols.clj&quot; 75]
  [clojure.core.protocols$fn__8112$G__8107__8125 invoke &quot;protocols.clj&quot; 13]
  [clojure.core.reducers$folder$reify__26569 coll_reduce &quot;reducers.clj&quot; 93]
  [clojure.core$reduce invokeStatic &quot;core.clj&quot; 6833]
  [clojure.core$into invokeStatic &quot;core.clj&quot; 6900]
  [clojure.core$into invoke &quot;core.clj&quot; 6892]
  [yada.db.seed.app_seed.app_data.user$seed invokeStatic &quot;user.clj&quot; 56]
  [yada.db.seed.app_seed.app_data.user$seed invoke &quot;user.clj&quot; 52]
  [yada.db.seed.app_seed.core$seed invokeStatic &quot;core.clj&quot; 12]
  [yada.db.seed.app_seed.core$seed invoke &quot;core.clj&quot; 9]
  [yada.core$eval38738 invokeStatic &quot;NO_SOURCE_FILE&quot; 51]
  [yada.core$eval38738 invoke &quot;NO_SOURCE_FILE&quot; 51]
  [clojure.lang.Compiler eval &quot;Compiler.java&quot; 7181]
  [clojure.lang.Compiler eval &quot;Compiler.java&quot; 7136]
  [clojure.core$eval invokeStatic &quot;core.clj&quot; 3202]
  [clojure.core$eval invoke &quot;core.clj&quot; 3198]
  [nrepl.middleware.interruptible_eval$evaluate$fn__36286$fn__36287 invoke &quot;interruptible_eval.clj&quot; 87]
  [clojure.lang.AFn applyToHelper &quot;AFn.java&quot; 152]
  [clojure.lang.AFn applyTo &quot;AFn.java&quot; 144]
  [clojure.core$apply invokeStatic &quot;core.clj&quot; 667]
  [clojure.core$with_bindings_STAR_ invokeStatic &quot;core.clj&quot; 1977]
  [clojure.core$with_bindings_STAR_ doInvoke &quot;core.clj&quot; 1977]
  [clojure.lang.RestFn invoke &quot;RestFn.java&quot; 425]
  [nrepl.middleware.interruptible_eval$evaluate$fn__36286 invoke &quot;interruptible_eval.clj&quot; 87]
  [clojure.main$repl$read_eval_print__9112$fn__9115 invoke &quot;main.clj&quot; 437]
  [clojure.main$repl$read_eval_print__9112 invoke &quot;main.clj&quot; 437]
  [clojure.main$repl$fn__9121 invoke &quot;main.clj&quot; 458]
  [clojure.main$repl invokeStatic &quot;main.clj&quot; 458]
  [clojure.main$repl doInvoke &quot;main.clj&quot; 368]
  [clojure.lang.RestFn invoke &quot;RestFn.java&quot; 1523]
  [nrepl.middleware.interruptible_eval$evaluate invokeStatic &quot;interruptible_eval.clj&quot; 84]
  [nrepl.middleware.interruptible_eval$evaluate invoke &quot;interruptible_eval.clj&quot; 56]
  [nrepl.middleware.interruptible_eval$interruptible_eval$fn__36317$fn__36321 invoke &quot;interruptible_eval.clj&quot; 152]
  [clojure.lang.AFn run &quot;AFn.java&quot; 22]
  [nrepl.middleware.session$session_exec$main_loop__36385$fn__36389 invoke &quot;session.clj&quot; 202]
  [nrepl.middleware.session$session_exec$main_loop__36385 invoke &quot;session.clj&quot; 201]
  [clojure.lang.AFn run &quot;AFn.java&quot; 22]
  [java.lang.Thread run &quot;Thread.java&quot; 748]]}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If we instead:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;delete-database&lt;/li&gt;
&lt;li&gt;redeploy app using Ion's tools for this&lt;/li&gt;
&lt;li&gt;create-database&lt;/li&gt;
&lt;li&gt;transact schema&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;...then all goes fine.&lt;/p&gt;
&lt;p&gt;So it seems that cycling the Datomic server helps somehow.&lt;/p&gt;
&lt;p&gt;We looked to see if we were caching the client or the connection and this doesn't seem to be the case. Is there some operational characteristics we should be aware of that would be in play after deleting a DB?&lt;/p&gt;
</description>
<category>Cloud</category>
<guid isPermaLink="true">https://ask.datomic.com/index.php/630/failure-to-transact-a-db-after-delete-and-re-create</guid>
<pubDate>Tue, 22 Jun 2021 20:32:19 +0000</pubDate>
</item>
<item>
<title>New engine for executing java scripts on the transactor</title>
<link>https://ask.datomic.com/index.php/455/new-engine-for-executing-java-scripts-on-the-transactor</link>
<description>&lt;p&gt;Is it planned to consider another script executing engines than &lt;strong&gt;janino&lt;/strong&gt;? There is script evaluator provided by &lt;strong&gt;groovy.lang.GroovyShell&lt;/strong&gt; which can execute java scripts too. I  have compared the time to evaluate the same java script by both engines and groovy engine executes significantly faster. Another positive side effect: support of groovy scripts. I believe using of new script evaluator will make improvements to the time of executing transactor functions written in java &lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.groovy-lang.org/latest/html/api/groovy/lang/GroovyShell.html&quot;&gt;https://docs.groovy-lang.org/latest/html/api/groovy/lang/GroovyShell.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPD.&lt;/strong&gt; How much are java transactor scripts executted longer than clojure transactor scripts?&lt;/p&gt;
</description>
<category>On-Prem</category>
<guid isPermaLink="true">https://ask.datomic.com/index.php/455/new-engine-for-executing-java-scripts-on-the-transactor</guid>
<pubDate>Fri, 23 Oct 2020 13:52:54 +0000</pubDate>
</item>
</channel>
</rss>