Seeking within client buffer in OSMF player flushes the client buffer

Hi,
I have problem with maintaining aspect ratio of the video in osmf. I have 4:6 video which I want to display as it is but the problem is that if I use ScaleMode.NONE then since my player width and height is 640 and 360 respectively but the video height and width are greater so video does not come properly it goes out of media container how can I resize my video based on player height maintaining the scale of 4:6.
Regards,
Amit

Hi Amit,
Did you try using ScaleMode.LETTERBOX?
You can verify the scale mode behavior using Flash Media Playback setup tool: http://www.osmf.org/configurator/fmp/
Flash Media Playback is build on top of of OSMF, so you should experience the same behavior.
-Andrian
p.s. how is this related to seeking? (and yes, the player should not flush the client buffer, as far as I know. Please report the issue here: http://bugs.adobe.com/jira/browse/FM )

Similar Messages

  • How to send echo msg to client after regular time to verify the client

    Hi
    I have socket program which used for communicating information. tow part client and server.
    I am having problem. that is I want to send a msg to client (like echo) after some time duration. so how to do that?
    help
    Kapila

    This is the run method of inner class. when the sever is ideal, the sever has to send the msg to client. I think that I want to declare the this part "byte[] b = byteConcatenate(header, responsefornac,response.length); and out.write(b);" elsewhere. first I want to check the server is ideal then if it is ok, send the msg to client.
    problem is how to recognise the client?
              * Description : This inner class is used for handling the client session
         protected class SessionPda implements Runnable
    //********************************** DECLARATION OF COMMON VARIABLES ******************************************
         protected     byte[]      request;
         protected     byte[]      response;
         protected      byte[]      header;
         protected      byte[]      requestforserver;
         protected      byte[]      responsefornac;
         protected      Socket      client               ;
    //********************************** DEFINE CONSTRACTOR********************************************************
              * Description : This method is using for getting the opening client socket
              * @param e
         public SessionPda(Socket client)
         try
         this.client      =      client;
         catch (Exception e)
              System.out.println(">>>>>>>>>>>>>> This is error is occured when getting the opened clint socket at the inner sessionpda class in serve.>>>>>>>>>>>>>>>>>");
                   SysLog.logError(java.util.logging.Level.SEVERE, this.toString(), "Sessionpda()", StackTraceUtil.getStackTrace(e));
         header                     =      new byte[HEADER_SIZE];
         request                =      new byte[PACKET_SIZE];
         response                =      new byte[PACKET_SIZE];
         requestforserver      =      new byte[PACKET_SIZE];
         responsefornac           =      new byte[PACKET_SIZE];
    //********************************** OVERRIDING THE RUN METHOD IN JAVA LANG THREAD ****************************************************
              * Description : The proccessing the cliet sessionpda
              * @param request
              * @param respons
              public void run()
              try
                   while (true)
                        in     =     new     DataInputStream(client.getInputStream())     ;
                        out     =     new DataOutputStream(client.getOutputStream())     ;
                   //PRINTING THE REQUEST INFO-----------------------------------
                        int     len     =     in.read(request,0,PACKET_SIZE)                    ;
                        String recvString = "";
         for (int i = 0; i < len; i++)
              recvString +=adjustString(Integer.toHexString( (int) (request)));
         // System.out.println("Request Information :"+recvString);
         //PEPARING TO TO PRCESS--------------------------------------
         for (int j = 0; j < PACKET_SIZE - 3 ; j++)
                   requestforserver[j] = request[j + 3];
         Process p = ProcessFactory.getProcess(request);
         boolean redo = p.doProcess();
         ISOMsg m = new ISOMsg();
    m = p.getResponse();
    m.setPackager(new ISO87BPackager());
    response = m.pack();
    //PEPARATRING TO SEND BACK THE RESPOND----------------------
    header[1] = (byte) (response.length + 5);
              header[3] = (byte) 00;
              responsefornac[0] = (byte) Integer.parseInt(NII.substring(1,3),16); //17;
              for (int k = 0; k < response.length; k++)
                   responsefornac[k + 1] = response[k];
              byte[] b = byteConcatenate(header, responsefornac,response.length);
              out.write(b);
              out.flush();
    String sendinString = "";
    for (int i = 0; i < response.length + 5; i++)
         sendinString +=
              adjustString(Integer.toHexString( (int) (b[i])));
    SysLog.logInfo(java.util.logging.Level.INFO,"Response \n"+ sendinString);

  • Stopping the player at the client machine independent of the server playing

    can anyone help me i need to allow the client to stop a player independent of the server transmitting the movie. can anyone help me plz!!
    here are rhe codes for the client and the client gui
    import javax.swing.*;
    import javax.swing.UIManager;
    import java.awt.*;
    import java.awt.event.*;
    public class ClientChoice
         public static void main(String args[])
              try
                             UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
                        catch(Exception e)
         }//main
         JFrame frame=new JFrame("--- New Line Movie ---");
         //Create the menu bar
         JMenuBar menuBar;
         JMenu menu;
         menuBar = new JMenuBar();
         //Build the file menu in the menu bar
         menu = new JMenu("File");
         menu.setMnemonic(KeyEvent.VK_F);
         menuBar.add(menu);
         JMenuItem menuItem= new JMenuItem("Exit",KeyEvent.VK_X);
         menuItem.addActionListener(new ActionListener()
              public void actionPerformed(ActionEvent e)
                        System.exit(0);
         menu.add(menuItem);
         //Build help menu in the menu bar.
         menu = new JMenu("Help");
         menu.setMnemonic(KeyEvent.VK_H);
         menuBar.add(menu);
         JMenuItem help_item=new JMenuItem("Help Topics",KeyEvent.VK_T);
         menu.add(help_item);
         JMenuItem about_item=new JMenuItem("About Us");
         menu.add(about_item);
         frame.setJMenuBar(menuBar);
              ImageIcon icon=new ImageIcon("images/potter.jpg","");
              JButton clickmovie=new JButton(icon);
              //final JLabel latest=new JLabel("<html><caption>Harry Potter</caption></html>");
              //clickmovie.add(latest);
              final JLabel welcome1=new JLabel("<html><font color=blue face=arial size=3><strong>New Line Movie</strong> gives you the possibility to view your favorite movies.<br>You can choose your category of movies below and click on any movie to get more information about it. <br>Latest News about new movies are also available. ENJOY!!!</font></html>");
              frame.getContentPane().add(welcome1,BorderLayout.EAST);
              final JLabel copyright=new JLabel("<html><font color=blue face=arial size=3><p align=center>&copy Copyright 2004</p></font></html>");
              //frame.getContentPane().add(copyright,BorderLayout.EAST);
              JPanel actionPanel=new JPanel();
              JPanel cartoonPanel=new JPanel();
              JPanel comedyPanel=new JPanel();
              JPanel fictionPanel=new JPanel();
              JPanel mainPanel=new JPanel();
              mainPanel.setLayout(new GridLayout(2,1,5,5));
              mainPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
              mainPanel.add(actionPanel);
              mainPanel.add(cartoonPanel);
              mainPanel.add(comedyPanel);
              mainPanel.add(fictionPanel);
              //mainPanel.add(copyright);
              actionPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("Action"),BorderFactory.createEmptyBorder(5,5,5,5)));
              cartoonPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("Cartoon"),BorderFactory.createEmptyBorder(5,5,5,5)));
              comedyPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("Comedy"),BorderFactory.createEmptyBorder(5,5,5,5)));
              fictionPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("Science Fiction"),BorderFactory.createEmptyBorder(5,5,5,5)));
              frame.getContentPane().add(mainPanel,BorderLayout.SOUTH);
              frame.getContentPane().add(clickmovie,BorderLayout.WEST);
              // Create combo box with action movies choices
              final JComboBox actionChoices;
              String[] actionmovie={"-Select a movie-","X-Men","Spiderman"};
              actionChoices=new JComboBox(actionmovie);
              actionChoices.setSelectedIndex(0);
              actionPanel.add(actionChoices);
              actionChoices.addActionListener(new ActionListener()
                   public void actionPerformed(ActionEvent e)
                        JComboBox cb = (JComboBox)e.getSource();
                        String act = (String)cb.getSelectedItem();
                        if(act=="X-Men")
                             JFrame action_xmen= new JFrame("--- New Line Movie: X-Men --- ");
                   action_xmen.setSize(400,350);
                   JPanel main=new JPanel();
                   main.setLayout(new GridLayout(2,1,5,5));
                             main.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
                             ImageIcon icon_men=new ImageIcon("images/x-men.jpg","");
                   JButton clickmovie_men=new JButton(icon_men);
                   final JLabel xmen_overview=new JLabel("<html><font color=blue face=arial size=3><b>Title:</b></font> <font color=black><strong>X-Men 2 </strong></font> <br><br><font color=blue face=arial size=3><b>Starring:</b> Hugh JACKMAN and Halle BARRY<br><br><b>Story:</b> The time has come for those who are different to stand united. <br><br>A military officer with a link to Wolverine's mysterious past conspires <br><br>to eradicate the mutant population for once and all. In order to defeat <br><br>this new menace, the X-men will be forced to join forces with Magneto. <br><br><b>Duration:</b> 1hr45min </font></html>");
                   final JLabel copyright=new JLabel("<html><font color=blue face=arial size=3><p align=center>&copy Copyright 2004</p></font></html>");
                             action_xmen.getContentPane().add(copyright,BorderLayout.SOUTH);
                   JButton view=new JButton("View");
                   view.setLayout(new BoxLayout(view,BoxLayout.X_AXIS));
                                            view.add(Box.createHorizontalGlue());
                             view.add(Box.createRigidArea(new Dimension(30,0)));
                   view.setMinimumSize(new Dimension(20,100));
                   view.setPreferredSize(new Dimension(20,100));
                   view.setMaximumSize(new Dimension(Short.MAX_VALUE,Short.MAX_VALUE));
                   view.setMnemonic('v');
                   view.addActionListener(new ActionListener()
                                  public void actionPerformed(ActionEvent e)
                                            String a="172.22.45.44/42050";
                                            String b="172.22.45.44/42052";
                                            String argv=a+b;
                                            Client cl= new Client(a,b);
                                            String[] c={a,b};
                                            cl.mainCl(c);
                                            //this is the code i added so that on clicking the view button
                                            //the client is automatically connected to the server and the player
                                            //plays on the current machine
                   main.add(clickmovie_men);
                             main.add(view);
                             //action_xmen.getContentPane().add(view,BorderLayout.SOUTH);
                   action_xmen.getContentPane().add(main,BorderLayout.WEST);
                   action_xmen.getContentPane().add(xmen_overview,BorderLayout.EAST);
                   action_xmen.show();
                        else if(act=="Spiderman")
                             JFrame action_spider= new JFrame("--- New Line Movie: Spiderman --- ");
                             action_spider.setSize(400,350);
                   action_spider.show();
              //Create combo box with cartoon movies choices
              JComboBox cartoonChoices=null;
              String[] cartoonmovie={"-Select a movie-","Le Roi Lion"};
              cartoonChoices=new JComboBox(cartoonmovie);
              cartoonChoices.setSelectedIndex(0);
              cartoonPanel.add(cartoonChoices);
              //cartoonChoices.addActionListener();
              //Create combo box with comedy movies choices
              JComboBox comedyChoices=null;
              String[] comedymovie={"-Select a movie-"};
              comedyChoices=new JComboBox(comedymovie);
              comedyChoices.setSelectedIndex(0);
              comedyPanel.add(comedyChoices);
              //comedyChoices.addActionListener();
              //Create combo box with fiction movies choices
              JComboBox fictionChoices=null;
              String[] fictionmovie={"-Select a movie-","ET"};
              fictionChoices=new JComboBox(fictionmovie);
              fictionChoices.setSelectedIndex(0);
              fictionPanel.add(fictionChoices);
              //fictionChoices.addActionListener();
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.pack();
              frame.setVisible(true);
    //Implement player function here
    import java.io.*;
    import java.awt.*;
    import java.net.*;
    import java.awt.event.*;
    import java.util.Vector;
    import javax.media.*;
    import javax.media.rtp.*;
    import javax.media.rtp.event.*;
    import javax.media.rtp.rtcp.*;
    import javax.media.protocol.*;
    import javax.media.protocol.DataSource;
    import javax.media.format.AudioFormat;
    import javax.media.format.VideoFormat;
    import javax.media.Format;
    import javax.media.format.FormatChangeEvent;
    import javax.media.control.BufferControl;
    * Client to receive RTP transmission using the RTPConnector.
    public class Client implements ReceiveStreamListener, SessionListener,
         ControllerListener
    String sessions[] = null;
    RTPManager mgrs[] = null;
    Vector playerWindows = null;
    boolean dataReceived = false;
    Object dataSync = new Object();
    public Client(String sessions[]) {
         this.sessions = sessions;
    public Client(String a, String b)
         }//constructor
    protected boolean initialize() {
    try {
         mgrs = new RTPManager[sessions.length];
         playerWindows = new Vector();
         SessionLabel session;
         // Open the RTP sessions.
         for (int i = 0; i < sessions.length; i++) {
              // Parse the session addresses.
              try {
              session = new SessionLabel(sessions);
              } catch (IllegalArgumentException e) {
              System.err.println("Failed to parse the session address given: " + sessions[i]);
              return false;
              System.err.println(" - Open RTP session for: addr: " + session.addr + " port: " + session.port + " ttl: " + session.ttl);
              mgrs[i] = (RTPManager) RTPManager.newInstance();
              mgrs[i].addSessionListener(this);
              mgrs[i].addReceiveStreamListener(this);
              // Initialize the RTPManager with the RTPSocketAdapter
              mgrs[i].initialize(new RTPSocketAdapter(
                             InetAddress.getByName(session.addr),
                             session.port, session.ttl));
              // You can try out some other buffer size to see
              // if you can get better smoothness.
              BufferControl bc = (BufferControl)mgrs[i].getControl("javax.media.control.BufferControl");
              if (bc != null)
              bc.setBufferLength(350);
    } catch (Exception e){
    System.err.println("Cannot create the RTP Session: " + e.getMessage());
    return false;
         // Wait for data to arrive before moving on.
         long then = System.currentTimeMillis();
         long waitingPeriod = 30000; // wait for a maximum of 30 secs.
         try{
         synchronized (dataSync) {
              while (!dataReceived &&
                   System.currentTimeMillis() - then < waitingPeriod) {
              if (!dataReceived)
                   System.err.println(" - Waiting for RTP data to arrive...");
              dataSync.wait(1000);
         } catch (Exception e) {}
         if (!dataReceived) {
         System.err.println("No RTP data was received.");
         close();
         return false;
    return true;
    public boolean isDone() {
         return playerWindows.size() == 0;
    * Close the players and the session managers.
    protected void close() {
         for (int i = 0; i < playerWindows.size(); i++) {
         try {
              ((PlayerWindow)playerWindows.elementAt(i)).close();
         } catch (Exception e) {}
         playerWindows.removeAllElements();
         // close the RTP session.
         for (int i = 0; i < mgrs.length; i++) {
         if (mgrs[i] != null) {
    mgrs[i].removeTargets( "Closing session from AVReceive3");
    mgrs[i].dispose();
              mgrs[i] = null;
    PlayerWindow find(Player p) {
         for (int i = 0; i < playerWindows.size(); i++) {
         PlayerWindow pw = (PlayerWindow)playerWindows.elementAt(i);
         if (pw.player == p)
              return pw;
         return null;
    PlayerWindow find(ReceiveStream strm) {
         for (int i = 0; i < playerWindows.size(); i++) {
         PlayerWindow pw = (PlayerWindow)playerWindows.elementAt(i);
         if (pw.stream == strm)
              return pw;
         return null;
    * SessionListener.
    public synchronized void update(SessionEvent evt) {
         if (evt instanceof NewParticipantEvent) {
         Participant p = ((NewParticipantEvent)evt).getParticipant();
         System.err.println(" - A new participant had just joined: " + p.getCNAME());
    * ReceiveStreamListener
    public synchronized void update( ReceiveStreamEvent evt) {
         RTPManager mgr = (RTPManager)evt.getSource();
         Participant participant = evt.getParticipant();     // could be null.
         ReceiveStream stream = evt.getReceiveStream(); // could be null.
         if (evt instanceof RemotePayloadChangeEvent) {
         System.err.println(" - Received an RTP PayloadChangeEvent.");
         System.err.println("Sorry, cannot handle payload change.");
         System.exit(0);
         else if (evt instanceof NewReceiveStreamEvent) {
         try {
              stream = ((NewReceiveStreamEvent)evt).getReceiveStream();
              DataSource ds = stream.getDataSource();
              // Find out the formats.
              RTPControl ctl = (RTPControl)ds.getControl("javax.media.rtp.RTPControl");
              if (ctl != null){
              System.err.println(" - Recevied new RTP stream: " + ctl.getFormat());
              } else
              System.err.println(" - Recevied new RTP stream");
              if (participant == null)
              System.err.println(" The sender of this stream had yet to be identified.");
              else {
              System.err.println(" The stream comes from: " + participant.getCNAME());
              // create a player by passing datasource to the Media Manager
              Player p = javax.media.Manager.createPlayer(ds);
              if (p == null)
              return;
              p.addControllerListener(this);
              p.realize();
              PlayerWindow pw = new PlayerWindow(p, stream);
              playerWindows.addElement(pw);
              // Notify intialize() that a new stream had arrived.
              synchronized (dataSync) {
              dataReceived = true;
              dataSync.notifyAll();
         } catch (Exception e) {
              System.err.println("NewReceiveStreamEvent exception " + e.getMessage());
              return;
         else if (evt instanceof StreamMappedEvent) {
         if (stream != null && stream.getDataSource() != null) {
              DataSource ds = stream.getDataSource();
              // Find out the formats.
              RTPControl ctl = (RTPControl)ds.getControl("javax.media.rtp.RTPControl");
              System.err.println(" - The previously unidentified stream ");
              if (ctl != null)
              System.err.println(" " + ctl.getFormat());
              System.err.println(" had now been identified as sent by: " + participant.getCNAME());
         else if (evt instanceof ByeEvent) {
         System.err.println(" - Got \"bye\" from: " + participant.getCNAME());
         PlayerWindow pw = find(stream);
         if (pw != null) {
              pw.close();
              playerWindows.removeElement(pw);
    * ControllerListener for the Players.
    public synchronized void controllerUpdate(ControllerEvent ce) {
         Player p = (Player)ce.getSourceController();
         if (p == null)
         return;
         // Get this when the internal players are realized.
         if (ce instanceof RealizeCompleteEvent) {
         PlayerWindow pw = find(p);
         if (pw == null) {
              // Some strange happened.
              System.err.println("Internal error!");
              System.exit(-1);
         pw.initialize();
         pw.setVisible(true);
         p.start();
         if (ce instanceof ControllerErrorEvent) {
         p.removeControllerListener(this);
         PlayerWindow pw = find(p);
         if (pw != null) {
              pw.close();
              playerWindows.removeElement(pw);
              //p.close(); //i added to know if player close when click
         System.err.println("Client internal error: " + ce);
    * A utility class to parse the session addresses.
    class SessionLabel {
         public String addr = null;
         public int port;
         public int ttl = 1;
         SessionLabel(String session) throws IllegalArgumentException {
         int off;
         String portStr = null, ttlStr = null;
         if (session != null && session.length() > 0) {
              while (session.length() > 1 && session.charAt(0) == '/')
              session = session.substring(1);
              // Now see if there's a addr specified.
              off = session.indexOf('/');
              if (off == -1) {
              if (!session.equals(""))
                   addr = session;
              } else {
              addr = session.substring(0, off);
              session = session.substring(off + 1);
              // Now see if there's a port specified
              off = session.indexOf('/');
              if (off == -1) {
                   if (!session.equals(""))
                   portStr = session;
              } else {
                   portStr = session.substring(0, off);
                   session = session.substring(off + 1);
                   // Now see if there's a ttl specified
                   off = session.indexOf('/');
                   if (off == -1) {
                   if (!session.equals(""))
                        ttlStr = session;
                   } else {
                   ttlStr = session.substring(0, off);
         if (addr == null)
              throw new IllegalArgumentException();
         if (portStr != null) {
              try {
              Integer integer = Integer.valueOf(portStr);
              if (integer != null)
                   port = integer.intValue();
              } catch (Throwable t) {
              throw new IllegalArgumentException();
         } else
              throw new IllegalArgumentException();
         if (ttlStr != null) {
              try {
              Integer integer = Integer.valueOf(ttlStr);
              if (integer != null)
                   ttl = integer.intValue();
              } catch (Throwable t) {
              throw new IllegalArgumentException();
    * GUI classes for the Player.
    class PlayerWindow extends Frame {
         Player player;
         ReceiveStream stream;
         PlayerWindow(Player p, ReceiveStream strm) {
         player = p;
         stream = strm;
         public void initialize() {
         add(new PlayerPanel(player));
         public void close() {
         player.close();
         setVisible(false);
         dispose();
         public void addNotify() {
         super.addNotify();
         pack();
    * GUI classes for the Player.
    class PlayerPanel extends Panel {
         Component vc, cc;
         PlayerPanel(Player p) {
         setLayout(new BorderLayout());
         if ((vc = p.getVisualComponent()) != null)
              add("Center", vc);
         if ((cc = p.getControlPanelComponent()) != null)
              add("South", cc);
         public Dimension getPreferredSize() {
         int w = 0, h = 0;
         if (vc != null) {
              Dimension size = vc.getPreferredSize();
              w = size.width;
              h = size.height;
         if (cc != null) {
              Dimension size = cc.getPreferredSize();
              if (w == 0)
              w = size.width;
              h += size.height;
         if (w < 160)
              w = 160;
         return new Dimension(w, h);
    public static void mainCl(String argv[])
         if (argv.length == 0)
         prUsage();
         Client avReceive = new Client(argv);
         if (!avReceive.initialize()) {
         System.err.println("Failed to initialize the sessions.");
         System.exit(-1);
         // Check to see if Client is done.
         try {
         while (!avReceive.isDone())
              Thread.sleep(1000);
         } catch (Exception e) {}
         System.err.println("Exiting Client");
    static void prUsage() {
         System.err.println("Usage: Client <session> <session> ...");
         System.err.println(" <session>: <address>/<port>/<ttl>");
         System.exit(0);
    }// end of Client

    hi,
    i have try compile your source code...anyway, there is 28 errors..I m not sure where is the errors come from. Currently , i m working on the same project as you. Trying to play the media at client machine, but stil can't manage to do so. Can i have your email address? I want to consult you a bit about my project .Is it ok? Thanks =).

  • Auto install flash player to the client where the flash.exe was located on serve

    Good day!
    I created an intranet site for the company and it is on the server, so the staff can view it. My webpage consist of flash for the viewing of images. The problem is the client who can view my webpage has no flash installer or totally no flash installed on their computer. Actually I have a flash.exe or flash installer in my server. I want to happen is when they view my webpage there is a pop up message for the auto install of flash installer and once they click automatically the flash would be installed. I mean the location of installer in the server they can catch? Is it possible?
    Honestly, I have no idea about it. I have a lot of idea and questions in my mind on how the client can have the installer through pop up or any way.
    Thank you

    It is definitely not something you can do with Flash Player; especially when the Player is not even installed on the client side.
    You will need to do something with Flash or ActionScript, so you better ask in the Flash or ActionScript forum.

  • DHCP-The number of current clients in Overview do not match the Clients

    Hi, I have a big issue that I'm unable to resolve. In our old server running 10.3.9 DHCP is running. In the overview is shows that 99 clients are currently on but when I click on the Clients tab it only shows about 26, which is accurate. The problem is that lately some of the people that work here cannot get on the network or the whole network starts acting up (internet interruptions, access to server freezes momentarily, etc.). At first, I thought it was a T1 problem (ruled that out), then maybe the router (ruled that out) and then I thought it was the Switch (which I'm hoping to rule out). I then realized the problem mentioned above in the Server Admin application.
    1) I tried getting rid of the preferences but that didn't work
    2) I then went to the /var/db/dhcpd_leases and sure enough most the addresses are taken. I tried editing but since it is one of those hidden files I decided to ask first if someone has any recommendation to solve this problem.
    Thanks.

    Hi, I have a big issue that I'm unable to resolve. In our old server running 10.3.9 DHCP is running. In the overview is shows that 99 clients are currently on but when I click on the Clients tab it only shows about 26, which is accurate. The problem is that lately some of the people that work here cannot get on the network or the whole network starts acting up (internet interruptions, access to server freezes momentarily, etc.). At first, I thought it was a T1 problem (ruled that out), then maybe the router (ruled that out) and then I thought it was the Switch (which I'm hoping to rule out). I then realized the problem mentioned above in the Server Admin application.
    1) I tried getting rid of the preferences but that didn't work
    2) I then went to the /var/db/dhcpd_leases and sure enough most the addresses are taken. I tried editing but since it is one of those hidden files I decided to ask first if someone has any recommendation to solve this problem.
    Thanks.

  • App-V 5 Full Infrastructure Apps take long time to stream to the client

    Hi was wondering if anyone has the same issue as i am or knows a fix for this, below is my problem and the troubleshooting i have done.
    Overview of problem
    App-V 5 apps delivered via App-V 5 full infrastructure take a long time to stream to the client and this means the user has to wait if they try and run an application before it has streamed to the client. Users sometimes have to
    wait 2 or 3 minutes for an application to stream and this is about 40 times slower than basic SMB and HTTP transfer tests show the system is capable of (see performance results below).
    App-V 4.6 apps delivered via App-V 4.6 full infrastructure and HTTP streaming are fine.
    Overview of environment
    App-V 5.0 SP1 Full Infrastructure.
    App-V servers are running Server 2012 on Hyper-V 3 or ESX 5.1 with 2 x vCPU and 4GB RAM.
    SQL servers are a SQL 2012 cluster.
    Separate servers for SQL, management, publishing, content and reporting.
    Management, Publishing and Content servers have two servers per role and NLB to provide load balancing. So 7 servers (2 x Man, 2 x Pub, 2 x Content, 1 x Reporting)
    Two further sites with 2 x Pub and 2 x Content each. All publishing servers pointed at the load balance address for management.
    Content delivered via HTTP
    Clients are physical desktops and laptops running Windows 7 SP1 x86 and Windows 8 x86
    App-V client is 5.0SP1
    Clients are pointed at their nearest publishing server NLB via a script which looks up the client IP address and uses PowerShell to configure the publishing server
    Content is streamed from the nearest content server NLB by setting the PackageSourceRoot to the nearest content NLB (via the same PowerShell script above).
    App-V apps delivered per-user via AD group. One AD group per application. Approximately 200 App-V apps published so far - will eventually reach 400 as we sequence more. About 9000 users.
    Analysis performed so far
    Servers not heavily loaded. CPU averages 5%. Lots of RAM free. Very low disk IO. Problem also occurs out-of-hours so we are 99.9% certain that server resources are not a cause.
    Streaming performance is the same from all 6 content servers and all 3 NLB addresses (tested by changing the value of PackageSourceRoot). Wireshark used to confirm packages are really streaming from the correct location, enforcing
    our belief that the problem isn't at the server end (unless all 6 servers are affected).
    Streaming via both HTTP and SMB2.1 is approximately the same (tested by changing the value of PackageSourceRoot between http://xxxx and \\server\AppVContent).
    Wireshark used to confirm we really are using the protocol we think we are using.
    All clients exhibit the same behaviour. Issue reported by many users. 5 test PCs chosen at random at all 3 sites confirmed to have the slow streaming problem.
    Slow streaming from both Hyper-V and VMware ESX servers.
    Client not heavily loaded.
    Affects all App-V apps although it obviously affects the larger ones more.
    All App-V apps have a Feature Block 1 setup.
    If we copy the ".appv" file from the server to the client via either HTTP or SMB then it's reasonably quick (up to 480Mb/s). So we don't believe the network or servers are at fault. For example:
    We can copy a 149MB .appv file via SMB from the content server to the client in 5 seconds.
    We copy HTTP download the .appv file from the content server using IE on the client in 5 seconds.
    But if you ask the App-V 5 client to fully download the sequence then it takes 2 - 3 minutes.
    The App-V 4.6 client takes about 8 - 10 seconds to fully download a similar sized application.
    App-V 5 publishing works fine - when a new user logs on they get their list of application straight away, it's just the streaming which is slow.
    Once the App-V app has streamed locally it runs fine and with a decent performance.
    Looking at a Wireshark trace of the streaming you can see that the slow performance is due to the transfer stopping and starting a lot. You only notice this when you zoom into the performance graph a fair bit.
    Each time the HTTP server stops sending traffic, it doesn't start again until the client sends a "TCP Window update". Each "stop" is of a different length, but just taking a few from the middle I get 0.06s, 0.11s,
    0.13s wasted etc.
    I can see that it's the client stopping the transfer by reducing its advertised TCP Window Size. I'll provide an example:
    Server sends 9 x 1514 bytes. Client responds with an ACK and a Window size of 54016 bytes (256x211)
    Server sends 11 x 1514 bytes. Client responds with an ACK and a Window size of 37888 bytes (256x148)
    Server sends 10 x 1514 bytes. Client responds with an ACK and a Window size of 23296 bytes (256x91)
    Server sends 15 x 1514 bytes. Client responds with an ACK and a Window size of 1280 bytes (5 x 256)
    Server stops sending (I'm guessing because the client advertised Window size was less than a single packet's worth of bytes)
    <0.1 seconds passes>
    Client sends a "TCP Window Update" re-advertising a TCP window size of 65536 (256x256).
    Server starts transmitting again
    So the way I see this is that the App-V 5 client is controlling the transfer speed by utilising TCP Window flow control. The trace was taken at the client end so there's no room for anything on the network to be fiddling with flow
    control (and we've confirmed there are no traffic shapers in the loop).
    We've also tried streaming directly from the local client by copying some App-V 5 apps down to the client, creating a SMB share on the client and changing PackageSourceRoot to \\localhost\AppVContent (i.e. so we are streaming directly
    from the client to the client - to remove the network from the equation) and there is only an improvement of 5 to 10 seconds. So we know it's nothing to do with the network or the servers.
    We've tried turning off TCP auto-tuning on the client with:
    netsh interface tcp set global autotuninglevel=disabled
    and turning off TCP chimney offloading (which is off anyway because the NIC doesn't support it and Netstat -t output shows "InHost" for offload state for all connections) with:
    netsh int tcp set global chimney=disabled
    and nothing has improved.
    So we've now focussed on the extraction of the .appv (ZIP) file on the client.
    Using Windows Explorer it takes 75 seconds to extract the ZIP file
    Using 7ZIP it takes 9 seconds to extract the ZIP file
    Yeah we've always known that the Explorer ZIP engine is terrible. That's why we use 7ZIP or WinRAR on our clients.
    So we've started to wonder if the problem with the slow App-V 5 streaming is because the client is downloading the .appv file and extracting it as it goes along in a single thread. If the App-V 5 client is using the same terrible
    ZIP engine that Explorer does then that would explain the slow performance. The "download" appears to take a long time because the client is using TCP flow control to slow the transfer since it's extracting the .appv file using a very slow ZIP engine
    and it's all in a single thread.

    Guys,
    Just wanted to give you a brief update basically close this thread as Answered.
    We had submitted 4 App-V 5 Bugs to Microsoft and these were reproducible and an explanation was given on work around to them. Microsoft
    sent down a App-v developer to have a look at our problems. They said they will try and include the Bug fixes in SP2 which should be out in a few weeks or they will definitely be included in SP3.
    In regards to the slow streaming it all came down to the Disk IO.
    We found that you could simply enable "Turn off
    Windows write-cache buffer flushing on the device", then start streaming the app and then disable "Turn
    off Windows write-cache buffer flushing on the device" immediately after
    (we don't want to leave it on) and that basically fixed the issue.
    But a normal user would not have permissions to do
    this, so a code was written to enable and disable this option.
    Apology for not going in detail, like my opening thread, its very late. 
    but if you would like a detailed analysis please message me.
    I would like to Thank the Talented Consultant who designed and implemented are App-V infrastructure who found the bugs and created all
    the work around and who also emailed the detailed analysis of the problems to Microsoft that got them interested.
    Simon Bond from Ultima Business Solutions.
    Thank you

  • How could I run the client

    I deployed an ejb bean and client on a server. I actually run the deploytool on the server machine. Now I want to run the client from a different machine. I took the client jar the deploytool created and run it on the client machine but it gave me the following message
    Root exception is omg.org.CORBA.COMM_FAILURE minor code 1398079689 completed no.
    Anybody know how to solve this problem?
    To explain the problem again with example: I created an application (.ear) file on the server machine. I copied the ear file and the client jar file to another machine. I run the client.jar from the new machine (client). And I got the above message

    Apologises. The URL in the last post is about JMS setup rather than EJB applications. I suspect that within client.jar or somewhere else on the client machine there will be a jndi.properties file that isn't correctly configured or perhaps doesn't reflect the location of your server.

  • What is the default buffer size if we dont specify in buffer write?

    If we dont specify what is the default buffer size in BufferedWriter. How to increase/decrease the size of it?
    What is the purpose of flush?
    If flush() is not used, only partial content is written to the file. Is it because of the default size of the buffer.

    THis is the bufferedwriter class, it helps to look at them, look at the bold underlined, thats answers your defualt buffer size
    * @(#)BufferedWriter.java     1.26 03/12/19
    * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
    * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
    package java.io;
    * Write text to a character-output stream, buffering characters so as to
    * provide for the efficient writing of single characters, arrays, and strings.
    * <p> The buffer size may be specified, or the default size may be accepted.
    * The default is large enough for most purposes.
    * <p> A newLine() method is provided, which uses the platform's own notion of
    * line separator as defined by the system property <tt>line.separator</tt>.
    * Not all platforms use the newline character ('\n') to terminate lines.
    * Calling this method to terminate each output line is therefore preferred to
    * writing a newline character directly.
    * <p> In general, a Writer sends its output immediately to the underlying
    * character or byte stream. Unless prompt output is required, it is advisable
    * to wrap a BufferedWriter around any Writer whose write() operations may be
    * costly, such as FileWriters and OutputStreamWriters. For example,
    * <pre>
    * PrintWriter out
    * = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
    * </pre>
    * will buffer the PrintWriter's output to the file. Without buffering, each
    * invocation of a print() method would cause characters to be converted into
    * bytes that would then be written immediately to the file, which can be very
    * inefficient.
    * @see PrintWriter
    * @see FileWriter
    * @see OutputStreamWriter
    * @version      1.26, 03/12/19
    * @author     Mark Reinhold
    * @since     JDK1.1
    public class BufferedWriter extends Writer {
    private Writer out;
    private char cb[];
    private int nChars, nextChar;
    private static int defaultCharBufferSize = 8192;
    * Line separator string. This is the value of the line.separator
    * property at the moment that the stream was created.
    private String lineSeparator;
    * Create a buffered character-output stream that uses a default-sized
    * output buffer.
    * @param out A Writer
    *public BufferedWriter(Writer out) {*
    *     this(out, defaultCharBufferSize);*
    * Create a new buffered character-output stream that uses an output
    * buffer of the given size.
    * @param out A Writer
    * @param sz Output-buffer size, a positive integer
    * @exception IllegalArgumentException If sz is <= 0
    public BufferedWriter(Writer out, int sz) {
         super(out);
         if (sz <= 0)
         throw new IllegalArgumentException("Buffer size <= 0");
         this.out = out;
         cb = new char[sz];
         nChars = sz;
         nextChar = 0;
         lineSeparator =     (String) java.security.AccessController.doPrivileged(
    new sun.security.action.GetPropertyAction("line.separator"));
    /** Check to make sure that the stream has not been closed */
    private void ensureOpen() throws IOException {
         if (out == null)
         throw new IOException("Stream closed");
    * Flush the output buffer to the underlying character stream, without
    * flushing the stream itself. This method is non-private only so that it
    * may be invoked by PrintStream.
    void flushBuffer() throws IOException {
         synchronized (lock) {
         ensureOpen();
         if (nextChar == 0)
              return;
         out.write(cb, 0, nextChar);
         nextChar = 0;
    * Write a single character.
    * @exception IOException If an I/O error occurs
    public void write(int c) throws IOException {
         synchronized (lock) {
         ensureOpen();
         if (nextChar >= nChars)
              flushBuffer();
         cb[nextChar++] = (char) c;
    * Our own little min method, to avoid loading java.lang.Math if we've run
    * out of file descriptors and we're trying to print a stack trace.
    private int min(int a, int b) {
         if (a < b) return a;
         return b;
    * Write a portion of an array of characters.
    * <p> Ordinarily this method stores characters from the given array into
    * this stream's buffer, flushing the buffer to the underlying stream as
    * needed. If the requested length is at least as large as the buffer,
    * however, then this method will flush the buffer and write the characters
    * directly to the underlying stream. Thus redundant
    * <code>BufferedWriter</code>s will not copy data unnecessarily.
    * @param cbuf A character array
    * @param off Offset from which to start reading characters
    * @param len Number of characters to write
    * @exception IOException If an I/O error occurs
    public void write(char cbuf[], int off, int len) throws IOException {
         synchronized (lock) {
         ensureOpen();
    if ((off < 0) || (off > cbuf.length) || (len < 0) ||
    ((off + len) > cbuf.length) || ((off + len) < 0)) {
    throw new IndexOutOfBoundsException();
    } else if (len == 0) {
    return;
         if (len >= nChars) {
              /* If the request length exceeds the size of the output buffer,
              flush the buffer and then write the data directly. In this
              way buffered streams will cascade harmlessly. */
              flushBuffer();
              out.write(cbuf, off, len);
              return;
         int b = off, t = off + len;
         while (b < t) {
              int d = min(nChars - nextChar, t - b);
              System.arraycopy(cbuf, b, cb, nextChar, d);
              b += d;
              nextChar += d;
              if (nextChar >= nChars)
              flushBuffer();
    * Write a portion of a String.
    * <p> If the value of the <tt>len</tt> parameter is negative then no
    * characters are written. This is contrary to the specification of this
    * method in the {@linkplain java.io.Writer#write(java.lang.String,int,int)
    * superclass}, which requires that an {@link IndexOutOfBoundsException} be
    * thrown.
    * @param s String to be written
    * @param off Offset from which to start reading characters
    * @param len Number of characters to be written
    * @exception IOException If an I/O error occurs
    public void write(String s, int off, int len) throws IOException {
         synchronized (lock) {
         ensureOpen();
         int b = off, t = off + len;
         while (b < t) {
              int d = min(nChars - nextChar, t - b);
              s.getChars(b, b + d, cb, nextChar);
              b += d;
              nextChar += d;
              if (nextChar >= nChars)
              flushBuffer();
    * Write a line separator. The line separator string is defined by the
    * system property <tt>line.separator</tt>, and is not necessarily a single
    * newline ('\n') character.
    * @exception IOException If an I/O error occurs
    public void newLine() throws IOException {
         write(lineSeparator);
    * Flush the stream.
    * @exception IOException If an I/O error occurs
    public void flush() throws IOException {
         synchronized (lock) {
         flushBuffer();
         out.flush();
    * Close the stream.
    * @exception IOException If an I/O error occurs
    public void close() throws IOException {
         synchronized (lock) {
         if (out == null)
              return;
         flushBuffer();
         out.close();
         out = null;
         cb = null;
    What Flush(); does
    Example, you have a file called c, your writer is b and buffereredwriter is a. so your programs calls a, a talks to b, and b talks to c. when you call the Flush method, the information is sent to the outfile which is c immediately before you even close the file, because when you write to the file, it does not write directly, it writes to a buffer, so flush actually causes the buffer to write to file. Also if you call the close method on that file without the flush, the buffer will still get flushed.
    consider BufferedWriter c = new BufferedWriter(new PrintWriter("c:\\c"));
    you wrap printwriter into a buffered writer, now if you close this "connection" to the file, the buffer will get flushed, noting that all the data is sitting in the buffered and not yet in the file, and this happens if something dont break...

  • New SCCM 2012 client machines still getting SCCM 2012 SP1 client not the new SCCM 2012 SP1 CU3 client

    Hi,
    I've successfully (as far as I can tell) deployed SCCM 2012 SP1 CU3 and all my existing clients are showing a client version of 5.00.7804.1400.  But when I setup a new client system recently I noticed that the client version was showing 5.00.7804.1000,
    and not 5.00.7804.1400. 
    For new client systems, do I need to redeploy the packages that were created for SCCM 2012 SP1 CU3 so that the new systems get the new SCCM 2012 SP1 CU3 client? 
    Thanks,
    Nick

    Hi,
    Here's some good information to look over:
    http://sccmfaq.wordpress.com/2013/09/24/sccm-2012-include-cu-in-osd/
    I haven't followed these instructions myself, since I haven't really had any good reason to include CUs during the initial installation process. I use this method instead and I've never run into any problems:
    http://www.ronnipedersen.com/2013/06/installing-sccm-2012-sp1-cu2-quick-start-guide/
    Don't retire TechNet! -
    (Don't give up yet - 12,575+ strong and growing)

  • How to setup the 'Client Licensing Mode' for Windows server?

    Hello,
    We will install the SBO server:
    OS: Windows Server 2003 Standard Edition
    SBO Clients: 150
    How should we setup the 'Client Licesing Mode' for the windows server?
    If we select the mode "Per server,Number of concurrent connections", how to set the connection number?
    Thanks in advance.
    Don

    Hi..
    you can set License to Particular user using License under Administration and Client will automatically fetch License using License Manager on License Server
    Regards,
    Bhavank

  • How can I check what version of Java Web Start is installed on the client ?

    hi,
    Can anyone tell me how can I check what version of java web start is installed on the client and display a message if the client has not the good version ?
    I mean:
    I'd like all people running my application use java 5 and if someone using java 1.4 try to run the application get a nice screen telling him to download the latest version of Java Web Start.
    Is this possible ?
    Thanks in advance.

    Of course, I put this on my jnlp file,
    <resources>
        <j2se version="1.5+"/>
        <jar href="..... "/>
    </resources> But even with that, it doesn't display a nice message but a kind of exception instead.
    Thanks in advance.

  • Hello , FMS is how to prevent the client into a large number of bytes?

    Hello , FMS how to prevent the client to pass a large number of bytes , such as one person put a 1G file in the argument , I also silly to receive ?Although there Client.setBandwidthLimit ( ) limit his maximum traffic per second , but is there a way , one more than the maximum amount of bytes to disconnect his.I assume that methods to determine the length is also obtained all of his transfer is finished , in order to determine out of it .

    How to limit the size of the parameters of the method.I wrote a method in the main.asc then the client NetConnection.call assignment, but if the client is malicious to upload very large data, how to limit it, I view the document did not find the clues, I hope that those parameters up to100KB.

  • Publishing server doesn't work - error 'The request URL doesn't contain the query string for the client OS'

    Hi,
    I'm trying to setup an App-V environment in my lab.
    I've used the App-V 5.0 Trial guide to help me configure all necessary components.
    I'm able to install everything without error.
    when come time to publish an app, it simply doesn't show up on my client.
    after looking at events on the client and server, I found that the Publishing server is returning under Admin the following message.
    'The request URL doesn't contain the query string for the client OS'
    My setup is pretty simple.
    App-V Server managament and Publishing on the same box
    App-V database on my SQL server.
    I'm able to see the publishing "webpage" by using http:://localhost:889.
    It only display this :
    -<Publishing Protocol="1.0"
    <Packages />
    </Publishing>
    I've published one app from the management console.
    any idea what could mean this error?
    thanks

    Hi,
    thanks for the link.
    I've validated the suggested debug steps. It seems that the problem is with my Publish server again.
    I've looked in the web.config file. It seems to be missing some parts compare to the example provided.
    Again, I've published an application from the management console. Management and Publishing are running on the same box, while SQL is remote.
    Here's the web.config
    <?xml version="1.0" ?>
    - <configuration>
    - <system.web>
    <compilation debug="false" targetFramework="4.0" />
    <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" />
    - <authentication>
    - <!-- We don't support form authentication, but this will supress x-ray security warning
    -->
    <forms requireSSL="true" />
    </authentication>
    </system.web>
    - <system.webServer>
    - <modules runAllManagedModulesForAllRequests="true">
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </modules>
    - <security>
    - <requestFiltering>
    - <verbs>
    <remove verb="GET" />
    <add verb="GET" allowed="true" />
    </verbs>
    </requestFiltering>
    </security>
    </system.webServer>
    - <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    + <behaviors>
    - <serviceBehaviors>
    - <behavior name="">
    <serviceAuthorization impersonateCallerForAllOperations="true" />
    <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
    </behavior>
    </serviceBehaviors>
    </behaviors>
    - <bindings>
    - <webHttpBinding>
    - <binding name="SecureBinding">
    - <security mode="Transport">
    <transport clientCredentialType="Windows" />
    </security>
    </binding>
    <binding name="UnsecureBinding" />
    </webHttpBinding>
    </bindings>
    - <protocolMapping>
    <add scheme="http" binding="webHttpBinding" bindingConfiguration="UnsecureBinding" />
    <add scheme="https" binding="webHttpBinding" bindingConfiguration="SecureBinding" />
    </protocolMapping>
    - <standardEndpoints>
    - <webHttpEndpoint>
    - <!--
    Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
    via the attributes on the <standardEndpoint> element below
    -->
    <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
    </webHttpEndpoint>
    </standardEndpoints>
    </system.serviceModel>
    </configuration>

  • Getting my server to return data to the client

    I am writing a client/server program..
    buttons on the client side make the server side do the work, but how do i get the server to return the work back to the client??
    it is a basic beginners program pressing buttons on the client to say cap a word on the server side... have the buttons working but dont know how to returned the capped word back to the client. the code is really long and there are two programs, but i can put them up if necessary.
    tks

    what technology are you useing for the client and server? client: swing, jsp, applet, applicaiton? server: servlet, http, rmi...? Kind of need to know what you're doing before we can help.

  • Get the current count of the client accessing the servlet

    Any body can tell me how to know the information of every client that accessing my servlet after the client access the login interface.

    Thanks.
    But,
    My mean is not know each client information. I want to know all the current client count is accessing my web application and the client do not include that
    user has signed off the application nor the browser is closed by some reason. Sometime if you enter the forum, you maybe find how many people are in the forum current time? I just know all the users now accessing my web application

Maybe you are looking for

  • Does Encore cs6 activate with CC single app subscription

    Rather than purchase the Cloud for £50 per month I want to subscribe to Premier pro as a single app at £17 will encore cs6 activate with the single app subscription?

  • Code view not in synch with Design view (Dreamweaver CS3)

    Hello All, On my main work PC, I am running Dreamweaver CS3. When I am working in split view (with both Design and Code view visible) when I click on an element (say, a button) in Design view, the code view automatically shows me the code for the ele

  • Problem in ref cursor

    Experts, Any idea to fix the below error? " not all variables bound" Below procedure is successfully created, but thrown above error msg while executing. When I run the 'stmt1' separately, it runs perfect. But as a procedure throwing error. create or

  • Just bought new computer with 32bit Visa

    I used to be able to fix song titles, artist info, add/delete/change album art with XP. I just bought a new computer, and I downloaded the version for XP/Vista. I am no longer able to do this. Is there a workaround? I like to add missing album art, o

  • Pen drive not able to recognize "only" on my macbook pro osx 10.7.3

    Hi Everyone, I feel as i feel i have an unique problem and cant quite understand why. I have an early 2011 macbook pro 2.3 ghz i5 processor. I have recently bought an HP v-250 W 16GB pen drive. Its formated in FAT32 and works on every other PC and MA