[Quickfix-developers] JNI Acceptor cannot sustain multiple connections
Brought to you by:
orenmnero
|
From: Stanislawek, M. <MSt...@cm...> - 2005-12-01 21:26:58
|
We've experienced an upper bound on the number of configured sessions and connected clients an acceptor can handle through our quickfix Java JNI implementation. At first we thought it was file descriptor based, but after bumping up both the hard and soft limits well above what is required and no change in behavior, we think it's not the shell's file descriptor limits were hitting and maybe something jvm related. We also took our app out of the equation by using the example java executor that is in the quickfix distribution. And the same behavior occurred. Here are the details: We modified the java executor to use the file store and file log (this is what we'd like to use in prod) and modified the application to print the messages in the fromAdmin and fromApp call backs. What I notice is at 144 configured sessions I can establish a connection, login and start heart beating. I see the logon and heartbeat messages printed to stdout. But at 145 sessions configured, the app callbacks never sees the logon message. netstat shows the connection established but the receive queue is never emptied. netstat shows the receive queue containing the ~108 bytes from the logon message. Has anyone else bumped up against this? Here is the environment: RHAS 3.1 quickfix 1.10.2 g++ 3.2.3 Sun's 1.4.2_02 jvm UseDataDictionary=3DN ResetOnLogout=3DY ResetOnDisconnect=3DY /tmp/executor $ ulimit -a address space limit (kbytes) (-M) unlimited core file size (blocks) (-c) 0 cpu time (seconds) (-t) unlimited data size (kbytes) (-d) unlimited file size (blocks) (-f) unlimited locks (-L) unlimited locked address space (kbytes) (-l) 4 nofile (-n) 65535 nproc (-u) 7168 pipe buffer size (bytes) (-p) 4096 resident set size (kbytes) (-m) unlimited socket buffer size (bytes) (-b) 4096 stack size (kbytes) (-s) 10240 threads (-T) not supported process size (kbytes) (-v) unlimited |