Uploaded image for project: 'JGroups'
  1. JGroups
  2. JGRP-993

InstanceNotFoundException when destroying jchannel (TP.ProtocolAdapter not found in MBean server)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Minor Minor
    • 2.6.14
    • 2.6.9
    • None

      When using shared transport with org.jgroups.jmx.JChannel there occurs a javax.management.InstanceNotFoundException when destroying the cannel.
      It has no major impact as the exception is caught and not thrown outside of jgroups. Unfortunately the exception is logged as error where obviously is no error.

      See the testcase and exception:

      import java.io.ByteArrayInputStream;
      import org.w3c.dom.*;
      import javax.management.MBeanServer;
      import javax.management.MBeanServerFactory;
      import javax.xml.parsers.*;
      import junit.framework.TestCase;

      public class TestJGroups extends TestCase {
      /**

      • Tests the receiveLocalMessages feature on multiplex
      • channels.
      • <h2>Course of action</h2>
      • <ol>
      • <li>Creates tow physical channels</li>
      • <li>For each physical channel a mux channel is created</li>
      • <li>Receive Local messages is turned off on the mux channels</li>
      • <li>Local address has to be set manually after connecting the physical channels (This may be done automatically)</li>
      • <li>Message is sent from the first mux to the second mux channel</li>
      • </ol>
      • @throws Exception
        */
        public void testSharedTransport() throws Exception { MBeanServer mbeanserver = MBeanServerFactory.createMBeanServer("testserver"); org.jgroups.jmx.JChannel channel1 = new org.jgroups.jmx.JChannel(); channel1.setClusterConfig(getConfig("singletonA")); channel1.setObjectName("test:service=Channel"); channel1.create(); channel1.setClusterName("Cluster1"); channel1.start(); channel1.stop(); channel1.destroy(); MBeanServerFactory.releaseMBeanServer(mbeanserver); }

      private Element getConfig(String singletonName) throws Exception

      { String config = "<config> " + " <UDP mcast_recv_buf_size=\"80000\" mcast_send_buf_size=\"150000\" " + " mcast_port=\"32233\" mcast_addr=\"228.0.0.1\" " + " ip_ttl=\"32\" singleton_name=\"" + singletonName + "\"/> " + " <PING/> " + " <FD_SOCK/> " + " <VERIFY_SUSPECT timeout=\"15000\"/> " + " <pbcast.NAKACK gc_lag=\"50\" retransmit_timeout=\"300,600,1200,2400,48000\"/> " + " <UNICAST timeout=\"600,1200,2000,25000\"/> " + " <FRAG frag_size=\"8096\"/> " + " <pbcast.STABLE desired_avg_gossip=\"20000\" max_bytes=\"500000\"/> " + " <pbcast.GMS print_local_addr=\"true\" join_timeout=\"60000\" shun=\"true\" /> " + "</config> "; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document d = db.parse(new ByteArrayInputStream(config.getBytes())); return d.getDocumentElement(); }

      }

      2009-06-17 13:05:49,409 [main] ERROR - org.jgroups.jmx.JmxConfigurator - failed to unregister test:service=Channel,protocol=TP.ProtocolAdapter
      javax.management.InstanceNotFoundException: test:service=Channel,protocol=TP.ProtocolAdapter
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1010)
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:354)
      at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:527)
      at org.jgroups.jmx.JmxConfigurator.unregisterProtocols(JmxConfigurator.java:121)
      at org.jgroups.jmx.JChannel.destroy(JChannel.java:256)
      at com.j2fe.clustering.impl.TestJGroups.testSharedTransport(TestJGroups.java:41)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at junit.framework.TestCase.runTest(TestCase.java:154)
      at junit.framework.TestCase.runBare(TestCase.java:127)
      at junit.framework.TestResult$1.protect(TestResult.java:106)
      at junit.framework.TestResult.runProtected(TestResult.java:124)
      at junit.framework.TestResult.run(TestResult.java:109)
      at junit.framework.TestCase.run(TestCase.java:118)
      at junit.framework.TestSuite.runTest(TestSuite.java:208)
      at junit.framework.TestSuite.run(TestSuite.java:203)
      at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

            rhn-engineering-bban Bela Ban
            sanzinger Stefan Anzinger (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: