Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time


Produce and consume JMX beans from Clojure.


Requires Clojure 1.3 alpha or later.

(require '[ :as jmx])


What beans do I have?

(jmx/mbean-names \"*:*\")
-> #<HashSet [java.lang:type=MemoryPool,name=CMS Old Gen, 
              java.lang:type=Memory, ...]

What attributes does a bean have?

(jmx/attribute-names \"java.lang:type=Memory\")
-> (:Verbose :ObjectPendingFinalizationCount 
    :HeapMemoryUsage :NonHeapMemoryUsage)

What is the value of an attribute?

(jmx/read \"java.lang:type=Memory\" :ObjectPendingFinalizationCount)
-> 0

Give me all the attributes:

(jmx/mbean \"java.lang:type=Memory\")
-> {:NonHeapMemoryUsage
     {:used 16674024, :max 138412032, :init 24317952, :committed 24317952},
     {:used 18619064, :max 85393408, :init 0, :committed 83230720},
    :ObjectPendingFinalizationCount 0,
    :Verbose false}

Find an invoke an operation:

(jmx/operation-names \"java.lang:type=Memory\")
-> (:gc)  
(jmx/invoke \"java.lang:type=Memory\" :gc)
-> nil

Conneting to another process? Just run any of the above code inside a with-connection:

(jmx/with-connection {:host \"localhost\", :port 3000} 
  (jmx/mbean \"java.lang:type=Memory\"))
-> {:ObjectPendingFinalizationCount 0, 
    :HeapMemoryUsage ... etc.}

Serve your own beans. Drop a Clojure ref into create-bean to expose read-only attributes for every key/value pair in the ref:

   (ref {:string-attribute \"a-string\"}))


java.jmx is available in Maven central. Add it to your Maven project's pom.xml:


or your leiningen project.clj:

[org.clojure/java.jmx "0.1"]


  1. Clone the repo
  2. Make sure you have maven installed
  3. Run the maven build: mvn install will produce a JAR file in the target directory, and run all tests with the most recently-released build of Clojure (currently 1.3.0 alpha n).


Copyright © Stuart Halloway

Licensed under the EPL. (See the file epl.html.)

Something went wrong with that request. Please try again.