Just released Avout 0.5.2, which now includes automatic STM initialization (no more pesky init-stm step).
David On Dec 1, 12:44 pm, David Edgar Liebke <lie...@gmail.com> wrote: > init-stm (and reset-stm) are only used for creating an STM that will be used > by every client. You only want to call it once, not every time a client > connects. > > I could be more clever about calling it when it's clear that it hasn't been > called before though. I'll dedicate that patch to you :) > > > I tried looking at the docstrings for each fn but they were both nil :-( > > Oops, I'll fix that. > > David > > On Dec 1, 2011, at 12:36 PM, Sam Aaron wrote: > > > > > > > > > Out of interest, why is #'init-stm a separate step to #'connect > > > I tried looking at the docstrings for each fn but they were both nil :-( > > > Sam > > > --- > >http://sam.aaron.name > > > On 1 Dec 2011, at 17:21, David Edgar Liebke wrote: > > >> Did you initialize the STM? > > >> (init-stm client) > > >> You only need to do it the first time, to set up the necessary zookeeper > >> nodes, it's described in the main tutorial but not the snippet on the top > >> of the avout site. > > >> David > > >> On Dec 1, 2011, at 12:15 PM, Sam Aaron wrote: > > >>> Hi David, > > >>> thanks for looking into this so promptly. Sadly 0.5.1 just throws a > >>> different exception: > > >>> user=> (def client (connect "127.0.0.1")) > >>> #'user/client > >>> user=> (def r0 (zk-ref client "/r0" 0)) > >>> java.lang.RuntimeException: > >>> org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = > >>> NoNode for /stm/history/t- > >>> run-in-transaction exception: #<RuntimeException > >>> java.lang.RuntimeException: > >>> org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = > >>> NoNode for /stm/history/t-> nil > >>> at clojure.lang.Util.runtimeException(Util.java:165) > >>> at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:35) > >>> at avout.transaction$run_in_transaction.invoke(transaction.clj:356) > >>> at avout.core$zk_ref.doInvoke(core.clj:51) > >>> at clojure.lang.RestFn.invoke(RestFn.java:445) > >>> at clojure.lang.AFn.applyToHelper(AFn.java:167) > >>> at clojure.lang.RestFn.applyTo(RestFn.java:132) > >>> at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3337) > >>> at clojure.lang.Compiler$DefExpr.eval(Compiler.java:375) > >>> at clojure.lang.Compiler.eval(Compiler.java:6470) > >>> at clojure.lang.Compiler.eval(Compiler.java:6431) > >>> at clojure.core$eval.invoke(core.clj:2795) > >>> at clojure.main$repl$read_eval_print__5967.invoke(main.clj:244) > >>> at clojure.main$repl$fn__5972.invoke(main.clj:265) > >>> at clojure.main$repl.doInvoke(main.clj:265) > >>> at clojure.lang.RestFn.invoke(RestFn.java:512) > >>> at user$eval27$acc__3869__auto____30$fn__32.invoke(NO_SOURCE_FILE:1) > >>> at clojure.lang.AFn.run(AFn.java:24) > >>> at java.lang.Thread.run(Thread.java#'user/r0 > >>> user=> :680) > >>> Caused by: org.apache.zookeeper.KeeperException$NoNodeException: > >>> KeeperErrorCode = NoNode for /stm/history/t- > >>> at > >>> org.apache.zookeeper.KeeperException.create(KeeperException.java:102) > >>> at > >>> org.apache.zookeeper.KeeperException.create(KeeperException.java:42) > >>> at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:637) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> at > >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3 > >>> 9) > >>> at > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp > >>> l.java:25) > >>> at java.lang.reflect.Method.invoke(Method.java:597) > >>> at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:92) > >>> at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:30) > >>> at zookeeper$create.doInvoke(zookeeper.clj:158) > >>> at clojure.lang.RestFn.invoke(RestFn.java:521) > >>> at avout.transaction$next_point.invoke(transaction.clj:62) > >>> at avout.transaction$reincarnate_txn.invoke(transaction.clj:233) > >>> at avout.transaction$stop$fn__1104.invoke(transaction.clj:243) > >>> at avout.transaction$stop.invoke(transaction.clj:238) > >>> at > >>> avout.transaction.LockingTransaction$fn__1117.invoke(transaction.clj:323) > >>> at > >>> avout.transaction.LockingTransaction.runInTransaction(transaction.clj:303) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> at > >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3 > >>> 9) > >>> at > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp > >>> l.java:25) > >>> at java.lang.reflect.Method.invoke(Method.java:597) > > ... > > read more » -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en