[jboss-user] [Messaging, JMS & JBossMQ] - Re: excess UIL2 threads
oglueck
do-not-reply at jboss.com
Fri Jun 29 11:11:29 EDT 2007
A big problem is this code in SocketManager
| // TODO: Check the validity of this config
| pool = new PooledExecutor(5);
| pool.setMinimumPoolSize(1);
| pool.setKeepAliveTime(1000 * 60);
| pool.runWhenBlocked();
| String id = "SocketManager.MsgPool@"+
| Integer.toHexString(System.identityHashCode(this))
| + " client=" + ipAddress;
| pool.setThreadFactory(new UILThreadFactory(id));
|
This causes a thread-death every minute per connection and side. On our system we see around 5000 new threads every hour just because of that! And we can not change it, because it's hardcoded. This pool config makes the use of a thread pool absurd in terms of resource consumption.
Actually having this extra pool is a bit of an overkill in the first place, I think. It should be enough to have the Read task execute the message synchronously in general. On the server side this is an inject into a queue I guess, which is fast. On the client side this is passing the message to an MDB thread (or is it just passed to an instance? - I haven't checked), which is fast as well.
If this pooled is created, it should be fully configurable.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4059223#4059223
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4059223
More information about the jboss-user
mailing list