We are using Jive Messenger with a custom client. End state target is 160K+ devices connecting concurrently across a distributed infrastructure.
We have a small pilot going currently with about 2K endpoints running against a single server and unfortunately we are struggling to get Jive Messenger configured well enough to stay running. I have seen reference in the forums that a properly sized server should be able to handle 5K or more endpoints, even at that, this would require 32 servers plus failovers and databases, we use Sametime from IBM on half that number of servers including the backups, so tuning and balancing is going to be pivotal if we are to succeeding with using Jabber.
The server is a 8 way machine with 8GB of RAM running Windows 2000 Advanced Server. We are using SQL Server 2000 with Jive Messenger.
We have created the messengerd-service.exe.vmoptions with the following options which all appear to be ignored
-Xms512m
-Xmx1024m
-Xss128k
The server runs out of memory after only 350 clients.
If we start it from a batch file using the following command it is good to about 1700 clients
start “Jive Messenger” “C:\Program Files\Jive Messenger\jre\bin\java” -Xms512m -Xmx1024m -Xss128k -server -jar …\lib\startup.jar
Unfortunately nothing seems to be able to get it past that limit.
We have tried the release version as well as the daily builds. We have ensured that we are using the server vm. We have removed all plugins, and turned off everything that we can think of including the admin ssl port, just to try and reduce the memory enough to get beyond the 1700 client limitation.
The specific error that we are getting is:
18:46:26.411 WARN!! [Acceptor ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=9090]] org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:632) >01> EXCEPTION
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Unknown Source)
at org.mortbay.util.ThreadPool$PoolThread.enterPool(ThreadPool.java:448)
at org.mortbay.util.Pool.newPondLife(Pool.java:368)
at org.mortbay.util.Pool.get(Pool.java:304)
at org.mortbay.util.ThreadPool.run(ThreadPool.java:368)
at org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:616)
Any assistance in getting messenger configured to handle the load would be greatly appreciated.