Skip to main content
Participating Frequently
October 15, 2010
Question

FMS4 questions(trace, access plugin)

  • October 15, 2010
  • 1 reply
  • 1249 views

Hello!

I have two questions about FMS4 behaviour.

1.trace() output is limited to 4K symbols. How to output long, very long DEBUG strings?

I understand, this limitation is for admin console, but what about log files?

All solutions are not so convient like old trace from FMS3:

break long strings into chunks(output order is unpredictable), make my own log file etc

2. What is the best practice to pass parameters from client into access plugin?

In FMS3 I just assign parameters for NetConnection uri parameter: nc.connect("rtmp://ip/vod?coreID=2");

Then just extracted them from "s-uri" property during CONNECT event. It was easy

Now in FMS4 it is not worked smoothly: I can still get parameters, but FMS started many instances

of application appending parameters to default instance name: e.g. _defInst_coreID=2 and so on.

Well, I can assign url parameters in client to the stream name: mp4:videofile.f4v?coreID=2, but how

to grab them in the access plugin?

Thanks in advance!

    This topic has been closed for replies.

    1 reply

    Asa_-_FMS
    Adobe Employee
    Adobe Employee
    October 15, 2010

    Hey Nickolas,

    Yeah - the trace statement had to be limited for a few systems that we're working on not supporting lengthy trace statements (i.e. they crashed).  So, FMS 3 would have allowed long traces and FMS 4+ does not.  Sorry about that, but 4k is a reasonable limit on a single trace.  If you need to use traces to communicate longer pieces of information I would then advise breaking them up as you suggested.  Barring that I'd recommend you invest in using the script's file based API for logging more information than the trace system supports.

    As for your other point, I'm not aware of new parameters that we may have inserted to cause trouble in reading query strings, but if you can give me a more detailed example I'm sure I can get you an answer on them.

    Cheers,

    Asa

    Participating Frequently
    October 18, 2010

    Thanks, Asa, for the answer!  I will try to explain the second issue more deeply.

    I have a SSAS load balancing system. All client requests to streams are going through it.

    The flow is:

    1) player connect to the load balancing with the name of content

    2) load balancing is seeking for an edge where the requested content is cached or just for a free one

    3) in any case the load balancing rejected the incoming connection with information about the edge and core process id

    4) then client making a new connection to the edge and pass there core id

    5) edge intercepts CONNECT event, extract core process id and assign the incoming connection to the extracted core process

    Well, I think it should be enough to understand what I am doing

    Now the problem. For FMS3 it works like a charm, but in FMS4 there is a little issue.

    When a client  connects to an edge server, for example, to the default vod application it produces many instances

    of vod application with strange names.

    For example:

    Client code

    var nc:NetConnection = new NetConnection();

    nc.connect("rtmp://uri" + "?coreId=2");

    And  then in the FMS Console I see the instance of vod application with the  name "_definst_coreId=2". But it shoudbe just "_definst_".

    If I change nc.connect("rtmp://uri" + "?coreId=3"), a new instance with the name "_definst_coreId=3" would be lunched.

    I use FMS4 r1121 x64 on CentOS.

    Thanks!

    Asa_-_FMS
    Adobe Employee
    Adobe Employee
    October 20, 2010

    Hey Nickolas,

    I've asked a member of our support teams to get in touch with you and work on triaging the issue.  You should hear be hearing from them soon, ping back here if you don't.

    Asa