You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/04/04 23:01:45 UTC
svn commit: r644919 - in
/openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server:
ServiceDaemon.java ServiceManager.java ServicePool.java
Author: dblevins
Date: Fri Apr 4 14:01:42 2008
New Revision: 644919
URL: http://svn.apache.org/viewvc?rev=644919&view=rev
Log:
Merging r644074 - http://svn.apache.org/viewvc?rev=644074&view=rev
svn merge -r 644073:644074 https://svn.apache.org/repos/asf/openejb/trunk/openejb3 .
------------------------------------------------------------------------
r644074 | dblevins | 2008-04-02 14:22:12 -0700 (Wed, 02 Apr 2008) | 3 lines
We weren't using the ServicePool (i.e. thread pool) in wrapped services.
Added a backlog configurable parameter
------------------------------------------------------------------------
Modified:
openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java
openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java
Modified: openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java?rev=644919&r1=644918&r2=644919&view=diff
==============================================================================
--- openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java (original)
+++ openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java Fri Apr 4 14:01:42 2008
@@ -34,6 +34,7 @@
ServerSocket serverSocket;
boolean stop = true;
+ private int backlog;
public ServiceDaemon(ServerService next) {
this.next = next;
@@ -45,14 +46,27 @@
this.next = next;
}
+ public static int getInt(Properties p, String property, int defaultValue){
+ String value = p.getProperty(property);
+ try {
+ if (value != null) return Integer.parseInt(value);
+ else return defaultValue;
+ } catch (NumberFormatException e) {
+ return defaultValue;
+ }
+ }
+
public void init(Properties props) throws Exception {
this.props = props;
- String p = props.getProperty("port");
ip = props.getProperty("bind");
- port = Integer.parseInt(p);
+ port = getInt(props, "port", 0);
+
+ int threads = getInt(props, "threads", 100);
+
+ backlog = getInt(props, "backlog", threads);
next.init(props);
}
@@ -67,7 +81,7 @@
try {
InetAddress address = InetAddress.getByName(ip);
- serverSocket = new ServerSocket(port, 20, address);
+ serverSocket = new ServerSocket(port, backlog, address);
// serverSocket = new ServerSocket(port, 20);
port = serverSocket.getLocalPort();
ip = serverSocket.getInetAddress().getHostAddress();
Modified: openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java?rev=644919&r1=644918&r2=644919&view=diff
==============================================================================
--- openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java (original)
+++ openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java Fri Apr 4 14:01:42 2008
@@ -194,6 +194,7 @@
service = (ServerService) recipe.create(serviceClass.getClassLoader());
if (!(service instanceof SelfManaging)) {
+ service = new ServicePool(service, serviceName, serviceProperties);
service = new ServiceLogger(service);
service = new ServiceAccessController(service);
service = new ServiceDaemon(service);
Modified: openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java?rev=644919&r1=644918&r2=644919&view=diff
==============================================================================
--- openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java (original)
+++ openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java Fri Apr 4 14:01:42 2008
@@ -16,6 +16,8 @@
*/
package org.apache.openejb.server;
+import static org.apache.openejb.server.ServiceDaemon.getInt;
+
import java.util.concurrent.Executor;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
@@ -37,8 +39,12 @@
private final ServerService next;
private final Executor executor;
- public ServicePool(ServerService next, final String name, final int threads, final long keepAliveTime) {
+ public ServicePool(ServerService next, final String name, Properties properties) {
this.next = next;
+
+ final int threads = getInt(properties, "threads", 100);
+
+ final int keepAliveTime = (1000 * 60 * 5);
ThreadPoolExecutor p = new ThreadPoolExecutor(threads, threads, keepAliveTime, TimeUnit.MILLISECONDS, new LinkedBlockingQueue());
p.setThreadFactory(new ThreadFactory() {