ClassCastException while starting snapshot (Stat Query) in G 215 Monitoring portlet through java client -------------------------------------------------------------------------------------------------------
Key: GERONIMO-5355 URL: https://issues.apache.org/jira/browse/GERONIMO-5355 Project: Geronimo Issue Type: Bug Security Level: public (Regular issues) Components: monitoring Affects Versions: 2.1.5 Reporter: Amit Puri In a java client where MBeanServerConnection is created and invoke startSnapshot method in Monitoring Portlet of G 215, Stat Query snapshot started but we can also find ClassCastException. ... ERROR [MasterRemoteControlJMX] org.tranql.connector.jdbc.TranqlDataSource$SelfReference incompatible with javax.sql.DataSource java.lang.ClassCastException: org.tranql.connector.jdbc.TranqlDataSource$SelfReference incompatible with javax.sql.DataSource at org.apache.geronimo.monitoring.MasterRemoteControlJMX.<init>(MasterRemoteControlJMX.java:110) at org.apache.geronimo.monitoring.snapshot.SnapshotProcessor.getMRC(SnapshotProcessor.java:148) at org.apache.geronimo.monitoring.snapshot.SnapshotProcessor.takeSnapshot(SnapshotProcessor.java:59) at org.apache.geronimo.monitoring.snapshot.SnapshotThread.run(SnapshotThread.java:103) ... In G 214, this exception does not come while using same java client. These steps are followed in java client: 1.Creating MBeanServerConnection object ... MBeanServerConnection mbServerConn; JMXServiceURL serviceURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost/JMXConnector"); Hashtable<String, Object> env = new Hashtable<String, Object>(); String[] credentials = new String[2]; credentials[0] = "system"; credentials[1] = "manager"; env.put(JMXConnector.CREDENTIALS, credentials); JMXConnector connector = JMXConnectorFactory.connect(serviceURL, env); mbServerConn = connector.getMBeanServerConnection(); .. 2. Retrieving the mbean name to the agent-car-jmx plugin .. if(PATH == null) { Set<ObjectName> mbeanNames = mbServerConn.queryNames(new ObjectName("*:name=MasterRemoteControlJMX,*"), null); for(Iterator<ObjectName> it = mbeanNames.iterator(); it.hasNext(); ) { String mbeanName = ((ObjectName)it.next()).getCanonicalName(); if(mbeanName.contains("agent-car-jmx") && mbeanName.contains("MasterRemoteControlJMX") && mbeanName.contains("GBean")) { PATH = mbeanName; break; }} if(PATH == null) { throw new Exception("[ERROR] Required mbean not found: agent-car-jmx"); }} .. Here I am getting mbean name as "geronimo:J2EEServer=geronimo,ServiceModule=org.apache.geronimo.plugins.monitoring/agent-car-jmx/2.1.5/car,j2eeType=GBean,name=MasterRemoteControlJMX" 3. Invoking startSnapshot .. long time = 300000; int days = 2; mbServerConn.invoke(new ObjectName(PATH),"startSnapshot", new Object[] { time, days }, new String[] { "java.lang.Long", "java.lang.Integer" }); .. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.