I'm having some trouble getting immutant/messaging working. I've narrowed the problem down to a conflict between immutant and datomic. If a make a new project and add [com.datomic/datomic-pro "0.9.5350"] [org.immutant/messaging "2.1.4"]
to the dependencies, then run (require '[immutant.messaging :refer :all])
and (def s (queue "test-queue"))
, I get an exception CompilerException java.lang.IncompatibleClassChangeError: Implementing class, compiling:(form-init1071921610737901131.clj:1:8)
. I've tried lein clean
and clearing my maven cache, both to no avail. I also tried going to an older version for datomic and immutant, but got the same error.
For reference, I'm using openjdk-8 (OpenJDK 64-Bit Server VM 1.8.0_66-internal-b17)
@tcrawley: some bad news - i finally got our benchmarking tool to work with compression ("permessage-deflate") by making a fork of the Gniazdo web socket client (which is based on Jetty 9). In load tests with compression enabled, found that around 1% of the messages are corrupted as seen by the client. so we had to abort our move to immutant.
@codonnell: seen this? http://immutant.org/news/2015/09/09/datomic-redux/
@moizsj: interesting. and you don't see corruption with that client against your existing system?
@tcrawley: correct. No corruption with existing system.
@jcrossley3: I did not. Thanks for the reference!
@codonnell: sure thing!
Works like a charm. Much appreciated.
@moizsj: how big are your payloads? I wonder if you are hitting https://issues.jboss.org/browse/UNDERTOW-684
@tcrawley: the messages are really huge strings, though I'll have to check exactly how large. What version of Undertow does current Immutant use?