Skip to content

Commit

Permalink
Fix the compile error
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Apr 11, 2008
1 parent ff40446 commit 001dbc5
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 62 deletions.
Expand Up @@ -208,7 +208,8 @@ private void recordStatistics(List<IncomingBatchHistory> list) {
if (list != null) {
statisticManager.getStatistic(StatisticName.INCOMING_BATCH_COUNT).add(list.size());
for (IncomingBatchHistory incomingBatchHistory : list) {
statisticManager.getStatistic(StatisticName.INCOMING_ROW_COUNT).add(incomingBatchHistory.getStatementCount());
statisticManager.getStatistic(StatisticName.INCOMING_ROW_COUNT).add(incomingBatchHistory.getStatementCount());
statisticManager.getStatistic(StatisticName.INCOMING_MS_PER_ROW).add(incomingBatchHistory.getDatabaseMillis(), incomingBatchHistory.getStatementCount());
}
}
}
Expand Down
Expand Up @@ -22,18 +22,22 @@
import java.math.BigDecimal;

import org.jumpmind.symmetric.statistic.IStatisticManager;
import org.jumpmind.symmetric.statistic.StatisticName;
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.jmx.export.annotation.ManagedResource;

@ManagedResource(description = "The management interface for incoming synchronization")
public class IncomingManagementService {

IStatisticManager statisticManager;

public void setStatisticManager(IStatisticManager statisticManager) {
this.statisticManager = statisticManager;
}

@ManagedAttribute(description = "Get the number of milliseconds the system is currently taking to commit a data row coming in from another node")
public BigDecimal getDatabaseMsPerRow() {

return this.statisticManager.getStatistic(StatisticName.INCOMING_MS_PER_ROW).getAverageValue();
}

}
Expand Up @@ -77,17 +77,17 @@ public void add(long v) {
add(v,1);
}

