created separate init() and start() methods,

wrote lots of thread state getters to make this
accessible from other packages.
This commit is contained in:
hns 2001-08-30 12:03:28 +00:00
parent 9734e347a9
commit ddb7ec49a4

View file

@ -161,9 +161,9 @@ public class Application extends UnicastRemoteObject implements IRemoteApp, IRep
}
/**
* Finish initializing the application and start requestors and type manager.
* Finish initializing the application
*/
public void start () throws DbException {
public void init () throws DbException {
eval = new RequestEvaluator (this);
logEvent ("Starting evaluators for "+name);
@ -197,11 +197,6 @@ public class Application extends UnicastRemoteObject implements IRemoteApp, IRep
nmgr = new NodeManager (this, dbDir.getAbsolutePath (), props);
// worker = new Thread (this, "Worker-"+name);
// worker.setPriority (Thread.NORM_PRIORITY+2);
// worker.start ();
// logEvent ("session cleanup and scheduler thread started");
String xmlrpcHandlerName = props.getProperty ("xmlrpcHandlerName", this.name);
if (xmlrpc != null)
xmlrpc.addHandler (xmlrpcHandlerName, new XmlRpcInvoker (this));
@ -209,6 +204,15 @@ public class Application extends UnicastRemoteObject implements IRemoteApp, IRep
// typemgr.start ();
}
/**
* Create request evaluators and start scheduler and cleanup thread
*/
public void start () {
worker = new Thread (this, "Worker-"+name);
worker.setPriority (Thread.NORM_PRIORITY+2);
worker.start ();
// logEvent ("session cleanup and scheduler thread started");
}
/**
* This is called to shut down a running application.
@ -307,7 +311,8 @@ public class Application extends UnicastRemoteObject implements IRemoteApp, IRep
public ResponseTrans execute (RequestTrans req) {
requestCount += 1;
// long reqstart = System.currentTimeMillis ();
// get user for this request's session
User u = getUser (req.session);
ResponseTrans res = null;
@ -350,7 +355,7 @@ public class Application extends UnicastRemoteObject implements IRemoteApp, IRep
res.waitForClose ();
}
}
// System.err.println ("********************** ABSOLUTE TIME: "+(System.currentTimeMillis() - reqstart));
return res;
}
@ -437,6 +442,13 @@ public class Application extends UnicastRemoteObject implements IRemoteApp, IRep
return typemgr.getPrototype (protoname);
}
/**
* Return a collection containing all prototypes defined for this application
*/
public Collection getPrototypes () {
return typemgr.prototypes.values ();
}
/**
* Return the user currently associated with a given Hop session ID. This may be
@ -837,6 +849,62 @@ public class Application extends UnicastRemoteObject implements IRemoteApp, IRep
return props.getProperty (propname, defvalue);
}
/**
*
*/
public int countThreads () {
return threadgroup.activeCount() -1;
}
/**
*
*/
public int countEvaluators () {
return allThreads.size()-1 ;
}
/**
*
*/
public int countFreeEvaluators () {
return freeThreads.size ();
}
/**
*
*/
public int countActiveEvaluators () {
return allThreads.size() - freeThreads.size () -1;
}
/**
*
*/
public int countMaxActiveEvaluators () {
return typemgr.countRegisteredRequestEvaluators () -1;
}
/**
*
*/
public long getRequestCount () {
return requestCount;
}
/**
*
*/
public long getXmlrpcCount () {
return xmlrpcCount;
}
/**
*
*/
public long getErrorCount () {
return errorCount;
}
/**
* Periodically called to log thread stats for this application
*/