Skip to content

Commit

Permalink
Fixed StoreOpener calls
Browse files Browse the repository at this point in the history
  • Loading branch information
fbacchella committed Nov 15, 2011
1 parent 9fb7152 commit aa77a53
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 142 deletions.
6 changes: 3 additions & 3 deletions junit/jrds/TestStoreOpener.java
Expand Up @@ -28,9 +28,9 @@ public void test2() {

@Test
public void test3() {
StoreOpener.prepare(1, 1, 1, "NIO");
StoreOpener.prepare(1, 1, 1, "FILE");
StoreOpener.prepare(1, 1, 1, "MEMORY");
StoreOpener.prepare("NIO", 1 );
StoreOpener.prepare("FILE", 1 );
StoreOpener.prepare("MEMORY", 1);
}

}
6 changes: 3 additions & 3 deletions src/jrds/StoreOpener.java
Expand Up @@ -21,7 +21,7 @@ public final class StoreOpener {

private static final AtomicLong waitTime = new AtomicLong(0);
private static final AtomicInteger lockCount = new AtomicInteger(0);
private static RrdBackendFactory backend = RrdBackendFactory.getDefaultFactory();
private static RrdBackendFactory backend;
private static boolean usepool = false;

/**
Expand Down Expand Up @@ -79,12 +79,12 @@ public static final void prepare(String backend) {
logger.debug(Util.delayedFormatString("Store backend used is %s", StoreOpener.backend.getName()));
}

public static final void prepare(int dbPoolSize, int syncPeriod, int timeout, String backend) {
public static final void prepare(String backend, int dbPoolSize) {
usepool = false;
if(backend != null) {
try {
RrdBackendFactory.setDefaultFactory(backend);
logger.trace(Util.delayedFormatString("Store backend set to %s", backend));
logger.debug(Util.delayedFormatString("Store backend set to %s", backend));
} catch (IllegalStateException e) {
logger.warn("Trying to change default backend, a restart is needed");
}
Expand Down
44 changes: 22 additions & 22 deletions src/jrds/standalone/Collector.java
Expand Up @@ -23,36 +23,36 @@
* Window - Preferences - Java - Code Style - Code Templates
*/
public class Collector extends CommandStarterImpl {
static final private Logger logger = Logger.getLogger(Collector.class);
static final private Logger logger = Logger.getLogger(Collector.class);

String propFile = "jrds.properties";
String propFile = "jrds.properties";

public void configure(Properties configuration) {
logger.debug("Configuration: " + configuration);

propFile = configuration.getProperty("propertiesFile", propFile);
}
public void configure(Properties configuration) {
logger.debug("Configuration: " + configuration);

public void start(String[] args) throws Exception {
propFile = configuration.getProperty("propertiesFile", propFile);
}

PropertiesManager pm = new PropertiesManager(new File(propFile));
jrds.JrdsLoggerConfiguration.configure(pm);
public void start(String[] args) throws Exception {

System.getProperties().setProperty("java.awt.headless","true");
System.getProperties().putAll(pm);
StoreOpener.prepare(pm.dbPoolSize, pm.syncPeriod, pm.timeout, pm.rrdbackend);
PropertiesManager pm = new PropertiesManager(new File(propFile));
jrds.JrdsLoggerConfiguration.configure(pm);

HostsList hl = new HostsList(pm);
System.getProperties().setProperty("java.awt.headless","true");
System.getProperties().putAll(pm);
StoreOpener.prepare(pm.rrdbackend, pm.dbPoolSize );

logger.debug("Scanning dir");
HostsList hl = new HostsList(pm);

for(int i = 0; i< 1 ; i++) {
hl.collectAll();
System.gc();
//Thread.sleep(10 * 1000L);
}
StoreOpener.stop();
}
logger.debug("Scanning dir");

for(int i = 0; i< 1 ; i++) {
hl.collectAll();
System.gc();
//Thread.sleep(10 * 1000L);
}
StoreOpener.stop();
}

}

82 changes: 41 additions & 41 deletions src/jrds/standalone/Grapher.java
Expand Up @@ -29,50 +29,50 @@
* Window - Preferences - Java - Code Style - Code Templates
*/
public class Grapher {
static final private Logger logger = Logger.getLogger(Grapher.class);
static final private Logger logger = Logger.getLogger(Grapher.class);

public static void main(String[] args) throws Exception {
jrds.JrdsLoggerConfiguration.initLog4J();
public static void main(String[] args) throws Exception {
jrds.JrdsLoggerConfiguration.initLog4J();

String propFile = "jrds.properties";
if(args.length == 1)
propFile = args[0];
PropertiesManager pm = new PropertiesManager(new File(propFile));
jrds.JrdsLoggerConfiguration.configure(pm);
String propFile = "jrds.properties";
if(args.length == 1)
propFile = args[0];
PropertiesManager pm = new PropertiesManager(new File(propFile));
jrds.JrdsLoggerConfiguration.configure(pm);

System.getProperties().setProperty("java.awt.headless","true");
System.getProperties().putAll(pm);
StoreOpener.prepare(pm.dbPoolSize, pm.syncPeriod, pm.timeout, pm.rrdbackend);
System.getProperties().setProperty("java.awt.headless","true");
System.getProperties().putAll(pm);
StoreOpener.prepare(pm.rrdbackend, pm.dbPoolSize);

HostsList hl = new HostsList(pm);
HostsList hl = new HostsList(pm);

Period p = new Period();
Renderer r= new Renderer(10, pm.step, pm.tmpdir);
Collection<Integer> done = new HashSet<Integer>();
logger.debug(hl.getTrees());
for(GraphTree graphTree: hl.getTrees()) {
logger.trace("Tree found: " + graphTree.getName());
for(GraphNode gn: graphTree.enumerateChildsGraph(null)) {
if(! done.contains(gn.hashCode())) {
done.add(gn.hashCode());
logger.debug("New graph: " + gn.getGraphTitle());
Graph g = gn.getGraph();
g.setPeriod(p);
logger.debug("Found graph for probe " + gn.getProbe());
try {
r.render(g);
} catch (Exception e) {
logger.error("Error " + e + " with " + gn.getGraphTitle());
}
}
}
}
for(jrds.Renderer.RendererRun rr: r.getWaitings()) {
logger.debug("Rendering " + rr.graph.getQualifieName());
rr.write();
rr.clean();
}
r.finish();
StoreOpener.stop();
}
Period p = new Period();
Renderer r= new Renderer(10, pm.step, pm.tmpdir);
Collection<Integer> done = new HashSet<Integer>();
logger.debug(hl.getTrees());
for(GraphTree graphTree: hl.getTrees()) {
logger.trace("Tree found: " + graphTree.getName());
for(GraphNode gn: graphTree.enumerateChildsGraph(null)) {
if(! done.contains(gn.hashCode())) {
done.add(gn.hashCode());
logger.debug("New graph: " + gn.getGraphTitle());
Graph g = gn.getGraph();
g.setPeriod(p);
logger.debug("Found graph for probe " + gn.getProbe());
try {
r.render(g);
} catch (Exception e) {
logger.error("Error " + e + " with " + gn.getGraphTitle());
}
}
}
}
for(jrds.Renderer.RendererRun rr: r.getWaitings()) {
logger.debug("Rendering " + rr.graph.getQualifieName());
rr.write();
rr.clean();
}
r.finish();
StoreOpener.stop();
}
}
143 changes: 71 additions & 72 deletions src/jrds/standalone/Updater.java
Expand Up @@ -18,78 +18,77 @@
import org.rrd4j.core.RrdDef;

public class Updater {
static final private Logger logger = Logger.getLogger(Updater.class);

public static void main(String[] args) throws IOException {
jrds.JrdsLoggerConfiguration.initLog4J();

PropertiesManager pm = new PropertiesManager(new File("jrds.properties"));
//jrds.log.JrdsLoggerFactory.setOutputFile(pm.logfile);

System.getProperties().setProperty("java.awt.headless","true");
System.getProperties().putAll(pm);
StoreOpener.prepare(pm.dbPoolSize, pm.syncPeriod, pm.timeout, pm.rrdbackend);

HostsList hl = new HostsList(pm);

ExecutorService tpool = Executors.newFixedThreadPool(3);

for(RdsHost host: hl.getHosts()) {
for(final Probe<?,?> p: host.getProbes()) {
final Runnable runUpgrade = new Runnable() {
private Probe<?,?> lp = p;

public void run() {
try {
RrdDef rrdDef = lp.getRrdDef();
File source = new File(lp.getRrdName());
File dest = File.createTempFile("JRDS_", ".tmp", source.getParentFile());
logger.debug("updating " + source + " to " + dest);
RrdDb rrdSource = StoreOpener.getRrd(source.getCanonicalPath());
rrdDef.setPath(dest.getCanonicalPath());
RrdDb rrdDest = new RrdDb(rrdDef);
rrdSource.copyStateTo(rrdDest);
rrdDest.close();
StoreOpener.releaseRrd(rrdSource);
logger.debug("Size difference : " + (dest.length() - source.length()));
copyFile(dest.getCanonicalPath(), source.getCanonicalPath());
} catch (IOException e) {
e.printStackTrace();
}
}
};
try {
tpool.execute(runUpgrade);
}
catch(RejectedExecutionException ex) {
logger.debug("collector thread dropped for probe " + p.getName());
}


}
}
tpool.shutdown();
try {
tpool.awaitTermination(Integer.MAX_VALUE, TimeUnit.SECONDS);
} catch (InterruptedException e) {
logger.info("Collect interrupted");
}
StoreOpener.stop();
}
private static void copyFile(String sourcePath, String destPath)
throws IOException {
File source = new File(sourcePath);
File dest = new File(destPath);
deleteFile(dest);
if (!source.renameTo(dest)) {
throw new IOException("Could not create file " + destPath + " from " + sourcePath);
}
}
private static void deleteFile(File file) throws IOException {
if (file.exists() && !file.delete()) {
throw new IOException("Could not delete file: " + file.getCanonicalPath());
}
}
static final private Logger logger = Logger.getLogger(Updater.class);

public static void main(String[] args) throws IOException {
jrds.JrdsLoggerConfiguration.initLog4J();

PropertiesManager pm = new PropertiesManager(new File("jrds.properties"));

System.getProperties().setProperty("java.awt.headless","true");
System.getProperties().putAll(pm);
StoreOpener.prepare(pm.rrdbackend, pm.dbPoolSize);

HostsList hl = new HostsList(pm);

ExecutorService tpool = Executors.newFixedThreadPool(3);

for(RdsHost host: hl.getHosts()) {
for(final Probe<?,?> p: host.getProbes()) {
final Runnable runUpgrade = new Runnable() {
private Probe<?,?> lp = p;

public void run() {
try {
RrdDef rrdDef = lp.getRrdDef();
File source = new File(lp.getRrdName());
File dest = File.createTempFile("JRDS_", ".tmp", source.getParentFile());
logger.debug("updating " + source + " to " + dest);
RrdDb rrdSource = StoreOpener.getRrd(source.getCanonicalPath());
rrdDef.setPath(dest.getCanonicalPath());
RrdDb rrdDest = new RrdDb(rrdDef);
rrdSource.copyStateTo(rrdDest);
rrdDest.close();
StoreOpener.releaseRrd(rrdSource);
logger.debug("Size difference : " + (dest.length() - source.length()));
copyFile(dest.getCanonicalPath(), source.getCanonicalPath());
} catch (IOException e) {
e.printStackTrace();
}
}
};
try {
tpool.execute(runUpgrade);
}
catch(RejectedExecutionException ex) {
logger.debug("collector thread dropped for probe " + p.getName());
}


}
}
tpool.shutdown();
try {
tpool.awaitTermination(Integer.MAX_VALUE, TimeUnit.SECONDS);
} catch (InterruptedException e) {
logger.info("Collect interrupted");
}
StoreOpener.stop();
}
private static void copyFile(String sourcePath, String destPath)
throws IOException {
File source = new File(sourcePath);
File dest = new File(destPath);
deleteFile(dest);
if (!source.renameTo(dest)) {
throw new IOException("Could not create file " + destPath + " from " + sourcePath);
}
}
private static void deleteFile(File file) throws IOException {
if (file.exists() && !file.delete()) {
throw new IOException("Could not delete file: " + file.getCanonicalPath());
}
}



Expand Down
2 changes: 1 addition & 1 deletion src/jrds/webapp/Configuration.java
Expand Up @@ -65,7 +65,7 @@ private void finishConfig() {
propertiesManager.importSystemProps();
propertiesManager.update();

StoreOpener.prepare(propertiesManager.dbPoolSize, propertiesManager.syncPeriod, propertiesManager.timeout, propertiesManager.rrdbackend);
StoreOpener.prepare(propertiesManager.rrdbackend, propertiesManager.dbPoolSize);

hostsList = new HostsList(propertiesManager);
}
Expand Down

0 comments on commit aa77a53

Please sign in to comment.