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

Reply via email to