I think you need to specify the port in the JMXServiceURL. The exception
indicates there is no service listening on given host and port. Also, I
guess, based on 127.0.0.1, you are running the client on same m/c as
Cassandra. If that is not the case then fix the host as well. You might want
to look at the cassandra-env.sh file and comments it in.



On Tue, Apr 5, 2011 at 5:56 PM, Anurag Gujral <anurag.guj...@gmail.com>wrote:

> Hi All,
>           I had written code for cassandra 0.6.3 using JMX to call
> compaction,when I try to use that code to connect to 0.7.3 I get the
> following
> error
> Exception in thread "main" java.rmi.ConnectException: Connection refused to
> host: 127.0.0.1; nested exception is:
>     java.net.ConnectException: Connection refused
>     at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
>     at
> sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
>     at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
>     at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
>     at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown
> Source)
>     at
> javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2327)
>     at
> javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:279)
>     at
> javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248)
>     at com.bluekai.Client.doCompaction(Client.java:51)
>     at com.bluekai.Client.main(Client.java:41)
> Caused by: java.net.ConnectException: Connection refused
>     at java.net.PlainSocketImpl.socketConnect(Native Method)
>     at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
>     at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
>     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
>     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
>     at java.net.Socket.connect(Socket.java:525)
>     at java.net.Socket.connect(Socket.java:475)
>     at java.net.Socket.<init>(Socket.java:372)
>     at java.net.Socket.<init>(Socket.java:186)
>     at
> sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
>     at
> sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
>     at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595
>
> Any suggestions
> Thanks
> Anurag
>
> I am pasting below the structure of the code I am using,it is giving above
> error on when JMXConnectorFactory.connect is called.
>
> MXServiceURL url =
>             new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + host +
> "/jmxrmi");
>
>         System.out.println("before connection=host:"+host);
>         JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
>         System.out.println("After connection");
>         // Get an MBeanServerConnection
>         MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
>
>         // Construct the ObjectName for the QueueSampler MXBean
>         ObjectName mxbeanName =
>             new
> ObjectName("org.apache.cassandra.db:type=ColumnFamilyStores,keyspace="+keyspace+",columnfamily="+columnfamily);
>
>         // Create a dedicated proxy for the MXBean instead of
>         // going directly through the MBean server connection
>         ColumnFamilyStores mxbeanProxy =
>             JMX.newMXBeanProxy(mbsc, mxbeanName, ColumnFamilyStores.class);
>         mxbeanProxy.forceMajorCompaction();
>         jmxc.close();
>
>


-- 
Narendra Sharma
Solution Architect
*http://www.persistentsys.com*
*http://narendrasharma.blogspot.com/*

Reply via email to