KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jacorb > orb > giop > MessageReceptorPool


1 /*
2  * JacORB - a free Java ORB
3  *
4  * Copyright (C) 1997-2004 Gerald Brose.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Library General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public
17  * License along with this library; if not, write to the Free
18  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19  */

20
21 package org.jacorb.orb.giop;
22
23 import org.apache.avalon.framework.logger.Logger;
24 import org.apache.avalon.framework.configuration.Configuration;
25
26 import org.jacorb.util.threadpool.*;
27
28 /**
29  * MessageReceptorPool.java
30  *
31  *
32  * Created: Sat Aug 18 10:40:25 2002
33  *
34  * @author Nicolas Noffke
35  * @version $Id: MessageReceptorPool.java,v 1.9 2005/02/09 09:50:10 andre.spiegel Exp $
36  */

37
38 public class MessageReceptorPool
39 {
40     private static final int MAX_DEFAULT = 1000;
41
42     private static MessageReceptorPool singleton = null;
43
44     private int maxConnectionThreads = 1000;
45     private ThreadPool pool = null;
46
47     private MessageReceptorPool(Configuration myConfiguration)
48     {
49         org.jacorb.config.Configuration configuration =
50             (org.jacorb.config.Configuration) myConfiguration;
51
52         int maxConnectionThreads = MAX_DEFAULT;
53
54         final String JavaDoc attribute = "jacorb.connection.max_threads";
55
56         maxConnectionThreads =
57             configuration.getAttributeAsInteger(attribute, MAX_DEFAULT);
58
59         Logger logger = configuration.getNamedLogger("jacorb.orb.giop");
60
61         if (logger.isDebugEnabled())
62         {
63             logger.debug("Maximum connection threads: " + maxConnectionThreads);
64         }
65
66         pool =
67             new ThreadPool( new ConsumerFactory(){
68                     public Consumer create()
69                     {
70                         return new MessageReceptor();
71                     }
72                 },
73                                maxConnectionThreads, //maximum number of connections
74
5 ); //max idle threads
75
}
76
77     public static synchronized MessageReceptorPool getInstance(Configuration myConfiguration)
78     {
79         if( singleton == null )
80         {
81             singleton = new MessageReceptorPool(myConfiguration);
82         }
83
84         return singleton;
85     }
86
87     public void connectionCreated( GIOPConnection conn )
88     {
89         pool.putJob( conn );
90     }
91 }// MessageReceptorPool
92
Popular Tags