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(a)lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/rhq-devel