Archived
This forum has been archived. Please start a new discussion on GitHub.
Connection Monitor
Hello,
I would like your help in understanding nature of certain condition that I am facing.
Preface :
I have created a couple of java services within IceBox and have assigned individual ThreadPools to them.
eg
Dilemna :
When I connect to the IceBox service via jconsole I see multiple Ice.ConnectionMonitor and Ice.ThreadPool.Client threads.
The client calls I make are not too many. Also, after making the service calls I close the communicator.
The threads do not seem to ever die but are increasing every so often.
I have disabled the generic threadpool then why are the threads appearing. Also, I see multiple connection monitor threads. Shouldn't there be only one connection monitor thread? And, shouldn't the idle threads die?
I am using Ice3.1
I would appreciate your input in this matter.
I would like your help in understanding nature of certain condition that I am facing.
Preface :
I have created a couple of java services within IceBox and have assigned individual ThreadPools to them.
eg
### # # NBasuService1 # ### IceBox.Service.NBasuService1=com.nb.serviceImpl.NBasuService1 NBasuService1.Endpoints=tcp -p 10010 NBasuService1.ThreadPool.Size=3 NBasuService1.ThreadPool.SizeMax=5 IceBox.UseSharedCommunicator.NBasuService1=1 ### # # NBasuService2 # ### IceBox.Service.NBasuService2=com.nb.serviceimpl.NBasuService2 NBasuService2.Endpoints=tcp -p 10011 NBasuService2.ThreadPool.Size=3 NBasuService2.ThreadPool.SizeMax=5 IceBox.UseSharedCommunicator.NBasuService2=1 #IceBox.ServiceManager.ThreadPool.Size=50 #IceBox.ServiceManager.ThreadPool.SizeMax=35 #IceBox.ServiceManager.ThreadPool.SizeMax=20 ### # Ice properties ### Ice.MessageSizeMax=4096 #Ice.ThreadPool.Server.Size=10 #Ice.ThreadPool.Server.SizeMax=50 #Ice.ThreadPool.Server.SizeWarn=5 #Ice.ThreadPool.Client.Size=20 #Ice.ThreadPool.Client.SizeMax=30 #Ice.ThreadPool.Client.SizeWarn=5 Ice.Default.CollocationOptimization=1 Ice.Warn.Connections=0 Ice.Warn.Dispatch=0 Ice.Trace.Network=0 Ice.Trace.Protocol=0 Ice.ACM.Client=60 Ice.MonitorConnections=120 ## Ice.StdOut=icebox.out Ice.StdErr=icebox.err Ice.Nohup=1 Ice.Logger.Timestamp=1 Ice.Override.Timeout=-1 Ice.Override.ConnectTimeout=-1I have a couple of java clients and one c++ client which use the following properties to create the communicator
Ice.Warn.Connections=1 Ice.Trace.Network=0 Ice.Trace.Protocol=0 Ice.ACM.Client=60 Ice.RetryIntervals=0 1000 5000 Ice.Override.Timeout=-1 Ice.Override.ConnectTimeout=30000 Ice.StdErr=ice.err
Dilemna :
When I connect to the IceBox service via jconsole I see multiple Ice.ConnectionMonitor and Ice.ThreadPool.Client threads.
The client calls I make are not too many. Also, after making the service calls I close the communicator.
The threads do not seem to ever die but are increasing every so often.
I have disabled the generic threadpool then why are the threads appearing. Also, I see multiple connection monitor threads. Shouldn't there be only one connection monitor thread? And, shouldn't the idle threads die?
I am using Ice3.1
I would appreciate your input in this matter.
0
Comments
-
Please note that you should upgrade to Ice 3.2. We don't provide free support for older versions of Ice. Note that once you upgrade to Ice 3.2 you should also either have separate configurations for each icebox service, or define IceBox.InheritProperties=1 in the IceBox configuration.
With this setup you described above you'd have only a single communicator which should have a single connection monitor. Each of the adapters should have its own thread pool, as configured, plus you'd have one more for the IceBox service adapter.
I'd be interested in seeing a list of the things that you think should not be there. A JVM dump would be a good start0 -
Thanks for getting back to me and apologize for the delay in responding.
I moved to Ice3.2 and will attempt to replicate the issue I faced earlier. At the second glance I do however see an issue in my code.
Thanks for your help.0