Hardware options for synchronization

Was wondering if someone could help "rank" these approaches for synchronization.
- TCXO with shared references/PPS (i.e. - MIMO cable or OctoClock)
- OCXO
- OCXO with GPS
The "standard" TCXO models require extra stuff (MIMO or OctoClock or external sources) to phase lock and time synchronize. 
The OCXO gives you better accuracy...but it is unclear the degree to which this has an effect on phase coherency (and over how long a time).  Presumably, you'd still need something like a PPS to time synchronize?
With the GPS disciplined devices, are you basically getting the phase coherency and time synchronization from the GPS signal rather than external 'stuff'?  Or are there instances where you'd still need something like the MIMO cable or OctoClock to further nail down timing and synchronization?
Brandon
Solved!
Go to Solution.

Hi Brandon,
Thank you for the extra information! I have been looking further in to this issue, and a lot of your question depends on your hardware and system setup. JamesB, awesome post! This is great information.  To add to this, for our GPS USRPS (NI USRP 293x) unfortunately you cannot use the Ref In inputs, so splitting out the external clock is not going to be an option on this hardware. With this in mind, option (c) will likely be the easiest since that is exactly how our USRP's work. Are you using an NI USRP? If so and you're trying to sync up 8 of these USRP's together, GPS might be the only real option. 
As far as direct cabling vs. GPS for accuracy, direct cabling is more accurate if you are using an external clock that is is more accurate than the onboard clock and if you're using a USRP that can use an external reference clock 
The NI USRP 2930 and 2932 both have OCXO's which alone are more accurate but there is no way to extract the 10MHz source to another device, except for a MIMO cable which is only good to use for 2 devices. Therefore the direct cabling method only exists for specific scenarios:
1. Using MIMO cable for up to 2 devices
2. Using an external clock, and a splitter.
However, the internal OXCO does not do you any good for more than two device synchronization. Using a GPS antenna, clock disciplining and a clear view of the sky will let each USRP utilize it's own OXCO and still be synchronized. So it is not just GPS, it is the act of using GPS information to adjust the already great OCXO time reference which required each device to adjust it's own clock. The following document shows the specifications for a USRP without a GPS antenna (just the OXCO accuracy) vs. the OCXO accuracy in conjunction with the GPS disciplining in section 4 (Synchronization with GPS Disciplined Oscillators on NI USRP 293x):
http://www.ni.com/tutorial/14705/en/
While I was looking in to this, I also found this forum post that had a similiar question:
http://forums.ni.com/t5/USRP-Software-Radio/Synchronization-of-three-USRP-2932/m-p/2835772
I hope this was helpful!
Stephanie S.
Application Engineer
National Instruments

