Skip to main content
Inspiring
March 26, 2010
Question

FMS seems to stop returning data

  • March 26, 2010
  • 1 reply
  • 1008 views

I'm currently working as part of team of developers and we've run into an issue with our FMS project.

In our site the user is able to record video of themselves which is turned into flvs and stored by the FMS. These videos are played back at a later time. The site works fine but intermittently stops recording new videos or streaming previously recorded videos. The only solution at this point is to restart the server. The server logs show that the onDisconnect event handler is running when users terminate their sessions and we can see that the number of active connections does not appear to be exceeding the limit on the server. There are no runtime errors to indicate that anything has gone wrong. From looking at output from the app it just seems like the publish and unpublish event handlers stop running but nothing actually breaks. The user doesn't realize anything is wrong until they try to watch their videos only to get a blank screen.

We're wondering if perhaps it is a garbage collection issue? Either the  garbage collector in the FMS is running and taking a really long time to  reload the app or perhaps it isn't running at all and somewhere some  memory is overloading.

Any ideas on this would be greatly appreciated. Thank you!

    This topic has been closed for replies.

    1 reply

    Janaki Lakshmikanthan
    Adobe Employee
    Adobe Employee
    March 29, 2010

    Hi,

    Could you pls look up your server logs like master.log, core.log, edge.log, admin.log located at "InstallRoot\Flash Media Server 3.5\logs" for any unusual logs in it? ALso look up your application log file "InstallRoot\Flash Media Server 3.5\logs\_defaultVHost_\appname\instancename\application.log".

    Which FMS version are you using? Type of edition?

    Is your server overloaded... your FMSCore process?

    Regards,

    Janaki L

    robdodsonAuthor
    Inspiring
    March 31, 2010

    Found the solution thanks to the Influxis support staff ( who are AWESOME btw ).

    They pointed us to our usage chart which showed that we were publishing a stream called "false" like 100 times per user. Turns out one of our developers had tried to close the nestream by passing in: publish("false"), which is EXACTLY what the adobe docs say to do.

    From adobe: "name:String (default = null) — A string that identifies  the stream. If you pass false,   the publish operation stops."

    Apparently this used to work in AS1/AS2, however in AS3 it just starts publishing a new stream called "false". He had setup a check of some kind which was trying to determine if the netstream had been closed and if not it would publish("false"). So it ended up getting called over and over. Turns out 98.6% of our usage was just publishing the word "false" over and over.

    Changing netstream.publish("false") to netstream.close() fixed the issue.

    P.S. Thanks for taking the time to offer a solution Janaki

    Janaki Lakshmikanthan
    Adobe Employee
    Adobe Employee
    April 1, 2010

    Hi,

    NetStream.publish(false);

    is an invalid statement in AS3.

    "If close() is called from a publishing stream, the stream stops publishing and the publisher can now use the stream for another purpose. Subscribers no longer receive anything that was being published on the stream, because the stream has stopped publishing. ". You got to call NetStream.close() to stop publishing the stream.

    As AS3 considers the value that sent in publish method as stream name.

    In AS2 "NetStream.publish(false);" stops publishing the stream and it is a valid statement.

    Regards,

    Janaki L