Server-Side stream play problem

Hello,
I have a problem, which I am trying to solve for many nights already without any success.
Everytime I try to switch or change a server-side stream, it starts lagging after 2 seconds of playing and sound disappears.
Here are scenarios that result in that terrible lag:
1. I create server-side playlist with stream.play() with reset=false; when it is time to play the next movie in the playlist, it starts lagging after 2 seconds.
2. The same problems appears when I just switch streams. I installed FMF Feature Explorer and tried to launch SwitchStreams sample application: the same problem - server stream starts lagging after I switch streams with stream.play().
I tried on different servers (local and remote), with different players (debug player of FMS Admin Console, Standard Flash videoplayer component, OSMF player, Flex video player). I also tried all possible flv, f4v and mp4 file compression options for video files - still the same problem.
I have also tried literally thousands of Application.xml settings: changing buffer, buffer ration etc.
Is there any tip where I should search for a solution?
Thank you in advance

JayCharles,
Thank you for your reply.
But in my case the client is subscribed to a stream on the FMS. And that stream is switching video files and handling the playlist. So, I don't see any possibility to listen to onPlayStatus on a client-side, as my client is only playing live stream and has no clue what is happening on the server side.
Or I am wrong?

Similar Messages

  • SAP SNC Server Side Trust Setup Problems

    Single Server BOE instalation of BOE 3.1 SP4 to Windows 2008 R2 machine
    Sap version 720 Patch level 7
    We have used kbase article 1500150 and 1396213 to run thorugh the configuration and testing and all has checked out.
    We are unable to have the "roles" returned when any "DN" value is entered in the SNC name entry in the entitlement systems tab.
    We have turned on RFC tracing and have run the JCO test  The RFC trace file is below followed by the JCO test information.  JCO test was run twice, once with each DN just to make sure.
    Please help
    =======================RFC TRACE===========================
    ERROR file opened at 20111116 174146 Eastern Standard Time, SAP-REL 720,0,93 RFC-VER 3  MT-SL
    T:3988 Error in program 'CMS': ======> SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed
    Connect_PM  GWHOST=torsbid01.cpr.ca, GWSERV=sapgw00, SYSNR=00
    LOCATION    CPIC (TCP/IP) on local host with Unicode
    ERROR       GSS-API(maj): No credentials were supplied
                GSS-API(min): No credentials found for this name (not logged
                on) (USER
                name="p:CN=BOEDEV, OU=BOBJ, O=CPR, C=CA"
    TIME        Wed Nov 16 17:41:46 2011
    RELEASE     720
    COMPONENT   SNC (Secure Network Communication)
    VERSION     5
    RC          -4
    MODULE      sncxxall.c
    LINE        1439
    DETAIL      SncPAcquireCred
    SYSTEM CALL gss_acquire_cred
    COUNTER     55
    T:2800 Error in program 'CMS': ======> SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed
    Connect_PM  GWHOST=torsbid01.cpr.ca, GWSERV=sapgw00, SYSNR=00
    LOCATION    CPIC (TCP/IP) on local host with Unicode
    ERROR       GSS-API(maj): No credentials were supplied
                GSS-API(min): No credentials found for this name (not logged
                on) (USER
                name="p:CN=BOEDEV, OU=BOBJ, O=CPR, C=CA"
    TIME        Wed Nov 16 17:41:46 2011
    RELEASE     720
    COMPONENT   SNC (Secure Network Communication)
    VERSION     5
    RC          -4
    MODULE      sncxxall.c
    LINE        1439
    DETAIL      SncPAcquireCred
    SYSTEM CALL gss_acquire_cred
    COUNTER     4
    T:4760 Error in program 'CMS': ======> SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed
    Connect_PM  GWHOST=torsbid01.cpr.ca, GWSERV=sapgw00, SYSNR=00
    LOCATION    CPIC (TCP/IP) on local host with Unicode
    ERROR       GSS-API(maj): No credentials were supplied
                GSS-API(min): No credentials found for this name (not logged
                on) (USER
                name="p:CN=BOEDEV, OU=BOBJ, O=CPR, C=CA"
    TIME        Wed Nov 16 17:41:46 2011
    RELEASE     720
    COMPONENT   SNC (Secure Network Communication)
    VERSION     5
    RC          -4
    MODULE      sncxxall.c
    LINE        1439
    DETAIL      SncPAcquireCred
    SYSTEM CALL gss_acquire_cred
    COUNTER     3
    ========================JCO TEST=======================
    E:\BusinessObjects\javasdk\bin>java -classpath E:\BusinessObjects\Tomcat55\share
    d\lib\sapjco.jar com.sap.mw.jco.support.JRfcTest
               SAP JCo Client Test             *
                     Possible SAP JCo-Tests
                      1. RFC_SYSTEM_INFO
                      2. CONNECTION
                      3. PERFORMANCE
                      4. INHOMOGENEOUS STRUCTURE/TABLE
                     15. TRANSACTIONAL RFC
                     99. Exit
                   Your Choice....... :2
                          SAP JCo TEST - CONNECTION TEST
                          Send message and wait for ECHO/INFO
                   CONNECTION PARAMETERS:
                     Server is R/2, R/3 or External (2/3/F/E): 3
                     Use load balancing (Y/N)Y...............: Y
                     R/3 system name.........................: BIN
                     Message server..........................: binmain
                     Selected group..........................: PUBLIC
                     Working with SNC (Y/N)N.................: N
                   RFC-SPECIFIC PARAMETERS:
                     Working with ABAP debugger (Y/N)N.......: N
                     Use SAPGUI (Y/N)N.......................: N
                     RFC trace (Y/N)N........................: N
                     JCo trace level (0-10)..................: 0
                   SAP LOGON DATA:
                     Client..................................: 000
                     UserID..................................: SAPCPIC
                     Password................................: XXXXXX
                     Language (E)............................: E
                   #Calls of this JCo Test...................: 1
                   Do You Want To Test With These Parameters (Y/N).. :N
                   CONNECTION PARAMETERS:
                     Server is R/2, R/3 or External (2/3/F/E): [3] :3
                     Use load balancing (Y/N)Y...............: [Y] :N
                     Host name of an application server......: [binmain] :torsbid01.
    cpr.ca
                     System number...........................: [53] :00
                     Working with SNC (Y/N)N.................: [N] :Y
                     SNC Library Name........................: [C:\Program Files\SEC
    UDE\SECUDE for R3\secude.dll] :E:\SAP\Crypto\sapcrypto.dll
                     SNC name of partner program.............: [s:sample@hs0335] :p:
    CN=BOEDEV, OU=BOBJ, O=CPR, C=CA
                   RFC-SPECIFIC PARAMETERS:
                     Working with ABAP debugger (Y/N)N.......: [N] :N
                     Use SAPGUI (Y/N)N.......................: [N] :Y
                     Automatically invisible SAPGUI (Y/N)N...: [N] :Y
                     RFC trace (Y/N)N........................: [N] :Y
                     JCo trace level (0-10)..................: [0] :10
                   SAP LOGON DATA:
                     Client..................................: [000] :200
                     UserID..................................: [SAPCPIC] :Crystal
                     Password................................: [******] :Welcome1
                     Language (E)............................: [E] :
                   #Calls of this JCo Test...................: [1] :
                   Do You Want To Test With These Parameters (Y/N).. :y
    >>>>>>>>>>>>>>>> SAP JCo TEST - CONNECTION TEST >>>>>>>>>>>>>>>>
    main [18:02:41:758]: [JAV-LAYER] INFO: JCo version is 2.1.10 (2011-05-10)
    main [18:02:41:758]: [JAV-LAYER] JCO.setProperty("jco.trace_level", "10")
    main [18:02:41:758]: [JNI-LAYER] RFC.nativeSetTraceLevel()                with r
    c = RFC_OK   leave, [SUCCESS]
    main [18:02:41:758]: [JAV-LAYER] JCO.setProperty("jco.trace_path", ".")
    Stack trace of call to JCO.setProperty("jco.trace_path", ".")
            at com.sap.mw.jco.JCO.setProperty(JCO.java:554)
            at com.sap.mw.jco.JCO.setTracePath(JCO.java:791)
            at com.sap.mw.jco.support.JRfcTest.correctProperties(JRfcTest.java:1047)
            at com.sap.mw.jco.support.JRfcTest.initCall(JRfcTest.java:1074)
            at com.sap.mw.jco.support.JRfcTest.runConnectionTest(JRfcTest.java:737)
            at com.sap.mw.jco.support.JRfcTest.main(JRfcTest.java:203)
    E:\BusinessObjects\javasdk\bin>java -classpath E:\BusinessObjects\Tomcat55\share
    d\lib\sapjco.jar com.sap.mw.jco.support.JRfcTest
               SAP JCo Client Test             *
                     Possible SAP JCo-Tests
                      1. RFC_SYSTEM_INFO
                      2. CONNECTION
                      3. PERFORMANCE
                      4. INHOMOGENEOUS STRUCTURE/TABLE
                     15. TRANSACTIONAL RFC
                     99. Exit
                   Your Choice....... :2
                          SAP JCo TEST - CONNECTION TEST
                          Send message and wait for ECHO/INFO
                   CONNECTION PARAMETERS:
                     Server is R/2, R/3 or External (2/3/F/E): 3
                     Use load balancing (Y/N)Y...............: Y
                     R/3 system name.........................: BIN
                     Message server..........................: binmain
                     Selected group..........................: PUBLIC
                     Working with SNC (Y/N)N.................: N
                   RFC-SPECIFIC PARAMETERS:
                     Working with ABAP debugger (Y/N)N.......: N
                     Use SAPGUI (Y/N)N.......................: N
                     RFC trace (Y/N)N........................: N
                     JCo trace level (0-10)..................: 0
                   SAP LOGON DATA:
                     Client..................................: 000
                     UserID..................................: SAPCPIC
                     Password................................: XXXXXX
                     Language (E)............................: E
                   #Calls of this JCo Test...................: 1
                   Do You Want To Test With These Parameters (Y/N).. :n
                   CONNECTION PARAMETERS:
                     Server is R/2, R/3 or External (2/3/F/E): [3] :3
                     Use load balancing (Y/N)Y...............: [Y] :N
                     Host name of an application server......: [binmain] :torsbid01.
    cpr.ca
                     System number...........................: [53] :00
                     Working with SNC (Y/N)N.................: [N] :Y
                     SNC Library Name........................: [C:\Program Files\SEC
    UDE\SECUDE for R3\secude.dll] :E:\SAP\Crypto\sapcrypto.dll
                     SNC name of partner program.............: [s:sample@hs0335] :p:
    CN=BOEDEVSERVER, OU=BOBJ, O=CPR, C=CA
                   RFC-SPECIFIC PARAMETERS:
                     Working with ABAP debugger (Y/N)N.......: [N] :N
                     Use SAPGUI (Y/N)N.......................: [N] :Y
                     Automatically invisible SAPGUI (Y/N)N...: [N] :Y
                     RFC trace (Y/N)N........................: [N] :Y
                     JCo trace level (0-10)..................: [0] :10
                   SAP LOGON DATA:
                     Client..................................: [000] :200
                     UserID..................................: [SAPCPIC] :Crystal
                     Password................................: [******] :Welcome1
                     Language (E)............................: [E] :
                   #Calls of this JCo Test...................: [1] :
                   Do You Want To Test With These Parameters (Y/N).. :y
    >>>>>>>>>>>>>>>> SAP JCo TEST - CONNECTION TEST >>>>>>>>>>>>>>>>
    main [18:04:58:041]: [JAV-LAYER] INFO: JCo version is 2.1.10 (2011-05-10)
    main [18:04:58:041]: [JAV-LAYER] JCO.setProperty("jco.trace_level", "10")
    main [18:04:58:041]: [JNI-LAYER] RFC.nativeSetTraceLevel()                with r
    c = RFC_OK   leave, [SUCCESS]
    main [18:04:58:041]: [JAV-LAYER] JCO.setProperty("jco.trace_path", ".")
    Stack trace of call to JCO.setProperty("jco.trace_path", ".")
            at com.sap.mw.jco.JCO.setProperty(JCO.java:554)
            at com.sap.mw.jco.JCO.setTracePath(JCO.java:791)
            at com.sap.mw.jco.support.JRfcTest.correctProperties(JRfcTest.java:1047)
            at com.sap.mw.jco.support.JRfcTest.initCall(JRfcTest.java:1074)
            at com.sap.mw.jco.support.JRfcTest.runConnectionTest(JRfcTest.java:737)
            at com.sap.mw.jco.support.JRfcTest.main(JRfcTest.java:203)
    E:\BusinessObjects\javasdk\bin>
    Edited by: Joseph Borojevic on Nov 17, 2011 12:07 AM

    The error in the logs:  u201CNo credentials found for this name (not logged on)u201Du201D  usually is a  problem with case.
    We used the sapgenpse get_my_name command and found that the id being referenced was being pulled incorrectly with wrong case. 
    The problem was the ID we logged into the remote sesison into the windows server with. 
    That ID is the ID that the commands are run under.
    The sapgenpse seclogin u2013p BOESERVER.pse command takes the ID of the user you are logged into the session with. 
    We re-ran the command when logged in with the user with the correct case and it worked

  • Why is server side Stream.onStatus never called?

    application.onPublish = function (client, p_stream)
    p_stream.onStatus = function(infoObject){
        //never called
        trace(infoObject.code);
    Tested in FMS 3.5, why is it not working as expected?

    application.onPublish = function (client, p_stream)
    p_stream.onStatus = function(infoObject){
        //never called
        trace(infoObject.code);
    Tested in FMS 3.5, why is it not working as expected?

  • Server side buffering settings for video

    I pump my video (both live streaming and VOD) through a popular CDN.  They control the server side (FMS) settings.  I can request that they change things and they do so and let me know when I can test.
    I'm wondering about server side buffering settings.  Is there supposed to be some sort of coordination between the buffering settings there and the client side buffering settings I implement in my video player?
    The reason I ask is I get wierd buffering behaviors in my client side player under certain conditions and there doesn't seem to be much to adjust there other than the NetStream.bufferTime property.
    For instance, if I set the bufferTime property in my client viewer to 10 seconds, the player just seems to ignore it and starts playing the stream right away or within a second or two.  Other times I see crazy values in the bufferTime property, like 400 seconds (I check the property's value about every second).
    I'm wondering if there are some FMS settings that are overriding or are not working well with my client side buffer settings.  Is this possible?

    Not sure how to get this code to you.  There is no option here to  attach a file.  Trying to post inline here.  Hope it comes out ok.
    This  is a simple player.  The simplest.  No frills.  Just insert your RTMP  url to your FMS and your stream name in the string variables "rtmpURL"  and "streamName" at the top, compile and run.
    Here is a deployment of this player connected to my CDN where the file is currently playing:
    http://dcast.dyventive.com/cast/simple_player/player.html
    Also,  attached is an image I took when I ran the program and hit the refresh  button in the browser.  Note the giant bufferLength numbers in the debug  panel.
    Again note, I do not get this problem linking  directly to a recorded file.  I see this problem when playing a file on a  server or with a live stream.
    Can you see anything  obviously wrong?
    <?xml  version="1.0" encoding="utf-8"?>
    <mx:Application
         xmlns:mx="http://www.adobe.com/2006/mxml"
         layout="absolute"
         backgroundColor="#333333"
         initialize="init()">
         <mx:Script>
             <![CDATA[
                 //Note:  the method "connect()" on  line #49 starts the area  with the important connection code
                 import mx.containers.Canvas;
                 import flash.media.Video;
                 import flash.net.NetConnection;
                 import flash.net.NetStream;
                 private var vid:Video;
                 private var nc:NetConnection;
                 //Path to your FMS live streaming application
                 private var rtmpURL:String = "Insert your URL"; //Will be  used to connect to your FMS
                 private var buffer:Number = 5; //NetStream.bufferTime  property will be set with this.
                 private var streamName:String =  "Insert your server side  stream name here"; //This determines the channel you're watching  on the  server.           
                 private var ns:NetStream;
                 private var msg:Boolean;
                 [Bindable]
                 private var canvas_video:Canvas;//Will display some live  playback  stats
                 private var intervalMonitorBufferLengthEverySecond:uint;
                  private function init():void
                     vid=new Video();   
                     vid.width=720;
                     vid.height=480;                   
                     vid.smoothing = true;               
                     uic.addChild(vid);
                     connect();
                 public function onSecurityError(e:SecurityError):void
                     trace("Security error: ");
                 public function connect():void
                     nc = new NetConnection();
                     nc.client = this;
                     nc.addEventListener(NetStatusEvent.NET_STATUS,  netStatusHandler);
                     nc.connect(rtmpURL);                    
                 public function netStatusHandler(e:NetStatusEvent):void
                       switch (e.info.code) {
                         case "NetConnection.Connect.Success":
                             netconnectionStatus.text = e.info.code;
                             reconnectStatus.text = "N/A";
                             trace("Connected successfully");
                             createNS();                    
                             break;                                               
                 public function createNS():void
                     trace("Creating NetStream");
                     ns=new NetStream(nc);
                     ns.addEventListener(NetStatusEvent.NET_STATUS,  netStreamStatusHandler);
                     vid.attachNetStream(ns);
                     //Handle onMetaData and onCuePoint event callbacks:  solution at http://tinyurl.com/mkadas
                     //See another solution at  http://www.adobe.com/devnet/flash/quickstart/metadata_cue_points/
                     var infoClient:Object = new Object();
                     infoClient.onMetaData = function oMD():void {};
                     infoClient.onCuePoint = function oCP():void {}; 
                     ns.client = infoClient;   
                     ns.play(streamName);   
                     ns.bufferTime = buffer;                   
                     ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,  asyncErrorHandler);
                     function asyncErrorHandler(event:AsyncErrorEvent):void {
                         trace(event.text);
                     //Set up the interval that will be used to monitor the  bufferLength property.
                     //monPlayback() will be the funciton that will do the  work.   
                     intervalMonitorBufferLengthEverySecond =  setInterval(monPlayback, 1000);
                 public function  netStreamStatusHandler(e:NetStatusEvent):void
                      switch (e.info.code) {
                         case "NetStream.Buffer.Empty":
                             netstreamStatus.text = e.info.code;
                             textAreaDebugPanel.text += "Buffer empty:\n";
                             trace("Buffer empty: ");
                             break;
                         case "NetStream.Buffer.Full":
                             netstreamStatus.text = e.info.code;
                             textAreaDebugPanel.text += "Buffer full:\n";
                             trace("Buffer full:");
                             break;
                          case "NetStream.Play.Start":
                              netstreamStatus.text = e.info.code;
                              textAreaDebugPanel.text += "Buffer empty:\n";
                             trace("Play start:");
                             break;                        
                 //Get the current ns.bufferLength value, format it, and  display it to the screen.
                 //"bufferLen" is the key var here.
                 public function monPlayback():void {               
                     var currentBuffer:Number =  Math.round((ns.bufferLength/ns.bufferTime)*100);
                     var bufferLen:String = String(ns.bufferLength);//Here is  the actual bufferLength reading.
                                                                    //Use it  to show the user what's going on.
                     pb.value = currentBuffer;//updates the little buffer  slider on the screen
                     bufferPct.text = String(currentBuffer) + "%";
                     bufferTime.text = String(ns.bufferTime);
                     bufferLength.text = String(ns.bufferLength);
                     //Dump the bufferLen value to the debug panel.
                     textAreaDebugPanel.text += bufferLen + "\n";                
                     trace("Buffer length: " + bufferLen);
             public function onBWDone():void
                 //dispatchComplete(obj);
             ]]>
         </mx:Script>
         <mx:Canvas id="monitor"
             y="10" right="50">
             <mx:Text x="0" y="25" text="Buffer:" color="#FFFFFF"/>
             <mx:Text x="0" y="50" text="Buffer Time:"  color="#FFFFFF"/>
             <mx:Text x="0" y="75" text="Buffer Length:"  color="#FFFFFF"/>   
             <mx:Text x="0" y="100" text="NetConnection netStatus:"  color="#FFFFFF"/>
             <mx:Text x="0" y="125" text="NetStream netStatus:"  color="#FFFFFF"/>
             <mx:Text x="0" y="150" text="Reconnect:" color="#FFFFFF"/>
             <mx:HSlider x="145" y="25" id="pb" minimum="0" maximum="100"  snapInterval="1" enabled="true"/>
             <mx:Text x="100" y="25" height="20" id="bufferPct"  color="#FFFFFF"/>   
             <mx:Text x="145" y="50" height="20" id="bufferTime"  color="#FFFFFF"/>
             <mx:Text x="145" y="75" height="20" id="bufferLength"  color="#FFFFFF"/>   
             <mx:Text x="145" y="100" height="20" id="netconnectionStatus"  color="#FFFFFF"/>
             <mx:Text x="145" y="125" height="20" id="netstreamStatus"  color="#FFFFFF"/>
             <mx:Text x="145" y="150" height="20" id="reconnectStatus"  color="#FFFFFF" text="N/A"/>
         </mx:Canvas>
         <mx:UIComponent id="uic"
              x="50" y="10"/>
          <mx:TextArea id="textAreaDebugPanel"
              width="300" height="300"
              right="50" top="300"
               valueCommit="textAreaDebugPanel.verticalScrollPosition=textAreaDebugPanel.maxVerticalScro llPosition"/>
    </mx:Application>

  • Issues with server side recording in FMS

    I have FMS installed on Windows XP machine.
    I am recording using the server side Stream class. This
    creates a FLV but when I play it back it does not play though it
    has created the file under the dir in FMS.
    After a lot of research I figured out that the recording is
    done properly but I have to restart my FMS before the play back.
    After which the play back goes on smoothly.
    Can any one help me with this. I need to know if this is a
    known issue or else I have to do something on stream at the the
    server side after recording so that I can play it back immediately.

    **Bump**
    I am having a similar issue. I have an app that will redirect
    the stream to the same application but a different instance. The
    ns.publish method is called for recording and the file will write
    correctly. However, after I stop publishing and go in to play the
    file in flv player, it doesnt play back. Looks like the meta data
    is there but no video. Is there a specific procedure to close off
    the file or something that I'm not performing?

  • Generating feedback messages on server-side vs client-side?

    Hello,
    I am maintening a client/server app (Swing client, no Web pages), basically an order processing system. The biggest part of it is to verify the conformity of orders to a set of business rules.
    As usual, some of the verification can be made early on the client-side, but most of the verification work is done on the server-side. My problem is, I don't find a very satisfactory way to generate the user feedback to be displayed to the user.
    If I generate them as Strings (or HTML Strings) on the server, where the rules are checked, this constrains the way these can be displayed on the client, and makes maintenance of the human-readable strings awkward and risky (e.g. localization, or restructuring the messages, like sorting them by severity vs by affected entity).
    If I generate them on the client, I need a class to vehicle the diagnosis form server to client, and this class and its usage tends to become awkward in itself.
    Concretely:
    The initial version generated human-readable strings on the server, which assumed the messages would be displayed as strings in a JOptionPane.
    Moreover, the logic evolved to distinguish between Info, Warning and Error messages, to be displayed in different colors of course, so the Strings evolved into HTML Strings, still generated on the server.
    Do you think this approach is safe?
    I'm afraid a simple maintenance of the strings (like, sorting the errors by severity vs by affected entity, filtering the strings,...) becomes a server-side development, which is a bit more risky (I would have to review code ownership policies, VCS and code-sharing policies,... to let less experienced staff maintain the darn error Strings).
    Moreover, if the client app evolve to display the errors in complex widgets (colors in a tree/table, with tooltips), the server-side generated HTML strings would be constraining : coloring or tooltipping Tree nodes would now mean parsing the String to extract the "error level" or the "affected entity", which is quite inelegant and inflexible.
    My current idea was then to use a collecting parameter to collect validation messages on the server, and traverse them on the client:
    I designed a naive ErrorList class, with methods such as addInfo(String), addWarning(String), addError(Strin), and the corresponding getErrors() and hasErrors()/hasWarnings() methods. I can then generate the Strings (or whatever widget fits better, such as a table) on the client side. Moreover, I can add the client-side messages to the bag...
    All nice and well, but the customer requested that the error messages be formatted such as "The profile <profile name in bold> does not allow you to order service <service name in italics>".
    To format that on the client, my ErrorList class should evolve so that for a given message, I know that the error is of type ("incompatibility between profile and service", that the service is X and the prodile is Y).
    That forces me to add in some API (shared by the client and server) the list of error types, and the data each error type requires.
    I can evolve my ErrorList API to break up messages into a DTO giving (type, affected entity, arg1, arg2,...), but anyway the server and client have to agree on what is arg1, etc... which is a hidden coupling.
    Do you use and recommend such an approach for server-to-client feedback: a collecting parameter in which the server puts the "errors", and that the client traverses to display the messages)? In particuler, isn't the coupling hard to maintain?
    Thansk in advance,
    J.

    Presumably you are not over-engineering in that you
    know that localization is a problem rather than that
    in all possible worlds in might be.I appreciate your delicate questioning... I definitely have read much ruder ways to say YAGNI to a poster...
    I do know that the customer will knit-pick to reword and reformat the messages. But I won't need to translate the messages to other locales. In that regard, I ackowledge my usage of the term localization is a bit liberal, but I think I should to extract the messages from the code, to be able to maintain them separately - keeping only experienced staff's hand in the server's core.
    That is actually my question 1): from experience, is it worth the trouble to separate code and human-readable text, knowing that the text WILL have to be maintained?
    Question 2 is about how to implement this.
    In particular, the built-in MessageFormat templating engine, though originally introduced for i18n, actually suits my needs (including MessageFormat-built messages) and developing or using any other templating engine would probably be an overkill.
    Given that there are two types of messages.
    1. Fixed
    2. Parameter driven.
    In both cases you need to return an id which
    identifies the message. The client has a locale
    specific resource source which has a matching id.
    From there a string is derived.
    If the error requires parameters then the string has
    formatting values in it and it s written with the
    returned parameters. See java.text.MessageFormat.Yes. In some cases I don't know yet whether parameters will be displayed. I can conservatively assume the message requires a MessageFormat, and give all parameters (in my case, use rname, profile name, command id, service name, order date,...), whether thay are displayed or not in the final message.
    Be warned you MUST deal with the possibility that a
    id does not exist in the client, if so have a default
    message that displays the id and any parameters.Good point.
    "The customer name field can not be longer than 15
    characters".
    In the above the "15" would a parameter.Yes. The trouble is, you have to document somewhere (Sun suggests in the resource bundle file), that for error id #123456, the number of characters in in the '{0}', or in the {6}. I don't feel confident with that (this is the "coupling" part in my question 2�).
    Thanks for your advices.

  • Server-side or past-query resultset processing

    Hi everyone :)
    I have a question about efficiency. Basically, the application that I am writing retrieves resultsets from a data source. It is possible for an end-user to request that formatting be applied to certain columns in the resultset (eg: 1234 becomes $1234.00). As I see it, I have two options;
    1. Apply the formatting in the SQL statement, thereby causing the formatting to occur on the server-side. The problem that I see with this is that formatting commands are different for every DBMS, and some don't even have them.
    2. Retrieve the resultset in 'raw' form and apply java.text.Format subclasses to the resultset after it has been returned from the database (using update*(...) methods). This would 'standardise' the formatting, but is this efficient? My resultsets could be very large, so I am concerned about processing time.
    Any opinions/suggestions would be greatly appreciated.
    Thank you for your time. :)
    Ben Deany

    Well, not necessarily, no... my application may be on a client machine, sending requests to a remote data source. But point taken, it is a case of deciding which will be faster - so your question neatly sums up the problem.
    And when I said that I was thinking about using the "update*" methods I was referring to the ResultSet methods. I realise that this is not a great solution; firstly because of potential overheads navigating the resultset, and secondly because it's dangerous - there is a chance the the database could get written back to...
    So given that, the best solution might be to convert the ResultSet to a list of collection (or something similar) and then apply formatting to the values. (?)
    That does require two loops (once over the ResultSet to convert it to a List, and a second one to apply formatting).
    Ben

  • NetStream.Play.InsufficientBW when streaming server side playlist

    Hi
    I am streaming pre recorded audio files (mp4) to an AIR client. I have tried two different solutions,
    streaming the file directly with the NetStream.play("mp4:xxxxx.m4a") and creating a server side playlist, adding the
    same sound clip and then streaming the playlist. The problem is, when streaming the playlist i get a few NetStream.Play.InsufficientBW, this does not happen when streaming the file direct. Both solutions uses bufferTime=1.0
    I would like to use a server side playlist to implement a simple key solution so that the client dont know the full path to
    the file, but instead sends a key to a custom server side function that looks up the file path and creates a stream for the client.
    TIA
    Ruben Chadien
    FMS 4.0(linux)

    Subscribing via playlist and playing file directly are two different things , as first one is live mode of play while other is playing recorded file - so the way streams are delivered are also quite different. Can you try setting higher buffer and see if that helps or if you don't want to set higher buffer, see if disabling AggregateMessages (you will find the tag in Application.xml under Live/Queue) helps

  • Live video stream play permission on server-side

    I have a live video stream application one-to-many for
    example, and i want to send video only to few clients, not to all.
    Like:
    quote:
    application.onConnect = function(client, canSeeVideo) {
    // canSeeVideo = boolean
    this.acceptConnection(client);
    if (!canSeeVideo) client.receiveVideo(false);
    // and after this, can be swich to TRUE or FALSE ?
    client.receiveVideo(true);
    I only want to do restriction for Video, from server-side
    with FMS, or if can't be possible.. how can i put for example a
    black screen on video ? :) and after can be removed, etc...

    1.
    necesary client.receiveVideo() and client.receiveAudio()
    server-side functions
    Thank you fmslove for you trying to help me but
    client.readAccess property can NOT be set after client
    connection was accepted, and for me is useless. Any other
    solution(s) ? i strong recomend to Adobe FMS dev staff to implement
    this feature because is refering to security client-side solution
    from server-side. I have bad experience with users trying to modify
    the Flash Player (plug-in) run memory and set values for my swf
    without my accept, and is nothing that i can do from client-side
    like NetSream.receiveVideo(false) on many-to-many or one-to-many
    live A/V stream.
    2.
    a necesary server-side video encoder solution better than
    Sorenson Spark
    If in future FMS staff from Adobe will implement this
    necesary security feature on server-side like a copy of
    NetSream.receiveVideo() function from client-side, i will be happy
    if i see a solution to encode LIVE video stream on server-side
    because
    Sorenson Spark video encoder built-in Flash Player (plug-in) is
    very old and unuseful.
    If this can't be possible i hope the future Flash Player
    version (10) will have a better video encoder built-in than
    Sorenson Spark !!!

  • Stoping a client live published stream, server side

    Hello buddies,
    I have a very very important and urgent question.
    Suppose in some client a stream is being published live with
    the name 'A'. now, if some other client should and tries to publish
    with the same name ('A'), it will encounter a 'NetStream.BadName'
    status error code, to avoid that I think there should be some way
    to stop the stream('A') server side, and then let the 2nd client
    starts publishing with name 'A'. if so, how can I stop 'A' stream
    on server?
    Thank you so much for any help

    Let your server call a function (on the first client that
    publishes the stream A) that stops the publishing and shows show
    local message to that client e.g. "another client has started to
    publish a stream with the same name".
    It's unclear why you want such a system because you don't fix
    the problem ; you fix the symptoms. If you let clients publish a
    stream related to their loginname for example you will always have
    unique streams on your server.
    If you let them connect to an unique instance of your
    application you don't even have the problem of non-unique
    stream-names because inside every instance you can publish stream A
    again.
    Viewing clients would connect to each instance if they want
    to see that particular stream, like
    rtmp://yourserver.com/appnameXYZ/instancenameABC/A
    where A is the name of your published stream in instance
    "instancenameABC" , which is a child of application called
    "appnameXYZ".

  • Problem with skin for server side buttons.

    Hi,
    I have a problem with the skin for server side renderd buttons.
    In my CSS file I have :
    .AFButtonStartIcon:alias
    content:url(/skins/images/btns.JPG);
    .AFButtonEndIcon:alias
    content:url(/skins/images/btne.JPG);
    .AFButtonTopBackgroundIcon:alias
    content:url(/skins/images/btntb.JPG);
    .AFButtonBottomBackgroundIcon:alias
    content:url(/skins/images/btnbb.JPG);
    JPG files in project are in dir "public_html/skins/images".
    In WAR file,the JPG files are in "/skins/images" directory.
    Skin configuration is correct because other settings from CSS
    file are functioning fine after deploying.
    But buttons are standard browser buttons and are not taking the images i have used.
    In document provided by Oracle it says:
    (Note: These icons must be specified using either context-image or
    resource-image icons. Text-based icons are not allowed.)
    I am nt able to understand what this means?

    Perhaps this thread will help.
    JSF Skining Button Images
    The doc should say whether or not the width/height is a requirement. But since it doesn't mention it, try adding a width and height.
    - Jeanne

  • Problem in Server side includes using Tomcat

    Problem in Server side includes using Tomcat:
    I am trying out small programs in servlet.
    I get one example program for server side includes from net.
    The code is:
    <HTML>
    <HEAD><TITLE>Times!</TITLE></HEAD>
    <BODY>
    <P>
    The current time in London is!!! :
    <SERVLET CODE="CurrentTime" codebase="../servlet">
    <PARAM NAME="zone" VALUE="GMT">
    </SERVLET>
    </P>
    </BODY>
    </HTML>
    I placed this test.shtml file in tomcat-home/webapps/ROOT folder and i kept the servlet in WEB-INF/classes folder.
    I renamed the servlets-ssi.jar and i removed the comments for SSI in web.xml file.
    When i run the servlet separately, i am getting the correct result. But if i run shtml file with the URL : http://localhost:8080/Test.shtml,
    i am getting the result as:
    The current time in London is!!! :
    It is not invoking servlet program.
    CAN ANYONE HELP ON THIS!
    Thanks.

    Thanks...as u said I tried putting dir & found that
    my file was saved as Ch1Servlet.java.txt instead for
    Ch1Servlet.java......So that was a problem.Now I'm
    able to compile.Oh, yeah. Notepad will do that to you. I think when you save in Notepad if you put quotes around the name "Whatever.java" then it won't add the .txt.
    But on compiling I'm getting the following error
    package java.servlet.* does not exist
    package java.servlet.http.* does not exist
    package java.io.* does not exist
    Do u the reason for this??? The servlet stuff is java[b]x.servlet. For the io stuff, I don't know, I'd have to see your code. Either you have a typo or a corrupt installation.

  • When I stream videos from my laptop onto my Apple TV via my iPad 2 using the Air Video app/server the video plays great however when I pause the video the Apple TV reverts back to the home screen within a few seconds and then when I want to restart watchi

    When I stream videos from my laptop onto my Apple TV via my iPad 2 using the Air Video app/server the video plays great however when I pause the video the Apple TV reverts back to the home screen within a few seconds and then when I want to restart watching the video I have to re-buffer the video. Is there any way I can stop the Apple TV from reverting back to the home screen when I pause the video I’m watching?

    Welcome to the Apple Community.
    Contact the developer of the Air Video app.

  • Problem in mapping remoteobject on server side

    Hello all
    I am trying to use remoteobjects in Flex and PHP via Zend_AMF.  I am having problem in mapping the data object in flex with the one in PHP.
    Here's my code....
    private function getAuthors(event:Event):void
         serviceRO = new RemoteObject();
         serviceRO.endpoint = "http://localhost/sampleproj/public/";
         serviceRO.destination = "zend";
         serviceRO.source = "MyService";
         serviceRO.addEventListener(FaultEvent.FAULT, faultListener);
         serviceRO.getData.addEventListener(ResultEvent.RESULT, resultListener);
    Now, here's the server side directory structure that works for me....
    webroot
    + sampleproj
    ++ public
    +++ index.php (index file for the webapp)
    +++ MyService.php (this is the service class)
    +++ VOAuthor.php (this is the Value Object class)
    Since the index file, and the service file and value object are all in same directory, it works.
    This is what DOESN'T work....
    webroot
    + sampleproj
    ++ services
    +++ MyService.php (this is the service class)
    ++ vos
    +++ VOAuthor.php (this is the Value Object class)
    ++ public
    +++ index.php (index file for the webapp)
    The error that I get is:
    Channel.Connect.Failed error
    Here's little of something that's going on in index.php
    <?php
    require_once ('C:/webtools/zendframework/zf/library/Zend/Amf/Server.php');
    require_once ( realpath(dirname(__FILE__) . '/../services/MyService.php') );
    $server = new Zend_Amf_Server();
    $server->setClass("MyService"); // adding the class to AMF server
    $server->setClassMap("VOAuthor", "VOAuthor"); // mapping the ActionScript VO to PHP VO
    echo($server->handle());
    ?>
    My guess is that in ActionScript code I have to do something with RemoteObject's endpoint.
    Can anybody please help me out with this?
    Thanks and Regards
    ShiVik

    The problem turned out to be in the php code.
    Here's how I changed it
    <?php
    require_once ('C:/webtools/zendframework/zf/library/Zend/Amf/Server.php');
    $server = new Zend_Amf_Server();
    // the following methods provide the lazy loading of services and value objects
    $server->addDirectory( realpath(dirname(__FILE__) . "/../services/") );
    $server->addDirectory( realpath(dirname(__FILE__) . "/../vos/") );
    echo($server->handle());
    ?>
    Earlier I wasn't taking into account the change of directories for service and value object files.
    Thanks and Regards
    ShiVik

  • Server side include problem in DW design mode

    I am having issues with one computer out of three...Using DW
    8 on Mac OS 10.4 Intel....
    I have a server-side include set up to contain my navigation
    (nav.shtml) inside of a DW template, and normally, the editable
    regions can be worked in and the SSI area comes up blank until the
    file is uploaded to the server (which is OK...).
    On the third computer, however, the SSI area is actually
    visible in DW, but the Editable Region containing the main content
    area doesn't even show up, therefore we cannot work on web pages on
    that computer. I know this must be a setting having to do with
    using DW and a Mac as a web server, but I cannot find it! Anyone
    have any clues?
    Thanks so much!

    Can you describe teh details of the problem, please?
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "Phil Cornish" <[email protected]> wrote in
    message
    news:g8eosb$ijq$[email protected]..
    >I have this same problem on a Win XP
    machine...HELP!!!!!!!!!!

Maybe you are looking for

  • Office 2013, after windows/office updates recently, pdf add-in no longer works

    We have a user who has Windows 7 Enterprise 64-bit, Office 2013 (32-bit) and Adobe Acrobat XI Pro.  They used to be able to "save as pdf" from word, but can no longer do it and gets the error "word is running into problems with the 'acrobat pdfmaker

  • Not able to create an account!

    Hello, I have made purchase of $800 in store yesterday and online $200. I got the rewards card yesterday but when i try to add to the account it says phone number does not match with the ID! Please help me out as this is irritating! 1000 points it se

  • BP duplication check

    Hi All I need to check if duplicate BP are getting created from WEB ui.Please guide me where configuration should be done. I need to populate if  Duplicate BP is getting created.

  • How to replicated A table from R/3 to BW

    Is there any way /solution to bring in one table from R/3 system to the bw system without using ODS? I need to bring in DRAD table from R/3 to bw and write a simple query on it and displayed it on the web ? If there is a solution for this? Thank you

  • External isight

    Does apple even make an external isight and if so can it be used in ichat instead of the built in isight?