geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amit Puri (JIRA)" <>
Subject [jira] Created: (GERONIMO-5355) ClassCastException while starting snapshot (Stat Query) in G 215 Monitoring portlet through java client
Date Mon, 31 May 2010 09:18:36 GMT
ClassCastException while starting snapshot (Stat Query) in G 215 Monitoring portlet through
java client

                 Key: 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>(
        at org.apache.geronimo.monitoring.snapshot.SnapshotProcessor.getMRC(
        at org.apache.geronimo.monitoring.snapshot.SnapshotProcessor.takeSnapshot(

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,*"),
for(Iterator<ObjectName> it = mbeanNames.iterator(); it.hasNext(); ) {
String mbeanName = ((ObjectName);
if(mbeanName.contains("agent-car-jmx") && mbeanName.contains("MasterRemoteControlJMX")
&& mbeanName.contains("GBean")) {
PATH = mbeanName;
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.

View raw message