Multiple Server instances

Jay Shaughnessy jshaughn at redhat.com
Fri Feb 5 15:46:03 UTC 2010


Not sure but it sounds like the discovery code is not setting the plugin 
connection property correctly.  A quick look suggests you may not be 
setting the plugin config properties.  Certainly different discovered 
(server) resources should have different plugin configuration values.  
Check via the GUI to see what values are being set by discovery.   If 
the values are not as you expect it is the discovery code setting values 
incorrectly.

  Also, for testing purposes you could edit the dx4database connection 
property (if it's not read only) and see if this gets the code working 
the way you expect.

On 2/5/2010 3:58 AM, Daniel Poggel wrote:
> Hello,
> i developed a plugin to select some data from an oracle database. In Jopr (now RHQ) I can create multiple Server - Instances. In the rhq-plugin.xml I definied a metric, which scheduled every 35 seconds.
>
> In my Server Component I have some variables, which set in the start() method like:
> dx4database = resourceContext.getPluginConfiguration().getSimple(CONFIG_DX4DB).getStringValue();
>
> The getValues() Method returns with a JDBC-SQL-SELECT the specific metric. In the SQL-Statement I used the variable, mentioned above.
> Now it seems that each server in JOPR didn't use his own properties, definied under Connection. The dx4database is defined as "private String dx4database" in the ServerComponentClass.
> Another Problem is: If i create a new Server in JOPR, the metric that I defined in the rhq-plugin.xml didn't show up under Schedules-Register.
> Please, can anyone help? How Can I create with the two JAVA-Class (ServerComponent and ServerDiscoverComponent) more than one instance with their own properties and their own attributes?
>
>
> Here are some code snippets:
> rhqplugin.xml:
> ......
>   <server name="Doxis4DatabaseMonitorServer"
>             class="Doxis4DatabaseMonitorComponent"
>             discovery="Doxis4DatabaseMonitorDiscoveryComponent"
>             description="Doxis 4 CSB Server"
>             supportsManualAdd="true">
>
>        <plugin-configuration>
>              <c:simple-property name="dbname" default="nr-vm-oracle" displayName="Database Name" description="Oracle-Database name" required="true"/>
>                <c:simple-property name="SID" default="ser" displayName="Database SID" description="The Database SID" required="true"/>
>                <c:simple-property name="port" default="1521" displayName="Port" description="The Database Access-Port" required="true"/>
>                 <c:simple-property name="username" default="UI_DOXIS4_UIT" displayName="Username" description="Database - Schema (User)" required="true"/>
>              <c:simple-property name="password" displayName="Password" description="Password" required="true"/>
>              <c:simple-property name="dx4database" displayName="Doxis4 Datenbank" description="Doxis4 Datenbank" required="true"/>
>        </plugin-configuration>
>
>        <metric property="archivdocuments" displayType="summary" displayName="Anzahl archiv. Dokumente"/>
>     </server>
> .........
> DiscoveryComponent:
>      public Set<DiscoveredResourceDetails>  discoverResources(ResourceDiscoveryContext context) {
>          Set<DiscoveredResourceDetails>  result = new HashSet<DiscoveredResourceDetails>();
>          ResourceType resourceType = context.getResourceType();
>          Configuration configuration = null;
>          List<Configuration>  configurations = context.getPluginConfigurations();
>          configuration=configurations.get(0);
>          String key = "Database Monitoring "+configuration.getSimpleValue("dx4database", null);
>          String name = key;
>          String version = "3.6";
>          String description = "Database Monitoring";
>          result.add(new DiscoveredResourceDetails(resourceType, key, name,
>                  version, description, configuration, null));
>
>          return result;
>      }
>
> ServerComponent:
> ..............
>      public void start(ResourceContext con)
>              throws InvalidPluginConfigurationException, Exception {
>          this.resourceContext = con;
>          this.contentContext = con.getContentContext();
>          database_host = resourceContext.getPluginConfiguration().getSimple(
>                  CONFIG_DATABASENAME).getStringValue();
>          database_user = resourceContext.getPluginConfiguration().getSimple(CONFIG_USER)
>                  .getStringValue();
>          database_password = resourceContext.getPluginConfiguration().getSimple(
>                  CONFIG_PASSWORD).getStringValue();
>          database_port = resourceContext.getPluginConfiguration().getSimple(CONFIG_PORT)
>                  .getStringValue();
>          database_sid = resourceContext.getPluginConfiguration().getSimple(CONFIG_SID)
>                  .getStringValue();
>          dx4database = resourceContext.getPluginConfiguration().getSimple(CONFIG_DX4DB)
>                  .getStringValue();
>
>          DataSource unpooled = DataSources.unpooledDataSource(
>                  "jdbc:oracle:thin:@"
>                          + database_host
>                          + ":"
>                          + database_port
>                          + ":"
>                          + database_sid, database_user,database_password);
>          pooled=DataSources.pooledDataSource(unpooled);
>      }
>
>      public void getValues(MeasurementReport report,
>              Set<MeasurementScheduleRequest>  metrics) throws Exception {
>
>          for (MeasurementScheduleRequest request : metrics) {
>               archdocuments=getArchiveSize();
>               System.out.println("RequestName:"+request.getName());
>              if (request.getName().equals("archivdocuments"))
>                  report.addData(new MeasurementDataNumeric(request, new Double(
>                          archdocuments)));
>          }
>      }
> .....................
> ___________________________________________________________
> NEU: Mit WEB.DE DSL über 1000,- ¿ sparen!
> http://produkte.web.de/go/02/
> _______________________________________________
> rhq-devel mailing list
> rhq-devel at lists.fedorahosted.org
> https://fedorahosted.org/mailman/listinfo/rhq-devel
>    


More information about the rhq-devel mailing list