public void add(long v, int count) {
public void add(long v, long count) {
this.total = this.total.add(new BigDecimal(v));
this.count += this.count;
}

public void add(int v, int count) {
public void add(int v, long count) {
this.total = this.total.add(new BigDecimal(v));
this.count += this.count;
}

public void add(BigDecimal v, int count) {
public void add(BigDecimal v, long count) {
this.total = this.total.add(v);
this.count += this.count;
}
Expand Down
Expand Up @@ -57,20 +57,22 @@ synchronized protected void refresh(Date lastCaptureEndTime) {
statistics.clear();

Node node = nodeService.findIdentity();

String nodeId = "Unknown";
if (node != null) {
String nodeId = node.getNodeId();
StatisticName[] all = StatisticName.values();
for (StatisticName statisticName : all) {
statistics.put(statisticName, new Statistic(statisticName, nodeId,
lastCaptureEndTime == null ? new Date() : lastCaptureEndTime));
}
nodeId = node.getNodeId();
}

StatisticName[] all = StatisticName.values();
for (StatisticName statisticName : all) {
statistics.put(statisticName, new Statistic(statisticName, nodeId,
lastCaptureEndTime == null ? new Date() : lastCaptureEndTime));
}

}

public Statistic getStatistic(StatisticName name) {
public Statistic getStatistic(StatisticName statisticName) {
this.init();
return statistics.get(name);
return statistics.get(statisticName);
}

public void setNodeService(INodeService nodeService) {
Expand Down
Expand Up @@ -23,7 +23,7 @@ public enum StatisticName {

INCOMING_NETWORK_ERRORS,
INCOMING_DATABASE_ERRORS,
INCOMING_ROWS_PER_MS,
INCOMING_MS_PER_ROW,
INCOMING_BATCH_COUNT,
INCOMING_ROW_COUNT,

Expand Down
2 changes: 1 addition & 1 deletion symmetric/src/main/resources/symmetric-default.properties
Expand Up @@ -138,7 +138,7 @@ symmetric.runtime.job.pull.period.time.ms=60000
# This is how often the purge job will be run.
symmetric.runtime.job.purge.period.time.ms=600000

# This is how often statistics will be flushed out to the database
# This is how often accumulated statistics will be flushed out to the database from memory
symmetric.runtime.job.stat.flush.period.time.ms=600000

# This is the number of data events that will be purged in one database transaction
Expand Down
102 changes: 57 additions & 45 deletions symmetric/src/main/resources/symmetric-jmx.xml
@@ -1,55 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="assembler" ref="assembler" />
<property name="namingStrategy" ref="namingStrategy" />
<property name="autodetect" value="true" />
<property name="registrationBehaviorName" value="REGISTRATION_IGNORE_EXISTING" />
</bean>
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="assembler" ref="assembler" />
<property name="namingStrategy" ref="namingStrategy" />
<property name="autodetect" value="true" />
<property name="registrationBehaviorName" value="REGISTRATION_IGNORE_EXISTING" />
</bean>

<bean id="jmxAttributeSource"
class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource" />
<bean id="jmxAttributeSource"
class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource" />

<!-- will create management interface using annotation metadata -->
<bean id="assembler"
class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
<property name="attributeSource" ref="jmxAttributeSource" />
</bean>
<!-- will create management interface using annotation metadata -->
<bean id="assembler"
class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
<property name="attributeSource" ref="jmxAttributeSource" />
</bean>

<bean id="namingStrategy" class="org.springframework.jmx.export.naming.KeyNamingStrategy">
<property name="mappings">
<props>
<prop key="managementService">Symmetric:name=${symmetric.runtime.engine.name}</prop>
<prop key="incomingManagementService">org.jumpmind.symmetric.${symmetric.runtime.engine.name}:name=Incoming</prop>
<prop key="outgoingManagementService">org.jumpmind.symmetric.${symmetric.runtime.engine.name}:name=Outgoing</prop>
<prop key="nodeManagementService">org.jumpmind.symmetric.${symmetric.runtime.engine.name}:name=Node</prop>
</props>
</property>
<property name="mappingLocations">
<value>classpath:symmetric-jmx-names.properties</value>
</property>
</bean>
<bean id="namingStrategy" class="org.springframework.jmx.export.naming.KeyNamingStrategy">
<property name="mappings">
<props>
<prop key="managementService">Symmetric:name=${symmetric.runtime.engine.name}</prop>
<prop key="incomingManagementService">
org.jumpmind.symmetric.${symmetric.runtime.engine.name}:name=Incoming
</prop>
<prop key="outgoingManagementService">
org.jumpmind.symmetric.${symmetric.runtime.engine.name}:name=Outgoing
</prop>
<prop key="nodeManagementService">
org.jumpmind.symmetric.${symmetric.runtime.engine.name}:name=Node
</prop>
</props>
</property>
<property name="mappingLocations">
<value>classpath:symmetric-jmx-names.properties</value>
</property>
</bean>

<bean id="managementService"
class="org.jumpmind.symmetric.service.jmx.SymmetricManagementService">
<property name="runtimeConfiguration" ref="runtimeConfiguration" />
<property name="bootstrapService" ref="bootstrapService" />
<property name="purgeService" ref="purgeService" />
<property name="dataService" ref="dataService" />
<property name="clusterService" ref="clusterService" />
<property name="registrationService" ref="registrationService" />
<property name="properties" ref="properties" />
<property name="dataSource" ref="dataSource" />
<property name="outgoingBatchService" ref="outgoingBatchService" />
<property name="nodeService" ref="nodeService" />
<property name="dataExtractorService" ref="dataExtractorService" />
</bean>
<bean id="managementService"
class="org.jumpmind.symmetric.service.jmx.SymmetricManagementService">
<property name="runtimeConfiguration" ref="runtimeConfiguration" />
<property name="bootstrapService" ref="bootstrapService" />
<property name="purgeService" ref="purgeService" />
<property name="dataService" ref="dataService" />
<property name="clusterService" ref="clusterService" />
<property name="registrationService" ref="registrationService" />
<property name="properties" ref="properties" />
<property name="dataSource" ref="dataSource" />
<property name="outgoingBatchService" ref="outgoingBatchService" />
<property name="nodeService" ref="nodeService" />
<property name="dataExtractorService" ref="dataExtractorService" />
</bean>

<bean id="incomingManagementService"
class="org.jumpmind.symmetric.service.jmx.IncomingManagementService">
<property name="statisticManager" ref="statisticManager" />
</bean>

<bean id="outgoingManagementService"
class="org.jumpmind.symmetric.service.jmx.OutgoingManagementService" />

<bean id="incomingManagementService" class="org.jumpmind.symmetric.service.jmx.IncomingManagementService"/>
<bean id="outgoingManagementService" class="org.jumpmind.symmetric.service.jmx.OutgoingManagementService"/>
<bean id="nodeManagementService" class="org.jumpmind.symmetric.service.jmx.NodeManagementService"/>
<bean id="nodeManagementService" class="org.jumpmind.symmetric.service.jmx.NodeManagementService" />

</beans>

0 comments on commit 001dbc5

Please sign in to comment.