Similar Messages

  • Hardware options for Time Machine?

    Background
    I'd guess that if Leopard topped 2 million sales in the first weekend that probably means there are about 1.9x million of us (self included) looking for a neat drive arrangement in order to keep Time Machine running sweet. I'd further guess that a percentage of those 1.9x million of us seek a good practice solution as detailed below.
    Solutions?
    My initial searches suggest that e-sata is the way to go (any corrections or advice on this will be appreciated by my self and I am sure by a wider community).
    With a Mac Pro there seem to be two possibilities for the e-sata route:
    http://store.apple.com/Apple/WebObjects/ukstore.woa/wa/RSLID?mco=E9B89841&fnode= home/shopmac/macaccessories/storage&nplm=TN741
    (link to PCI Express e-sata card)
    or possibly
    http://www.cclonline.com/product-info.asp?productid=17983&categoryid=59
    (link to an e-sata backplate and, of course, it relies on a spare SATA point somewhere in the machine).
    The above is possible at least in theory.
    *Best practice solutions?*
    For all of us seeking a good external hard drive with best option transfer rates are there any best practice solutions?
    It seems a composite type question that relies on software and hardware combined solutions that will live well under Leopard (and in my case also with XP Pro in Boot Camp)
    *Future proofing solutions?*
    (Sometime down the line I can imagine some sort of virtualisation on this machine as well in order to jump between some important software tied in to Windows.)
    Apologies
    Apologies if this post should be directed into a hardware forum but the composite skills and critical factors seem to be shared equally between Leopard, Time Machine, present hardware and best practice proposed hardware solutions.

    Howdy,
    I think firewire is fine without any need to add a new card to your Mac. I've been using the Lacie triple interface hard drives extensively with good results. This being said it looks like they have Quadro drives now (added esata): http://www.lacie.com/us/products/product.htm?pid=10894; you could go esata later if you really wanted to. Like I said, Firewire 800 should work great.
    +R

  • No option for hardware virtualization option in bios of DV6 1355dx / Windows 7

    No option for hardware virtualization option in bios of DV6  1355dx / Windows 7. Tried installing some SPs such as sp53216 , sp55068, etc but the extration will warn Cann't check platform ID & had to close the window.  Is there a sure shot patch to this issue?

    EshaPrasad wrote:
    No option for hardware virtualization option in bios of DV6  1355dx / Windows 7. Tried installing some SPs such as sp53216 , sp55068, etc but the extration will warn Cann't check platform ID & had to close the window.  Is there a sure shot patch to this issue?
    Hi,
    Specs: http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01893242&tmp_task=prodinfoCategory&cc=us&dlc=en...
    CPU: 2.20 GHz Intel Core2 Duo Processor T6600
    http://ark.intel.com/products/37255/Intel-Core2-Duo-Processor-T6600-2M-Cache-2_20-GHz-800-MHz-FSB
    It says that the CPU doesn't support virtualization, means the option can't be in the BIOS.
    Dv6-7000 /Full HD/Core i5-3360M/GF 650M/Corsair 8GB/Intel 7260AC/Samsung Pro 256GB
    Testing - HP 15-p000
    HP Touchpad provided by HP
    Currently on Debian Wheeze
    *Please, help other users with the same issue by marking your solved topics as "Accept as Solution"*

  • My ipod nano 6th gen fell out of my pockey and the screen cracked badly, is there any coverage for this under warranty? I just bought it a month ago. If not what are the options for getting it fixed

    My ipod nano 6th gen fell out of my pocket and the screen cracked badly, is there any coverage for this under warranty? I just bought it a month ago. If not what are the options for getting it fixed? It is pretty frustrating, it fell from about 3 feet out of my pocket and now looks like it was beaten by a hammer.

    Debbie:
    deborahfromwindsor wrote:
    he advises restarting by inserting the OSX disc and pressing down the C button to reboot from there then selecting disk utility, hard disk and repair.... Does he mean me to hold down the C key on the alpha keyboard or the ctrl key?
    Should I just ask for my money back??? If it is a simple repair do I just literally push the disc in, push the power button and hold down the C button?
    That's where I would begin, too, with
    Repair Disk
    Insert Installer disk and Restart, holding down the "C" key until grey Apple appears.
    Go to Installer menu (Panther and earlier) or Utilities menu (Tiger) and launch Disk Utility.
    Select your HDD (manufacturer ID) in the left panel.
    Select First Aid in the Main panel.
    (Check S.M.A.R.TStatus of HDD at the bottom of right panel, and report if it saysanything but Verified)
    Click Repair Disk on the bottom right.
    If DU reports disk does not need repairs quit DU and restart.
    If DU reports errors Repair again and again until DU reports disk is repaired.
    If DU reports errors it cannot repair you will need touse autility like TechTool Pro,Drive Geniusor DiskWarrior
    First we need to determine if the issue you are experiencing with the computer is software or hardware based. Once we have gotten things sorted out there should be time enough to make you decision about keeping or returning it.
    cornelius

  • DO i need some extra hardware interface for receving both Audio and video

    hi i m doing e-learning project. i have to capture video from webcam and voice from headphone and send to client.
    but my code is working fine for either one at a time.
    DO i need some extra hardware interface for receving both Audio and video. im using code AVTransmit and AVReceive found from this site only
    After running TX
    i give Dsound:// & vfw://0 in Media Locater only sound is received and no vedio
    and when i give vfw://0 in Media Locater only live video is transmited.
    im using JMF1.1.2e.
    if any one know the method to run or cause of it plz reply me soon. i will be very thankfull
    transmiter/server side code .first run TX on server
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.util.*;
    import javax.media.rtp.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    public class Tx extends JFrame implements ActionListener, KeyListener,
    MouseListener, WindowListener {
    Vector targets;
    JList list;
    JButton startXmit;
    JButton rtcp;
    JButton update;
    JButton expiration;
    JButton statistics;
    JButton addTarget;
    JButton removeTarget;
    JTextField tf_remote_address;
    JTextField tf_remote_data_port;
    JTextField tf_media_file;
    JTextField tf_data_port;
    TargetListModel listModel;
    AVTransmitter avTransmitter;
    RTCPViewer rtcpViewer;
    JCheckBox cb_loop;
    Config config;
    public Tx() {
    setTitle( "JMF/RTP Transmitter");
         config= new Config();
         GridBagLayout gridBagLayout= new GridBagLayout();
         GridBagConstraints gbc;
         JPanel p= new JPanel();
         p.setLayout( gridBagLayout);
         JPanel localPanel= createLocalPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 0;
         gbc.gridy= 0;
         gbc.gridwidth= 2;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( localPanel, gbc);
         p.add( localPanel);
         JPanel targetPanel= createTargetPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 1;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( targetPanel, gbc);
    p.add( targetPanel);
         JPanel mediaPanel= createMediaPanel();
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 2;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( mediaPanel, gbc);
    p.add( mediaPanel);
    JPanel buttonPanel= new JPanel();
    rtcp= new JButton( "RTCP Monitor");
    update= new JButton( "Transmission Status");
         update.setEnabled( false);
         rtcp.addActionListener( this);
         update.addActionListener( this);
         buttonPanel.add( rtcp);
         buttonPanel.add( update);
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 3;
    gbc.gridwidth= 2;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( buttonPanel, gbc);
         p.add( buttonPanel);
    getContentPane().add( p);
         list.addMouseListener( this);
         addWindowListener( this);
    pack();
    setVisible( true);
    private JPanel createMediaPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         JLabel label= new JLabel( "Media Locator:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         tf_media_file= new JTextField( 35);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_media_file, gbc);
         p.add( tf_media_file);
         tf_media_file.setText( config.media_locator);
         cb_loop= new JCheckBox( "loop");
         startXmit= new JButton( "Start Transmission");
         startXmit.setEnabled( true);
         startXmit.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 2;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( cb_loop, gbc);
         p.add( cb_loop);
         cb_loop.setSelected( true);
         cb_loop.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( startXmit, gbc);
         p.add( startXmit);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Source");
         p.setBorder( titledBorder);
         return p;
    private JPanel createTargetPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         targets= new Vector();
         for( int i= 0; i < config.targets.size(); i++) {
         targets.addElement( config.targets.elementAt( i));
    listModel= new TargetListModel( targets);
    list= new JList( listModel);
         list.addKeyListener( this);
         list.setPrototypeCellValue( "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    JScrollPane scrollPane= new JScrollPane( list,
    ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
         gbc= new GridBagConstraints();
         gbc.gridx= 0;
         gbc.gridy= 0;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( scrollPane, gbc);
         p.add( scrollPane);
    JPanel p1= new JPanel();
         p1.setLayout( gridBagLayout);
         JLabel label= new JLabel( "IP Address:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
         p1.add( label);
         tf_remote_address= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_address, gbc);
         p1.add( tf_remote_address);
         label= new JLabel( "Data Port:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
         p1.add( label);
         tf_remote_data_port= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_data_port, gbc);
         p1.add( tf_remote_data_port);     
    JPanel p2= new JPanel();
    addTarget= new JButton( "Add Target");     
    removeTarget= new JButton( "Remove Target");
         p2.add( addTarget);
         p2.add( removeTarget);
         addTarget.addActionListener( this);
         removeTarget.addActionListener( this);
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 2;
         gbc.weightx = 1.0;
         gbc.weighty = 0.0;
         gbc.gridwidth= 2;
         gbc.anchor = GridBagConstraints.CENTER;
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets( 20,5,0,5);
         ((GridBagLayout)p1.getLayout()).setConstraints( p2, gbc);
         p1.add( p2);
         gbc= new GridBagConstraints();
         gbc.gridx= 1;
         gbc.gridy= 0;
         gbc.weightx= 1.0;
         gbc.weighty= 1.0;
         gbc.anchor= GridBagConstraints.CENTER;
         gbc.fill= GridBagConstraints.BOTH;
         gbc.insets= new Insets( 10, 5, 0, 0);
         ((GridBagLayout)p.getLayout()).setConstraints( p1, gbc);
         p.add( p1);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Targets");
         p.setBorder( titledBorder);
         return p;
    private JPanel createLocalPanel() {
    JPanel p= new JPanel();
         GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
         p.setLayout( gridBagLayout);
         JLabel label= new JLabel( "IP Address:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         JTextField tf_local_host= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 0;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_local_host, gbc);
         p.add( tf_local_host);
         try {
    String host= InetAddress.getLocalHost().getHostAddress();     
         tf_local_host.setText( host);
         } catch( UnknownHostException e) {
         label= new JLabel( "Data Port:");
         gbc= new GridBagConstraints();
         gbc.gridx = 0;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.EAST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,0,5);
         ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
         p.add( label);
         tf_data_port= new JTextField( 15);
         gbc= new GridBagConstraints();
         gbc.gridx = 1;
         gbc.gridy = 1;
         gbc.weightx = 0.0;
         gbc.weighty = 0.0;
         gbc.anchor = GridBagConstraints.WEST;
         gbc.fill = GridBagConstraints.NONE;
         gbc.insets = new Insets( 5,5,10,5);
         ((GridBagLayout)p.getLayout()).setConstraints( tf_data_port, gbc);
         p.add( tf_data_port);
         tf_data_port.setText( config.local_data_port);
         TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Local Host");
         p.setBorder( titledBorder);
         return p;
    public void actionPerformed( ActionEvent event) {
    Object source= event.getSource();
         if( source == addTarget) {
         String ip= tf_remote_address.getText().trim();
         String port= tf_remote_data_port.getText().trim();
         String localPort= tf_data_port.getText().trim();
         addTargetToList( localPort, ip, port);
         if( avTransmitter != null) {
         avTransmitter.addTarget( ip, port);
         } else if( source == removeTarget) {
         int index= list.getSelectedIndex();
         if( index != -1) {
              Target target= (Target) targets.elementAt( index);
              if( avTransmitter != null) {
         avTransmitter.removeTarget( target.ip, target.port);
              targets.removeElement( target);
              listModel.setData( targets);          
         } else if( source == startXmit) {
         if( startXmit.getLabel().equals( "Start Transmission")) {          
         int data_port= new Integer( tf_data_port.getText()).intValue();
              avTransmitter= new AVTransmitter( this, data_port);
         avTransmitter.start( tf_media_file.getText().trim(), targets);          
              avTransmitter.setLooping( cb_loop.isSelected());
         startXmit.setLabel( "Stop Transmission");
         } else if( startXmit.getLabel().equals( "Stop Transmission")) {
              avTransmitter.stop();
              avTransmitter= null;
              removeNonBaseTargets();
              listModel.setData( targets);
         startXmit.setLabel( "Start Transmission");          
         } else if( source == rtcp) {
         if( rtcpViewer == null) {
         rtcpViewer= new RTCPViewer();
         } else {
              rtcpViewer.setVisible( true);
              rtcpViewer.toFront();
         } else if( source == cb_loop) {
         if( avTransmitter != null) {
              avTransmitter.setLooping( cb_loop.isSelected());
    private void removeNonBaseTargets() {
         String localPort= tf_data_port.getText().trim();
         for( int i= targets.size(); i > 0;) {
         Target target= (Target) targets.elementAt( i - 1);
         if( !target.localPort.equals( localPort)) {
    targets.removeElement( target);
         i--;
    public void addTargetToList( String localPort,
                             String ip, String port) {     
    ListUpdater listUpdater= new ListUpdater( localPort, ip,
                                  port, listModel, targets);
    SwingUtilities.invokeLater( listUpdater);           
    public void rtcpReport( String report) {
         if( rtcpViewer != null) {
         rtcpViewer.report( report);
    public void windowClosing( WindowEvent event) {
         config.local_data_port= tf_data_port.getText().trim();
         config.targets= new Vector();
         for( int i= 0; i < targets.size(); i++) {
         Target target= (Target) targets.elementAt( i);
         if( target.localPort.equals( config.local_data_port)) {
              config.addTarget( target.ip, target.port);
         config.media_locator= tf_media_file.getText().trim();
         config.write();
    System.exit( 0);
    public void windowClosed( WindowEvent event) {
    public void windowDeiconified( WindowEvent event) {
    public void windowIconified( WindowEvent event) {
    public void windowActivated( WindowEvent event) {
    public void windowDeactivated( WindowEvent event) {
    public void windowOpened( WindowEvent event) {
    public void keyPressed( KeyEvent event) {
    public void keyReleased( KeyEvent event) {
    Object source= event.getSource();
         if( source == list) {
         int index= list.getSelectedIndex();
    public void keyTyped( KeyEvent event) {
    public void mousePressed( MouseEvent e) {
    public void mouseReleased( MouseEvent e) {
    public void mouseEntered( MouseEvent e) {
    public void mouseExited( MouseEvent e) {
    public void mouseClicked( MouseEvent e) {
    Object source= e.getSource();
         if( source == list) {
         int index= list.getSelectedIndex();
         if( index != -1) {
              Target target= (Target) targets.elementAt( index);
              tf_remote_address.setText( target.ip);
              tf_remote_data_port.setText( target.port);
         int index= list.locationToIndex( e.getPoint());
    public static void main( String[] args) {
    new Tx();
    class TargetListModel extends AbstractListModel {
    private Vector options;
    public TargetListModel( Vector options) {
         this.options= options;
    public int getSize() {
         int size;
         if( options == null) {
         size= 0;
         } else {
         size= options.size();
         return size;
    public Object getElementAt( int index) {
    String name;
    if( index < getSize()) {
         Target o= (Target)options.elementAt( index);
    name= o.localPort + " ---> " + o.ip + ":" + o.port;
         } else {
         name= null;
         return name;
    public void setData( Vector data) {
         options= data;
         fireContentsChanged( this, 0, data.size());
    class ListUpdater implements Runnable {
    String localPort, ip, port;
    TargetListModel listModel;
    Vector targets;
    public ListUpdater( String localPort, String ip, String port,
                   TargetListModel listModel, Vector targets) {
         this.localPort= localPort;
         this.ip= ip;
         this.port= port;
         this.listModel= listModel;
         this.targets= targets;
    public void run() {
    Target target= new Target( localPort, ip, port);
         if( !targetExists( localPort, ip, port)) {
         targets.addElement( target);
    listModel.setData( targets);
    public boolean targetExists( String localPort, String ip, String port) {
         boolean exists= false;
         for( int i= 0; i < targets.size(); i++) {
         Target target= (Target) targets.elementAt( i);
         if( target.localPort.equals( localPort)
         && target.ip.equals( ip)
              && target.port.equals( port)) {          
              exists= true;
         break;
         return exists;
    >>>>>>>>>>>>>>>>>
    import java.awt.*;
    import java.io.*;
    import java.net.InetAddress;
    import java.util.*;
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.format.*;
    import javax.media.control.TrackControl;
    import javax.media.control.QualityControl;
    import javax.media.rtp.*;
    import javax.media.rtp.event.*;
    import javax.media.rtp.rtcp.*;
    public class AVTransmitter implements ReceiveStreamListener, RemoteListener,
    ControllerListener {
    // Input MediaLocator
    // Can be a file or http or capture source
    private MediaLocator locator;
    private String ipAddress;
    private int portBase;
    private Processor processor = null;
    private RTPManager rtpMgrs[];
    private int localPorts[];
    private DataSource dataOutput = null;
    private int local_data_port;
    private Tx tx;
    public AVTransmitter( Tx tx, int data_port) {
         this.tx= tx;
         local_data_port= data_port;
    * Starts the transmission. Returns null if transmission started ok.
    * Otherwise it returns a string with the reason why the setup failed.
    public synchronized String start( String filename, Vector targets) {
         String result;
         locator= new MediaLocator( filename);
         // Create a processor for the specified media locator
         // and program it to output JPEG/RTP
         result = createProcessor();
         if (result != null) {
         return result;
         // Create an RTP session to transmit the output of the
         // processor to the specified IP address and port no.
         result = createTransmitter( targets);
         if (result != null) {
         processor.close();
         processor = null;
         return result;
         // Start the transmission
         processor.start();
         return null;
    * Use the RTPManager API to create sessions for each media
    * track of the processor.
    private String createTransmitter( Vector targets) {
         // Cheated. Should have checked the type.
         PushBufferDataSource pbds = (PushBufferDataSource)dataOutput;
         PushBufferStream pbss[] = pbds.getStreams();
         rtpMgrs = new RTPManager[pbss.length];
         localPorts = new int[ pbss.length];
         SessionAddress localAddr, destAddr;
         InetAddress ipAddr;
         SendStream sendStream;
         int port;
         SourceDescription srcDesList[];
         for (int i = 0; i < pbss.length; i++) {
         // for (int i = 0; i < 1; i++) {
         try {
              rtpMgrs[i] = RTPManager.newInstance();     
              port = local_data_port + 2*i;
              localPorts[ i]= port;
              localAddr = new SessionAddress( InetAddress.getLocalHost(),
                                  port);
              rtpMgrs.initialize( localAddr);          
              rtpMgrs[i].addReceiveStreamListener(this);
              rtpMgrs[i].addRemoteListener(this);
         for( int k= 0; k < targets.size(); k++) {
              Target target= (Target) targets.elementAt( k);
              int targetPort= new Integer( target.port).intValue();
              addTarget( localPorts[ i], rtpMgrs[ i], target.ip, targetPort + 2*i);
              sendStream = rtpMgrs[i].createSendStream(dataOutput, i);          
              sendStream.start();
         } catch (Exception e) {
              e.printStackTrace();
              return e.getMessage();
         return null;
    public void addTarget( String ip, String port) {
         for (int i= 0; i < rtpMgrs.length; i++) {
         int targetPort= new Integer( port).intValue();
         addTarget( localPorts[ i], rtpMgrs[ i], ip, targetPort + 2*i);
    public void addTarget( int localPort, RTPManager mgr, String ip, int port) {
         try {
         SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                                  new Integer( port).intValue());
         mgr.addTarget( addr);
         tx.addTargetToList( localPort + "", ip, port + "");
         } catch( Exception e) {
         e.printStackTrace();
    public void removeTarget( String ip, String port) {
         try {     
         SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                                  new Integer( port).intValue());
         for (int i= 0; i < rtpMgrs.length; i++) {
         rtpMgrs[ i].removeTarget( addr, "target removed from transmitter.");
         } catch( Exception e) {
         e.printStackTrace();
    boolean looping= true;
    public void controllerUpdate( ControllerEvent ce) {
         System.out.println( ce);
         if( ce instanceof DurationUpdateEvent) {
         Time duration= ((DurationUpdateEvent) ce).getDuration();
         System.out.println( "duration: " + duration.getSeconds());
         } else if( ce instanceof EndOfMediaEvent) {
         System.out.println( "END OF MEDIA - looping=" + looping);
         if( looping) {
         processor.setMediaTime( new Time( 0));
              processor.start();
    public void setLooping( boolean flag) {
         looping= flag;
    public void update( ReceiveStreamEvent event) {
         String timestamp= getTimestamp();
         StringBuffer sb= new StringBuffer();
         if( event instanceof InactiveReceiveStreamEvent) {
         sb.append( timestamp + " Inactive Receive Stream");
         } else if( event instanceof ByeEvent) {
         sb.append( timestamp + " Bye");
         } else {
         System.out.println( "ReceiveStreamEvent: "+ event);
         tx.rtcpReport( sb.toString());     
    public void update( RemoteEvent event) {     
         String timestamp= getTimestamp();
         if( event instanceof ReceiverReportEvent) {
         ReceiverReport rr= ((ReceiverReportEvent) event).getReport();
         StringBuffer sb= new StringBuffer();
         sb.append( timestamp + " RR");
         if( rr != null) {
              Participant participant= rr.getParticipant();
              if( participant != null) {
              sb.append( " from " + participant.getCNAME());
              sb.append( " ssrc=" + rr.getSSRC());
              } else {
              sb.append( " ssrc=" + rr.getSSRC());
              tx.rtcpReport( sb.toString());
         } else {
         System.out.println( "RemoteEvent: " + event);
    private String getTimestamp() {
         String timestamp;
         Calendar calendar= Calendar.getInstance();
         int hour= calendar.get( Calendar.HOUR_OF_DAY);
         String hourStr= formatTime( hour);
         int minute= calendar.get( Calendar.MINUTE);
         String minuteStr= formatTime( minute);
         int second= calendar.get( Calendar.SECOND);
         String secondStr= formatTime( second);
         timestamp= hourStr + ":" + minuteStr + ":" + secondStr;     
         return timestamp;
    private String formatTime( int time) {     
         String timeStr;
         if( time < 10) {
         timeStr= "0" + time;
         } else {
         timeStr= "" + time;
         return timeStr;
    * Stops the transmission if already started
    public void stop() {
         synchronized (this) {
         if (processor != null) {
              processor.stop();
              processor.close();
              processor = null;
         for (int i= 0; i < rtpMgrs.length; i++) {
         rtpMgrs[ i].removeTargets( "Session ended.");
              rtpMgrs[ i].dispose();
    public String createProcessor() {
         if (locator == null) {
         return "Locator is null";
         DataSource ds;
         DataSource clone;
         try {
         ds = javax.media.Manager.createDataSource(locator);
         } catch (Exception e) {
         return "Couldn't create DataSource";
         // Try to create a processor to handle the input media locator
         try {
         processor = javax.media.Manager.createProcessor(ds);
         processor.addControllerListener( this);     
         } catch (NoProcessorException npe) {
         return "Couldn't create processor";
         } catch (IOException ioe) {
         return "IOException creating processor";
         // Wait for it to configure
         boolean result = waitForState(processor, Processor.Configured);
         if (result == false)
         return "Couldn't configure processor";
         // Get the tracks from the processor
         TrackControl [] tracks = processor.getTrackControls();
         // Do we have atleast one track?
         if (tracks == null || tracks.length < 1)
         return "Couldn't find tracks in processor";
         // Set the output content descriptor to RAW_RTP
         // This will limit the supported formats reported from
         // Track.getSupportedFormats to only valid RTP formats.
         ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);
         processor.setContentDescriptor(cd);
         Format supported[];
         Format chosen;
         boolean atLeastOneTrack = false;
         // Program the tracks.
         for (int i = 0; i < tracks.length; i++) {
         Format format = tracks[i].getFormat();
         if (tracks[i].isEnabled()) {
              supported = tracks[i].getSupportedFormats();
              // We've set the output content to the RAW_RTP.
              // So all the supported formats should work with RTP.
              // We'll just pick the first one.
              if (supported.length > 0) {
              if (supported[0] instanceof VideoFormat) {
                   // For video formats, we should double check the
                   // sizes since not all formats work in all sizes.
                   chosen = checkForVideoSizes(tracks[i].getFormat(),
                                       supported[0]);
              } else
                   chosen = supported[0];
              tracks[i].setFormat(chosen);
              System.err.println("Track " + i + " is set to transmit as:");
              System.err.println(" " + chosen);
              atLeastOneTrack = true;
              } else
              tracks[i].setEnabled(false);
         } else
              tracks[i].setEnabled(false);
         if (!atLeastOneTrack)
         return "Couldn't set any of the tracks to a valid RTP format";
         // Realize the processor. This will internally create a flow
         // graph and attempt to create an output datasource for JPEG/RTP
         // audio frames.
         result = waitForState(processor, Controller.Realized);
         if (result == false)
         return "Couldn't realize processor";
         // Set the JPEG quality to .5.
         setJPEGQuality(processor, 0.5f);
         // Get the output data source of the processor
         dataOutput = processor.getDataOutput();
         return null;
    static SessionAddress destAddr1, destAddr2;
    * For JPEG and H263, we know that they only work for particular
    * sizes. So we'll perform extra checking here to make sure they
    * are of the right sizes.
    Format checkForVideoSizes(Format original, Format supported) {
         int width, height;
         Dimension size = ((VideoFormat)original).getSize();
         Format jpegFmt = new Format(VideoFormat.JPEG_RTP);
         Format h263Fmt = new Format(VideoFormat.H263_RTP);
         if (supported.matches(jpegFmt)) {
         // For JPEG, make sure width and height are divisible by 8.
         width = (size.width % 8 == 0 ? size.width :
                        (int)(size.width / 8) * 8);
         height = (size.height % 8 == 0 ? size.height :
                        (int)(size.height / 8) * 8);
         } else if (supported.matches(h263Fmt)) {
         // For H.263, we only support some specific sizes.
         if (size.width < 128) {
              width = 128;
              height = 96;
         } else if (size.width < 176) {
              width = 176;
              height = 144;
         } else {
              width = 352;
              height = 288;
         } else {
         // We don't know this particular format. We'll just
         // leave it alone then.
         return supported;
         return (new VideoFormat(null,
                        new Dimension(width, height),
                        Format.NOT_SPECIFIED,
                        null,
                        Format.NOT_SPECIFIED)).intersects(supported);
    * Setting the encoding quality to the specified value on the JPEG encoder.
    * 0.5 is a good default.
    void setJPEGQuality(Player p, float val) {
         Control cs[] = p.getControls();
         QualityControl qc = null;
         VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
         // Loop through the controls to find the Quality control for
         // the JPEG encoder.
         for (int i = 0; i < cs.length; i++) {
         if (cs[i] instanceof QualityControl &&
              cs[i] instanceof Owned) {
              Object owner = ((Owned)cs[i]).getOwner();
              // Check to see if the owner is a Codec.
              // Then check for the output format.
              if (owner instanceof Codec) {
              Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
              for (int j = 0; j < fmts.length; j++) {
                   if (fmts[j].matches(jpegFmt)) {
                   qc = (QualityControl)cs[i];
                   qc.setQuality(val);
                   System.err.println("- Setting quality to " +
                             val + " on " + qc);
                   break;
              if (qc != null)
              break;
    * Convenience methods to handle processor's state changes.
    private Integer stateLock = new Integer(0);
    private boolean failed = false;
    Integer getStateLock() {
         return stateLock;
    void setFailed() {
         failed = true;
    private synchronized boolean waitForState(Processor p, int state) {
         p.addControllerListener(new StateListener());
         failed = false;
         // Call the required method on the processor
         if (state == Processor.Configured) {
         p.configure();
         } else if (state == Processor.Realized) {
         p.realize();
         // Wait until we get an event that confirms the
         // success of the method, or a failure event.
         // See StateListener inner class
         while (p.getState() < state && !failed) {
         synchronized (getStateLock()) {
              try {
              getStateLock().wait();
              } catch (InterruptedException ie) {
              return false;
         if (failed)
         return false;
         else
         return true;
    * Inner Classes
    class StateListener implements ControllerListener {
         public void controllerUpdate(ControllerEvent ce) {
         // If there was an error during configure or
         // realiz

    I do this all the time, I put my MBP to a 60 inch Sharp. If you have the video working do the simple thing first. Check to make sure your sound is on your TV and Mac. Then if that doesn't work go to System Prefrences and under sound go to a tab called Output and see if your TV is listed and if it is change it to that setting
    Hope It Works

  • My ipod touch 4g doesn't show option for os update in setting-general page. Can i update it via itunes by connecting it to computer?

    My ipod touch 4g doesn't show option for ios update in setting-general page. Can i update it via itunes by connecting it to computer?

    Try:
    - iOS: Not responding or does not turn on
    When it says place the iPod in recovery mode ue one of these programs:
    For PC
    RecBoot: Easy Way to Put iPhone into Recovery Mode
    If necessary:
    Download QTMLClient.dll & iTunesMobileDevice.dll for RecBoot
    For MAC or PC
    The Firmware Umbrella - TinyUmbrella
    - If not successful and you can't fully turn the iOS device fully off, let the battery fully drain. After charging for an least an hour try the above again.
    - Try on another computer
    - If still not successful that usually indicates a hardware problem and an appointment at the Genius Bar of an Apple store is in order.
    Apple Retail Store - Genius Bar       

  • Macbook Pro 15'' options for gaming and college

    Hi there Apple Community!
    I'm having trouble choosing the best cost benefit for a new Mac. I'm a college student and my main priority is to have a mobile unit to cary with me for classes. I'm also a gamer, and since this will be my main computer I'd like to have one that could also run games like Civ 5 and WoW smoothly. Therefore I believe the best option for me would be the cheapest 15'' MBP.
    However, both the price and the extra weight scare me. I'm not confortable with walking around with a R$ 6,600.00 notebook (about US$ 3,300.00 - I'm in Brazil and thanks to taxes all the prices are overrated ).
    I'm studying options to reduce the risk of walking with such a valuable piece of hardware around while giving me what I need where I need, and after some time I've matured the idea of having more than 1 device.
    My first option would be to get me cheapest 13'' MBA along with a Mac Mini - the one with the Radeon 6630M videocard on it. They cost together about the same as the 15' MBP, and would give me both a lighter option to go to college and a dedicated videocard for games, though this card is weaker than the one in the MBP - and I'm not sure how well this card would handle the games I want to play.
    Another option would be to get myself the both cheapest 21'' iMac (with the same videocard as the MBP) and the cheapest MBA. This would be a bit more expensive than the MBP, but no big deal, and I'd still have both a decent unit at home for games and the mobility I need for college.
    My last option would be to get the 13'' MBA and use the rest of the money to assemble a gaming Windows 7 PC. This would be my last resort, though. I know I can assemble a terrible machine with this budget, but I believe I could have what I need - decent (not extreme) gaming experience at home - from a Mac, even if I have to use Bootcamp.
    I'd like to know from you who own Macs what you think about these options. I intent to make my purchase this month or the next, as my classes begin in August. What would u think to be the best combination? Or is the MBP the best option? Thanks in advance for any thoughts.

    Thanks for the reply, OGELTHORPE. Refurbished products were the 1st thing I thought when I saw the cost of a 15''MBP. Unfortunately there's not even a link for this store in Brazil's store. I'm not sure, but I believe this is because of the mistrurst we brazillians have upon refurbished equipments sold by many other companies that fail to meet quality specs - some companies even try to push them as 'new' to the customers... I know that US Apple follows refurbishing rules to the letter - not hard to find people around the web saying that they got a nice deal for buying a refurbished Apple and that they would do it again. I wish I could buy a refurbished unit from the american Apple Store and have it delivered to Brazil, but I believe this is way too much to ask for the 'free shipping' they offer...
    As for gaming, I do like it, but I'm not looking for a gaming station - otherwise I'd look for a PS3, Xbox 360, etc. I do want a computer to complement my studies at home - this is my main focus after all, and it would be desirable if this new computer could also run some games for me to play when I can.
    I'm just not satisfied with the Intel HD 3000's performance (some people say they are even weaker than the previous nVidia models they replace). This is why I'm trying to get my hands on one of those new Radeon videocards.
    Anyway I've heard that Apple may show some new products on this week's presentation at WWDC.Let's hope something good is coming.

  • How do I get Adobe PDF to show up as a printer option for Illustrator?

    How do I get Adobe PDF to show up as a printer option for Illustrator?

    It is usually at the bottom of your printers list. Do you see it on Control Panel/Hardware and Sound/Devices and Printers/Printers?

  • Best option to synchroniz​e two applicatio​ns

    I've been developing two CVI applications (call them App_1 and App_2, for example), and I've been looking for the best option to synchronize them. I mean that App_1 must know if App_2 is running or not, and which operation is performing in every moment.
    At the beginning I thought to a network variable (created when App_2 starts and deleted when it stops), but this is not an option because if App_2 crashes the network variable is not deleted, but it exists with the last value. And so App_1 would think that App_2 is running...
    Any suggestion on a better way?
    Vix
    In claris non fit interpretatio
    Using LV 2013 SP1 on Win 7 64bit
    Using LV 8.2.1 on WinXP SP3
    Using CVI 2012 SP1 on Win 7 64bit, WinXP and WinXP Embedded
    Using CVI 6.0 on Win2k, WinXP and WinXP Embedded

    Since you are already on the way to Network Variable, you could benefit from timestamping the variable you are already using. Refer to NVQuality example project for an example of using timestamping of a NV. This could probably address most of your problems, provided the writer continously update status variable even if no change has occurred. Alternatively, you can add a supplementary variable to use as a whatchdog, i.e. the writer continuously writes some different value and the reader checks it has changed over time.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Hardware requirement for Oracle Universal Content Management

    Hi Experts,
    What are the Hardware requirements for Oracle Universal Content Management ?
    Regards
    Nasir

    does this help?
    Oracle WebLogic Server 11g (10.3.3) System Requirements
    Oracle WebLogic Server supports a number of platforms including:
    – Linux
    – Sun Solaris
    – HP-UX
    – Windows 2000, 2003 Server, XP
    • Processor:
    – At least one 1 GHz CPU is recommended.
    – Intel and UNIX processors are supported.
    • Hard disk drive:
    – A full installation requires approximately 2 GB of disk space.
    – The Linux value for file descriptors must be 4096 or greater.
    – Samples are optional (download from OTN).
    • Memory:
    – A minimum of 2 GB RAM is recommended for WebLogic
    Server.
    – Consider the number of simultaneous users and sessions.
    – Consider in-memory programs, such as Coherence.
    System Requirements
    The following are some of the basic system requirements for Oracle WebLogic Server 10.3.3:
    • The Oracle WebLogic Server installer requires a Java Runtime Environment (JRE) to run.
    Oracle WebLogic Server is certified with JDK6.0. As part of the installation, it gives the option
    to install the JRockit JDK 6.0 version. As part of postinstallation, prefix the bin directory of
    the JDK to the PATH environment variable.
    • The Oracle WebLogic Server installer requires a temporary location in which to unpack the
    files. Typically, the installer requires approximately 2.5 times the amount of temporary space
    that is required by the installed files.
    Note: In this release of WebLogic Server, users can choose which components of WebLogic Server
    they use. Specifically, this release allows users to choose whether the Enterprise JavaBeans (EJB),
    Java Message Service (JMS), and J2CA services are started when WebLogic Server is started. The
    benefit of excluding some services is reduced memory footprint and reduced startup time.

  • Hardware requirement for R12 up-grade

    Dear All,
    We are going to upgrade from EBS 11.5.9 to R12 on Linux environment. Currently we are working on hardware requirement for R12.
    1-How can we calculate sizing requirement in context of R12.
    2-CPU capacity including RAM required
    Or any other best procedure, we can follow to recommend new hardware.
    Best regards,
    Kashif

    And do a thourogh testing including istore and other self service web applications before going for production. May be think of renting out of hardware or hosting option. This will give you complete idea regarding performance of R12
    regards
    Pravin

  • Mount options for ZFS filesystem on Solaris 10

    Do you know some recomendation
    about mount options for SAP on Oracle
    with data on ZFS filesystem?
    Also recomended block size required.
    We assume that file system with datafiles has 8kb block size
    and offline redologs has default (128kB).
    But what about ONLINE REDOLOGS?
    Best regards
    Andy

    SUN Czech installed new production HW for one Czech customer with ZFS filesystem on data-, redo- and archivelog files.
    Now we have performance problem and currently there is no SAP recomendation
    for ZFS file system.
    The HW which are by benchmark about tvice power has worst responses than
    old hardware.
    a) There is bug in Solaris 10 - ZFS buffers once allocated are not released
        (generally we do not want to use buffering due to prevence of double
         buffering)
    b) ZFS buffers takes about 20GB (32GB total) of memory on DB server
    and we are not able to define huge shared pool and db cache. (it may be possible
    to set special parameter in /etc/system to reduce maximum size of ZFS buffers to e.g. 4GB )
    c) We are looking for proven mount option for ZFS to enable asynchronious/concurent io for database filesystems
    d) There is no proven clear answer for support of ZFS/SOLARIS/Oracle/SAP.
    SAP says It is Oracle problem, Oracle does not certify filesystems from Jan2007
    any more and says ask your OS provider and SUN looks happy, but performance
    goes down and it is not so funny for system with 1TG DB with over 30GB grow
    per month.
    Andy

  • Hardware capability for FIM Reporting

    I am doing some capacity planning for a FIM 2010 R2 deployment and trying to understand the hardware requirements for the Reporting feature. Based on the diagarm below, it looks like the performance is primarily driven by two factors: System
    Center and SQL. Even the performance of System Center depends on SQL. So it all comes down to SQL horsepower. The rest of the servers (FIM, SCSM, SCDW) may not need much muscle power (I might be wrong though). What is your experience when planning
    for Reporting? What kind of challenges one can experience? Btw, I have a userbase of 100K and the change rate (# of requests per day) I am expecting is about 6%. What kind of hardware capacity would you recommend?
    Thanks!

    To start with, the picture is indeed really great … but it’s missing (or not emphasizing enough) one important component – SCSM’s Service Manager database.
    As for the capacity question, we've seen the biggest impact/load on the SCCM databases, both Service Manager and Data Warehouse (mainly DWStagingAndConfig) – so yes, SQL is what
    drives all that. Also, we haven’t tried SP1 yet, so what we observed was still on SCCM 2010.
    Anyway, here are few pointers from our experience:
    1. SCSM Service Manager DBs and Data Warehouse DBs should be installed on different SQL instances (has to do with the nature of the DBs) and preferably on different SQL servers.
    And ideally separately from other FIM component DBs.
    2. SCSM Service Manager DB can easily grow over twice the size of your FIMService DB (with indexes taking a lot of space), and it’s transaction log can quickly reach crazy sizes
    especially during initial load. This is the experience from running it just for few months, it might change after longer usage.
    3. From SCSM Data Warehouse DBs the only one you need to worry about is the DWStagingAndConfig. In our environment size wise it was comparable to FIM Service DB, but the observed
    IO during ETL jobs was just crazy – I’ve seen graphs of it generating 300-400MB/s read IO on a 150GB DB for over 10h straight (with plenty of RAM on the SQL box).
    4. Overall it seems like latency to the DB files is one of the main factors driving performance of FIM Reporting (not to mention IO) – even to a point where SAN storage might
    not be the best option here. Like Tomasz wrote, we were looking at setting up both SCSM components on two dedicated physical servers with local SQL and DBs on SSD drives … but didn’t get that far yet.
    When I’m writing about FIM Reporting performance I’m referring to a number of individual changes (queued in the ExportLog table in the FIM Service DB) that can be extracted from
    FIM Service to Service Manager in an hour – initially we were able to process below 200k records per hour, and after several tweaks, SAN reconfiguration, etc, we were almost able to double it. There isn’t any average correlation between number of requests
    and number of entries in the ExportLog table, it all depends on type of changes and how many are a part of individual requests. To just to give you an idea, we observed 20M records that were added over a 7 day period (avg 120k per hour), during which the only
    activity on FIM Service were approximately 20k SSPR registrations – highly customized (with confirmation emails flying around and some custom attributes being set), but still just SSPR. As you can imagine, with that level of activity we needed to push the
    processing rate way over what we were seeing as FIM Reporting was barely being able to catch up in real time.
    I hope this will be at least a bit helpful
    J.
    Piotr
    P.S. Oh, and by "we" I mean my previous company, I recently moved to Microsoft.

  • Hardware Configuration for Oracle DB on DELL Server

    We are currently running Oracle 8.0.5 on Windows 2000 Advanced Server. This is a DELL PowerEdge 6600 server with 8 73GB Ultra SCSI Hard Drives. We will be upgrading to Oracle 9i in the future. Question: What would be the recommended Hardware RAID Configuration? We've heard that RAID 10 would be a good configuration to implement. What would be the best way for us to configure our server? We would like a high fault tolerance, good performance system. Our database isn't very large in size (10GB) but, we do require 24 x 7 availability. By the way, switching to a different operating system is not an option for us.

    You've probably read this already; but, the documentation has some minimums: http://docs.oracle.com/cd/E26996_01/e18548/CHDJCIFD.html
    The management server doesn't require anything special.
    Regards,
    Ian

  • Best option for RAID 5 with 4 drives?

    I have been thinking about doing a RAID 5 setup with 4 1TB drives.
    My motherboard has enough intel SATA ports to run one through its chipset, but I've heard that can be problematic and wont perform as well.
    What would be the best budget option for a small RAID? Are there any affordable RAID cards out there that would fit my needs? I could probably part with $300 for a card. I'll get 4 WD RE4 drives for the raid.
    I will have a backup of this data so that's not a problem.

    Hi Paul,
    Areca ARC-1320-8i seems like the best option - or a variation of it (like ARC-1320-4i4x) - as long as you get four internal ports.  It's right around $300.
    That said, some of my clients run Intel RST RAID5 on four drives for some time, and it actually performs well:
    (Personally I think software and hybrid RAIDs are the future of RAID technology: much more flexible than hardware RAID; potentially faster as well given that they have access to all of computer resources rather than just a dedicated processor.  The latest iteration of RST, for example, allow SSDs for caching of RAID volumes.)
    For my personal system, I use a $200 CineRAID H458 box with four Hitachi Deskstars in RAID5, which is a very inexpensive option for an external RAID:
    Sure, it's rather slow; fast enough for my purposes though, and is highly portable, unlike any config with an internal RAID controller.
    If I need something seriously faster (yet on a budget), I'd use something like this:

Maybe you are looking for

  • Can't see mac library from windows iTunes

    Hello! I switched on home collection to synchronize library between Mac and Widows iTunes. I can see and open Windows library from my Mac. But i can't from Windows. It doesn't show Mac library. And how i can select main library? Or i will have same d

  • PDF's, some text is corrupted.

    Having a random problem that hopefully someone has a fix for. Ever since upgrading to Lion, some of my PDF's have corrupted text in them. It only seams to be happening with bank statement type pdfs. I'm using 'preview' to view the pdfs. It seams like

  • Regarding Video segmentation

    If video contain 50 frames(eg 30 sec),i want convert into 25frames(eg 15 sec) ,with  same meaning... I want to take middle of the frames  which i need,Is it possible with Labview.

  • How to add new column to COPA datasource?

    Dear all, It seems we have to delete the COPA datasource and regenerate it when we need add new column, if so,we should regenerate the initialIzation for the delta. Beacause only the new delta data need have value for new column,so I do not want to r

  • User.dir Web Logic Server

    Can I set an environmental variable like user.dir in the Web Logic Server ? Thanks in advance Edited by: Xavi on Apr 30, 2010 3:48 AM