Expand my Community achievements bar.

Blocking when using RTMPS

Avatar

Former Community Member

While using RTMPS to push large amounts of data to the flash player we've begun seeing deadlock occurring in the FlexClient on the server.

This is the usage:

Destination A:

  • pushes 1 message every 5 seconds containing an array of 500-5000 objects (each object ~300K)

Destination B:

  • pushes 1/message/second containing a small object (by small I mean it has at most 10 String or Number fields on them) onto a subtopic
  • pushes 1/message every 30 seconds containing a list of 10 key-value pairs onto a second subtopic
  • pushes 1/message every 30 seconds containing a list of 10 key-value pairs onto a third subtopic

JConsole shows the FlexClient blocks in push().  We attached a debugger and found the RTMP endpoint has a tcMessageQueue that has all of the messages in it.  During normal execution this queue has 1 or 0 messages in it, but when the threads are blocking the queue grows.

The app can run for several minutes before getting into a blocked state.  Other users are not blocked (they are using their own destinations).  The flash player itself remains responsive, but simply isn't getting any data.  I've looked at the BlazeDS source which shows synchronized blocks on "lock" and on "queue" but I can't see why either of those are blocking "forever".

This is all running LCDS 2.6.1 on both linux and windows servers.  Does anybody have any similar issues?  Any suggestions on what's causing the FlexClient to block? 

0 Replies