0

Dealing with a Flex client that needs to connect through BlazeDS to a Java backend. Currently, we have a requirement for fifty-plus clients to be attached at any given time. We need to test the load of this requirement against the server to see if we are going to have any performance issues.

So, I have written a client emulator that will act like real clients and connect to the server though Blazeds. The emulator was to make this test require less hardware for I would connect 50 client from one machine (or two 25, basically minimize hardware needs). Instead of having fifty different machines to run clients on. The issue I am running into is a limitation of emulated clients allowed from one session. There seems to be a five client limit. This goes for both IExplorer and FireFox browsers. The problem is with the JMS subscriptions. The JMS topic seem to get connected but never subscribed.

I played around with some settings on the BlazeDS server side to no avail.
- max-streaming-connections-per-session - max-streaming-clients

After the sixth connection I start getting a 16:18:21.578 [ERROR] com.ray.sv.flex.util.SocketLogTarget SocketLogTarget failed with SecurityError: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Security sandbox violation: http://xxx.xxx.xxx.xxx:8080/ClientEmulator/clientemulator.swf cannot load data from 127.0.0.1:1337."]

Very strange, but what is stranger is that client needs to recover from server disconnects. Which was a totally different issue all together with the remote object calls and subscribing timing issues, kept getting Duplicate Session Id errors. But now I have that ironed out, but I see the same issue when the client fails a connection five times. The sixth time always fails with the same error. And this is with only one client connected.

Has anyone seen this same issue?

Thanks for your time.

dakira
  • 333
  • 3
  • 5
  • 12
  • It has been a long time since I looked into performance/load testing seriously; but if memory serves me you may also run into hardware limitations. Can a single network card make 25 simultaneous requests to a server? If not; is your own testing code accurate? I've heard of some creative ways around this including having code that will spin up EC2 instances to perform tests, and then take them down when complete. – JeffryHouser Feb 03 '14 at 23:04
  • I have been doing memory and performance testing for some time. Mainly with Flex. I have been using the Scout and the FlashPlayer profiler to find memory problems. I do not think it is a hardware issue since the same behavior has been seen on many different platforms but I will admit hardware is not my strong point. I have a fairly complicated Flex app that has been shown to run for weeks without issues and now even longer. Of course, this has been with limited client connections. The new requirement for 50+ clients is a new thing and wanted a emulator to handle it. – dakira Feb 04 '14 at 02:41
  • We do have it working with fifty clients with five clients per client machine. Which is ten boxes. – dakira Feb 04 '14 at 02:42
  • 1
    Each browser has a limit on the simultaneous http calls that it can send to the server. So, it could be the reason why your client was not able to send more than 5 http calls. You may want to lookup the client limit here - http://stackoverflow.com/questions/985431/max-parallel-http-connections-in-a-browser – Zeus Feb 04 '14 at 05:39
  • Thanks for the URL. It is the limitation I was looking for. – dakira Feb 04 '14 at 15:33

0 Answers0