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
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to