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.

Reply via email to