I need help with doing a system wipe/re-install

I want to completely wipe my Macbook Pro (running Mountain Lion) and do a OS reinstall so that it is as if it was just taken out of the box. I have already moved files I want to keep over to an external. My question is this, do I need to do anything in regards to Microsoft Office or iTunes? Do I need to deauthorize my iTunes or my Microsoft Office activation code? Also, how do I even go about doing this system reset?

Follow these instructions step by step to prepare a Mac for sale:
Step One - Back up your data:
       A. If you have any Virtual PCs shut them down. They cannot be in their "fast saved" state. They must be shut down from inside Windows.
       B. Clone to an external drive using using Carbon Copy Cloner.
          1. Open Carbon Copy Cloner.
          2. Select the Source volume from the Select a source drop down menu on the left side.
          3. Select the Destination volume from the Select a destination drop down menu on the right
              side.
          4. Click on the Clone button. If you are prompted about creating a clone of the Recovery HD be
              sure to opt for that.
               Destination means a freshly erased external backup drive. Source means the internal
               startup drive.
Step Two - Prepare the machine for the new buyer:
          1. De-authorize the computer in iTunes! De-authorize both iTunes and Audible accounts.
          2, Remove any Open Firmware passwords or Firmware passwords.
          3. Turn the brightness full up and volume nearly so.
          4. Turn off File Vault, if enabled.
          5. Disable iCloud, if enabled: See.What to do with iCloud before selling your computer
Step Three - Install a fresh OS:
     A. Snow Leopard and earlier versions of OS X
          1. Insert the original OS X install CD/DVD that came with your computer.
          2. Restart the computer while holding down the C key to boot from the CD/DVD.
          3. Select Disk Utility from the Utilities menu; repartition and reformat the internal hard drive.
              Optionally, click on the Security button and set the Zero Data option to one-pass.
          4. Install OS X.
          5. Upon completion DO NOT restart the computer.
          6. Shutdown the computer.
     B. Lion and Mountain Lion (if pre-installed on the computer at purchase*)
         Note: You will need an active Internet connection. I suggest using Ethernet if possible because
                   it is three times faster than wireless.
          1. Restart the computer while holding down the COMMAND and R keys until the Mac OS X
              Utilities window appears.
          2. Select Disk Utility from the Mac OS X Utilities window and click on the Continue button.
          3. After DU loads select your startup volume (usually Macintosh HD) from the left side list. Click
              on the Erase tab in the DU main window.
          4. Set the format type to Mac OS Extended (Journaled.) Optionally, click on the Security button
              and set the Zero Data option to one-pass.
          5. Click on the Erase button and wait until the process has completed.
          6. Quit DU and return to the Mac OS X Utilities window.
          7. Select Reinstall Lion/Mountain Lion and click on the Install button.
          8. Upon completion shutdown the computer.
*If your computer came with Lion or Mountain Lion pre-installed then you are entitled to transfer your license once. If you purchased Lion or Mountain Lion from the App Store then you cannot transfer your license to another party. In the case of the latter you should install the original version of OS X that came with your computer. You need to repartition the hard drive as well as reformat it; this will assure that the Recovery HD partition is removed. See Step Three above. You may verify these requirements by reviewing your OS X Software License.

Similar Messages

  • I need help with my operating system

    Okay, little bit of background:
    I bought the iMac second hand from a family friend who we no longer have contact with, the operating system etc was already installed.
    The disk drive on the mac is broke (I dont have the disks anyway, so it would be no use)
    I never purchased the operating system, like I said, it was pre-loaded.
    A few programmes weren't running correctly and the computer was just generally running slowly, so I decided to just restore the system as there was no important data on it and it would run faster in the end, and I figured the programmes would run properly again once restored.
    Anyway, I unknowingly deleted the operating system in the process of the restore (I thought it would only delete personal data like it does on my windows PC)
    I have no restore disk (a broken disk drive anyway), my apple ID was not used to buy the operating system, so therefore it cant be used to restore the operating system, I also never backed up the harddrive externally so it cant be reinstalled from that.
    My problem: I have no operating system and no way of recovering it. I read about Mavericks and because its free, I decided to try and download it, but with no operating system, the mac can only run 'Safari' and wont save things I try to download to the harddrive (it just says theres no space and the download doesnt happen). I also tried to access the App Store from Safari to try to download OS X lion on my apple ID, but once again, when using Safari on a mac without an operating system, it is very restrictive and I cant access the download page.
    I have no idea what to do and live miles away from the nearest apple store.
    Thanks in advance for any help provided by anyone.
    Jordan.
    Additional information:
    Its a 2007 iMac which was running OS X Lion 10.7.4 (I think, it was definitely Lion though).
    Serial No. is W8*******X85
    <Edited by Host>

    Ah. Well, then you have an itty-bitty problem. You need to backup your files to start with. You will need your retail Snow Leopard installer DVD which your friend should have provided to you. If he did not then ask him to bring it to you. It belongs to you along with the original distribution discs that came with computer when it was new.
    Do the following once you have the Snow Leopard DVD:
    Clean Install of Snow Leopard
    Be sure to make a backup first because the following procedure will erase
    the drive and everything on it.
         1. Boot the computer using the Snow Leopard Installer Disc or the Disc 1 that came
             with your computer.  Insert the disc into the optical drive and restart the computer.
             After the chime press and hold down the  "C" key.  Release the key when you see
             a small spinning gear appear below the dark gray Apple logo.
         2. After the installer loads select your language and click on the Continue
             button. When the menu bar appears select Disk Utility from the Utilities menu.
             After DU loads select the hard drive entry from the left side list (mfgr.'s ID and drive
             size.)  Click on the Partition tab in the DU main window.  Set the number of
             partitions to one (1) from the Partitions drop down menu, click on Options button
             and select GUID, click on OK, then set the format type to MacOS Extended
             (Journaled, if supported), then click on the Apply button.
         3. When the formatting has completed quit DU and return to the installer.  Proceed
             with the OS X installation and follow the directions included with the installer.
         4. When the installation has completed your computer will Restart into the Setup
             Assistant. Be sure you configure your initial admin account with the exact same
             username and password that you used on your old drive. After you finish Setup
             Assistant will complete the installation after which you will be running a fresh
             install of OS X.  You can now begin the update process by opening Software
             Update and installing all recommended updates to bring your installation current.
    Download and install Mac OS X 10.6.8 Update Combo v1.1.
    Upgrading to Lion
    You can purchase Lion at the Online Apple Store. The cost is $19.99 (as it was before) plus tax.  It's a download. You will get an email containing a redemption code that you then use at the Mac App Store to download Lion. Save a copy of that installer to your Downloads folder because the installer deletes itself at the end of the installation.
         Lion System Requirements
           1. Mac computer with an Intel Core 2 Duo, Core i3, Core i5, Core i7,
               or Xeon processor
           2. 2GB of memory
           3. OS X v10.6.6 or later (v10.6.8 recommended)
           4. 7GB of available space
           5. Some features require an Apple ID; terms apply.
    After you sign into your App Store account with your Apple ID click on the Redeem option under Quick Links to download your copy of Lion.
    As an aside to this: All actual 2007 iMacs are able to run Mavericks. So rather than buying Lion you may prefer to upgrade to Mavericks which is Free.

  • Need help with doing double sided printing!!!

    i have a Epson XP-100 priniter and also MacBook pro laptop
    i am having serious trouble with doing double side printing
    can somebody assist me through please
    thanks

    Read the user manual that came w/the printer.  It will tell you if double sided printing is compatible w/your current OS which you did not mention.  If not, you will need to contact Epson tech support and/or post in their forums if they have one. 

  • I need help with uninstalling FP so I can install FP or some hemlock

    I cannot get flash player to install, uninstall so that I can install, as all the instructions tell us to do.  That insane crazy pop up that tells you to install FP, that you can only say no to so that it will go away is making me want to eat a bullet.  I cannot take it much longer.  I have no idea what to do.  And, the crazy thing is that I did do something a couple weeks ago that made it all stop and then somehow it started again. Sux to fix something but not know what you did, so that you break it again.  Anywho, I have tried everything from doing a manual install with the downloader, tried downloading an older vs, but I could not find one that was compatible with Vista, which is my operating system (32 bit).  I did go to the hyperlink provided on another persons delimna and the site said that I have the most current vs of FP installed.  But, it is not showing in my programs list nor is it in my files in my C drive, nor a trace of it in common files.  It is not in regedit in local machine/software/adobe.  I cannot find it, only the saved programs to uninstall or install it saved to desktop.  Wait, I just rechecked my programs and features and it shows flashplayer 10 Actuve X and shockwave player 11.5, both of which are not found anywhere else in my computer.  I am so weary of all of this.  I just need help.  Please, please please,  It is horrible because you have to have fp to run certain programs, but it will not run and I do not  know if this is a Adobe issue, Windows issue or a Vaio issue.

    Hokay, I have Norton 360, it is run regularily, I also ran ESET this week, I use malwarebytes, pest patrol, registry repair.  I took adaware and mcafee off my system as I was told that too many virus softwares conflict and can cause problems.  I have had my email stolen, along with the book, it appears someone stripped my email and sold it to a spammer.  It is not coming from my computer. Makes me very upset.  I have turned this into the FBI cyber crimes site, AOL and Yahoo, since the link emails in the details are yahoo accounts.  I get the spam emails as well.  Ppl who click on the hyperlinks, some of them are getting viruses, but as I said, these are not being generated by me, but rather from the web.  I hate these ppl.  My system appears clean.
    The pop ups are what everyone who is complaining about this issue are getting, I am assuming.  I am seeing this complaint all over.  Here is the information about the pop up:
    It pops up with any navigation you try to do in IE....any.  It will pop up ten times in a row during simple functions.  Makes you insane.  And the only way you can answer it is to click don't allow.  End of story.  over and over and over.  If you research, web wide you are told to uninstall FP and then reinstall, and there are hyper links provided to do it with, and then you are told to try doing it manually with the Adobe downloader.  NOTHING works.  I am truly so upset, I cannot use my laptop, a storm surge ate my desktop and I am waiting on insurance to replace that the the iPad is limited.  I have no idea which or what is the prob, IE, Adobe or Vaio, which is my make of computer.  But, this is so ridiculous.

  • Need help with doing two things at once

    hey all!
    i'm trying to write a program where the user has twenty seconds to guess the houshold item. every five seconds the pc gives a clue, if the user manages to guess it in time, they win! else...
    anyway, my compiler comes up with nothing but when i execute it and press "go" to start the process, the program does what it is meant to exept for at the end where it always displays "you lose" regardless of anything that has happened.i'm not sure what i'm doing wrong.
    here's the code:
    import java.util.Random;
    import javax.swing.event.DocumentListener;
    import javax.swing.event.DocumentEvent;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.FlowLayout;
    import static java.lang.System.out;
    import java.util.Timer;
    import java.util.TimerTask;
    class Quiz extends JFrame implements ActionListener, ItemListener{
         public static void main(String args[]){
              new Quiz();
         String qp;
         int duh = 1;
         int funnum = 0;
         Timer othertime = new Timer();
         JLabel ql1 = new JLabel();
         JLabel ql2 = new JLabel();
         JLabel ql3 = new JLabel();
         JLabel ql4 = new JLabel();
         JLabel ql5 = new JLabel();
         JLabel ql6 = new JLabel();
         JLabel timelabel = new JLabel();
        JButton qlb1 = new JButton("go");
        JComboBox box = new JComboBox();
         public Quiz(){
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         setLayout(new FlowLayout());
         add(ql1);
         ql1.setVisible(false);
         add(ql2);
         ql2.setVisible(false);
         add(ql3);
         ql3.setVisible(false);
         add(ql4);
         ql4.setVisible(false);
         add(ql5);
         ql5.setVisible(false);
         add(ql6);
         add(timelabel);
         add(qlb1);
         qlb1.addActionListener(this);
         add(box);
         box.addItem("");
         box.addItem("shower");
         box.addItem("bed");
         box.addItem("spade");
         box.addItem("knife");
         box.addItem("book");
         box.addItem("rake");
         box.addItem("bookshelf");
         box.addItem("sink");
         box.addItem("bedside lamp");
         box.addItem("wooden spoon");
         box.addItem("'quiet' sign");
         box.addItem("baking tray");
         box.addItem("desk");
         box.addItem("toilet");
         box.addItem("compost");
         box.addItem("pillow");
         box.addItem("blanket");
         box.addItem("pan");
         box.addItem("study computer");
         box.addItem("tap");
         box.addItem("bookworms");
         box.addItem("duvey");
         box.addItem("bath");
         box.addItem("plants");
         box.addItem("cooker");
         box.addItem("trampoline");
         box.addItemListener(this);
         box.setEnabled(false);
         pack();
         setVisible(true);     
         public void actionPerformed(ActionEvent e){
         qlb1.setEnabled(false);
         int rndmnm = new Random().nextInt(10)+1;
         final int getnum = rndmnm;
         switch(getnum){
         case 1:
         ql1.setText("this is a kitchen item");
         ql2.setText("it is used for cooking");
         ql3.setText("it requires heat");
         ql4.setText("it needs greasy paper");
         qp = "baking tray";
         break;
         case 2:
             ql1.setText("this is a kitchen item");
             ql2.setText("this item has no food put into it to cook");
             ql3.setText("this item does not require heat");
             ql4.setText("it is used for mixing ingredients");
             qp = "wooden spoon";
            break;
           case 3:
             ql1.setText("this is a bathroom item");
             ql2.setText("it is used when washing");
             ql3.setText("it does not create foam");
             ql4.setText("it can be relaxing");
             qp = "bath";
                break;
                case 4:
                ql1.setText("this is a bathroom item");
                ql2.setText("it squirts water");
                ql3.setText("it is stationary");
                ql4.setText("temperature does not matter");
                qp = "toilet";
                break;
                case 5:
                ql1.setText("this is a bedroom item");
                ql2.setText("it is slept on top of");
                ql3.setText("all except the head sleeps on top of it");
                ql4.setText("it is not hard");
                qp = "duvey";
                break;
                case 6:
                ql1.setText("this is a bedroom item");
                ql2.setText("it is not hard");
                ql3.setText("legs generally never lie on top of it");
                ql4.setText("it is nearly as long as the duve");
                qp = "blanket";
                break;
                case 7:
                ql1.setText("this is a library item");
                ql2.setText("it is of great use");
                ql3.setText("it is material");
                ql4.setText("it stores much data");
                qp = "bookshelf";
                break;
                case 8:
                ql1.setText("this is a library item");
                ql2.setText("it is simple to use");
                ql3.setText("you do not nead to search much to find it");
                ql4.setText("it is not made of wood or other carpentry material");
                qp = "'quiet' sign";
                break;
                case 9:
                ql1.setText("this is a garden item");
                ql2.setText("it covers area");
                ql3.setText("it can crush plants...");
                ql4.setText("...but is also very useful to them");
                qp = "compost";
                break;
                default:
                ql1.setText("this is a garden item");
                ql2.setText("it requires heavy work to do");
                ql3.setText("and good looking after");
                ql4.setText("the outcome is surprisingly delicate");
                qp = "plants";
                break;
         othertime.scheduleAtFixedRate(new TimerTask() {
                   int otherval = 0;
                   public void run() {
                        switch (otherval)
                             case 1:
                             timelabel.setText("20");
                                  ql5.setText(qp);
                                  ql1.setVisible(true);
                                  box.setEnabled(true);
                                  break;
                             case 2:
                                 timelabel.setText("19");
                                 break;
                                      case 3:
                                 timelabel.setText("18");
                                 break;
                                      case 4:
                                 timelabel.setText("17");
                                 break;
                             case 5:
                                  timelabel.setText("16");
                                  ql2.setVisible(true);
                                  break;
                                       case 6:
                                 timelabel.setText("15");
                                 break;
                                      case 7:
                                 timelabel.setText("14");
                                 break;
                                      case 8:
                                 timelabel.setText("13");
                                 break;
                                      case 9:
                                 timelabel.setText("12");
                                 break;
                             case 10:
                                 timelabel.setText("11");
                                  ql3.setVisible(true);
                                  break;
                                       case 11:
                                 timelabel.setText("10");
                                 break;
                                      case 12:
                                 timelabel.setText("9");
                                 break;
                                      case 13:
                                 timelabel.setText("8");
                                 break;
                                      case 14:
                                 timelabel.setText("7");
                                 break;
                             case 15:
                             timelabel.setText("6");
                                  ql4.setVisible(true);
                                  break;
                                       case 16:
                                 timelabel.setText("5");
                                 break;
                                      case 17:
                                 timelabel.setText("4");
                                 break;
                                      case 18:
                                 timelabel.setText("3");
                                 break;
                                      case 19:
                                 timelabel.setText("2");
                                 break;
                             case 20:
                                 timelabel.setText("1");
                                 break;
                             case 21:
                                 timelabel.setText("");
                                 duh --;
                             if(duh == 1){
                             ql6.setText("you win!!!");     
                             } else {
                             ql6.setText("you lose");
                                  break;
                        otherval++;
                   } }, 1000, 1000);
           public void itemStateChanged(ItemEvent e){
                        box.setEnabled(false);
                        if(box.getSelectedItem() == ql5.getText()){
                        duh ++;
                        } else {
                      funnum ++;
      }as i say, the ending will always be "you lose".
    anyhoo, for those of you who want a question its "what am i doing wrong that prevents the user from winning?"
    thankyou for your help (if you do help).

    the point of the decremation is that duh is incremented if you get the answer right,
    public void itemStateChanged(ItemEvent e){
                        box.setEnabled(false);
                        if(box.getSelectedItem() == ql5.getText()){
                        duh ++;
                        } else {
                      funnum ++;
                   } and then duh is decremented, like so:
         case 21:
                                 timelabel.setText("");
                                 duh --;
                             if(duh == 1){
                             ql6.setText("you win!!!");     
                             } else {
                             ql6.setText("you lose");
                                  break;the point is that if the user gets it right, duh should be incremented, then in the switch statements decrements the value of duh. so if the user got it right, duh should equal 1. else duh will be decreased to zero
    hope that makes it more clear (i'm not very good with explaining stuff)

  • I need help with a bad system /etc/profile

    I need your help, I put an exec line in the wrong place, it reads like this:
    exec /usr/local/bin/spillman
    I meant to put in into the etc/skel/.profile, I didn't have that app installed yet, and now when I try and login, even as root, I get looped back to the login prompt...I think I am in trouble, and there are currently no users logged in to su from....

    ok boot cdrom -s
    # fsck /dev/rdsk/c0t0d0s0 (your root slice may be different)
    # mount /dev/dsk/c0t0d0s0 /a
    # cd /a/etc
    # TERM=vt100 (your TERM type may be different)
    #export TERM
    #vi profile
    ...(vi the "problem")
    # cd
    #umount /a
    Note: if you have a mirror it is a very good idea to repeat the above steps for it as well.
    # halt
    ok boot

  • Need help with a simple Rename/Join Domain/Install SCCM Client Task Sequence

    Good morning everyone,
    I need to create a very simple task sequence that will run an .exe that we have created that renames the computer based on a prefix-serialnumber...then restarts, adds it to our domain, restarts, and then installs the SCCM client.
    1) run rename program 
    2) join to domain
    3) install sccm client
    Can someone help me with the steps that will be required for this?
    Thank you very much!
    **note, these will not be formatted/have an OS installation ran on it with this task sequence.  The situation is that we are receiving 400+ custom configured laptops, and we're going to have to rename/join/install sccm on each...trying to simplify
    this
    any recommendations are greatly appreciated!

    Narcoticoo : Which boot image am i supposed to be using to insure that it boots into Standard Windows, NOT WinPE?  I have a standard x86 package / boot image i've been using.  If it boots up with this, it goes into WinPE (correct me if I'm wrong,
    for this seems to be what happens each time it boots off the boot image...it does not go into windows standard/full)
    When I go into properties of the one i'm using, and take the check off of "Use a boot image", where it will not boot to WinPE, it will not even show up in my list of available task sequences for
    1) when I PXE boot to try the task sequence, or
    2) when I try to make stand-alone media for this task sequence as you have suggested
    When I run the standalone media, the only log files I find are the following with errors:
    PackageID = 'MPS0014E' InstallSoftware
    12/8/2014 12:28:36 PM 2344 (0x0928)
    BaseVar = '', ContinueOnError='' InstallSoftware
    12/8/2014 12:28:36 PM 2344 (0x0928)
    ProgramName = 'MPHS - Rename Computer' InstallSoftware
    12/8/2014 12:28:36 PM 2344 (0x0928)
    SwdAction = '0002' InstallSoftware
    12/8/2014 12:28:36 PM 2344 (0x0928)
    IsSMSV4PlusClient() == true, HRESULT=80004005 (e:\nts_sccm_release\sms\client\osdeployment\installsoftware\main.cpp,332)
    InstallSoftware 12/8/2014 12:28:36 PM
    2344 (0x0928)
    Configuration Manager client is not installed
    InstallSoftware 12/8/2014 12:28:36 PM
    2344 (0x0928)
    Process completed with exit code 2147500037
    TSManager 12/8/2014 12:28:36 PM
    1544 (0x0608)
    TSManager 12/8/2014 12:28:36 PM
    1544 (0x0608)
    Failed to run the action: Install Package. 
    Unspecified error (Error: 80004005; Source: Windows)
    TSManager 12/8/2014 12:28:36 PM
    1544 (0x0608)
    Failed to run the action: Install Package. Execution has been aborted
    TSManager 12/8/2014 12:28:36 PM
    1544 (0x0608)
    Do not send status message in full media case
    TSManager 12/8/2014 12:28:36 PM
    1544 (0x0608)
    Failed to run the last action: Install Package. Execution of task sequence failed.
    Unspecified error (Error: 80004005; Source: Windows)
    TSManager 12/8/2014 12:28:36 PM
    1544 (0x0608)
    Do not send status message in full media case
    TSManager 12/8/2014 12:28:36 PM
    1544 (0x0608)
    Execution::enExecutionFail != m_eExecutionResult, HRESULT=80004005 (e:\nts_sccm_release\sms\client\tasksequence\tsmanager\tsmanager.cpp,866)
    TSManager 12/8/2014 12:43:48 PM
    1544 (0x0608)
    Task Sequence Engine failed! Code: enExecutionFail
    TSManager 12/8/2014 12:43:48 PM
    1544 (0x0608)
    TSManager 12/8/2014 12:43:48 PM
    1544 (0x0608)
    Task sequence execution failed with error code 80004005
    TSManager 12/8/2014 12:43:48 PM
    1544 (0x0608)

  • Hello, I need help with my macbook pro. It looks like I cannot install anything anymore. Everytime I try to install a new software, use the migration assistant or click the lock to make changes, it simply does not react.

    Hello, I need help with my macbook pro.
    It looks like I cannot install anything anymore. Everytime I try to install a new software, I simply get stuck during the installation type process. I put in my password, it does accept it, but it does not go any further.
    I tried to reset the password, put no password, repair the permissions, the disk but nothing will do. I nearly got stuck with the log in screen but finally succeeded in disabling it.
    So I thought I might try to create a new account but I cannot click the lock to make changes. It simply refuses to react.
    I am now thinking about using the migration assistant to save all my settings, data and so fourth, but again I get stuck when I have to type in my password. It accepts it but nothing happens...
    I guess it has something to do with the authorization process, but can't find anything on the internet about it... Can you help me out?
    I am running Lion 10.7.3.
    Regards,
    Nicolas.
    (I apologize if any grammatical/structural mistakes were to be found, english is not my mother-tongue. )

    You probably won't like this suggestion, but I suggest you reinstall Lion.
    First, backup your system. Next, reboot your system, press/hold the COMMAND-R keys to boot into the Recovery HD. Select 'Reinstall Mac OS X'. If you purchased Lion as an upgrade to Snow Leopard, the reinstall process will install Lion 10.7.3. If your system came preinstalled with Lion, you might still get Lion 10.7.2. Both installs are a total install of the OS. None of your apps or data will be impacted. Just the OS.

  • I need help with a PDF file that is an image, the "Read Out Loud' option does not work, please help!

    I need help with a PDF file that is an image, the "Read Out Loud' option does not work, please help!

    You mean an image such as a scanned document?
    If that is the case, the file doesn't contain any text for Reader Out Loud to read. In order to fix that, you would need an application such as Adobe Acrobat that does Optical Character Recognition to convert the images to actual text.
    You can also try to export the file as a Word document or something else using ExportPDF which I believe offers OCR and is cheaper than Acrobat.

  • I need help with changing my verizon vm to the system voicemail

    I need help with changing my verizon vm to the system voicemail

    Deleting the iTunes account is not the solution as you will very likely lose any and all purchases ever made with the account.
    If you cannot find the option on the site, contact iTunes support.

  • Need help with Berkeley XML DB Performance

    We need help with maximizing performance of our use of Berkeley XML DB. I am filling most of the 29 part question as listed by Oracle's BDB team.
    Berkeley DB XML Performance Questionnaire
    1. Describe the Performance area that you are measuring? What is the
    current performance? What are your performance goals you hope to
    achieve?
    We are measuring the performance while loading a document during
    web application startup. It is currently taking 10-12 seconds when
    only one user is on the system. We are trying to do some testing to
    get the load time when several users are on the system.
    We would like the load time to be 5 seconds or less.
    2. What Berkeley DB XML Version? Any optional configuration flags
    specified? Are you running with any special patches? Please specify?
    dbxml 2.4.13. No special patches.
    3. What Berkeley DB Version? Any optional configuration flags
    specified? Are you running with any special patches? Please Specify.
    bdb 4.6.21. No special patches.
    4. Processor name, speed and chipset?
    Intel Xeon CPU 5150 2.66GHz
    5. Operating System and Version?
    Red Hat Enterprise Linux Relase 4 Update 6
    6. Disk Drive Type and speed?
    Don't have that information
    7. File System Type? (such as EXT2, NTFS, Reiser)
    EXT3
    8. Physical Memory Available?
    4GB
    9. Are you using Replication (HA) with Berkeley DB XML? If so, please
    describe the network you are using, and the number of Replica’s.
    No
    10. Are you using a Remote Filesystem (NFS) ? If so, for which
    Berkeley DB XML/DB files?
    No
    11. What type of mutexes do you have configured? Did you specify
    –with-mutex=? Specify what you find inn your config.log, search
    for db_cv_mutex?
    None. Did not specify -with-mutex during bdb compilation
    12. Which API are you using (C++, Java, Perl, PHP, Python, other) ?
    Which compiler and version?
    Java 1.5
    13. If you are using an Application Server or Web Server, please
    provide the name and version?
    Oracle Appication Server 10.1.3.4.0
    14. Please provide your exact Environment Configuration Flags (include
    anything specified in you DB_CONFIG file)
    Default.
    15. Please provide your Container Configuration Flags?
    final EnvironmentConfig envConf = new EnvironmentConfig();
    envConf.setAllowCreate(true); // If the environment does not
    // exist, create it.
    envConf.setInitializeCache(true); // Turn on the shared memory
    // region.
    envConf.setInitializeLocking(true); // Turn on the locking subsystem.
    envConf.setInitializeLogging(true); // Turn on the logging subsystem.
    envConf.setTransactional(true); // Turn on the transactional
    // subsystem.
    envConf.setLockDetectMode(LockDetectMode.MINWRITE);
    envConf.setThreaded(true);
    envConf.setErrorStream(System.err);
    envConf.setCacheSize(1024*1024*64);
    envConf.setMaxLockers(2000);
    envConf.setMaxLocks(2000);
    envConf.setMaxLockObjects(2000);
    envConf.setTxnMaxActive(200);
    envConf.setTxnWriteNoSync(true);
    envConf.setMaxMutexes(40000);
    16. How many XML Containers do you have? For each one please specify:
    One.
    1. The Container Configuration Flags
              XmlContainerConfig xmlContainerConfig = new XmlContainerConfig();
              xmlContainerConfig.setTransactional(true);
    xmlContainerConfig.setIndexNodes(true);
    xmlContainerConfig.setReadUncommitted(true);
    2. How many documents?
    Everytime the user logs in, the current xml document is loaded from
    a oracle database table and put it in the Berkeley XML DB.
    The documents get deleted from XML DB when the Oracle application
    server container is stopped.
    The number of documents should start with zero initially and it
    will grow with every login.
    3. What type (node or wholedoc)?
    Node
    4. Please indicate the minimum, maximum and average size of
    documents?
    The minimum is about 2MB and the maximum could 20MB. The average
    mostly about 5MB.
    5. Are you using document data? If so please describe how?
    We are using document data only to save changes made
    to the application data in a web application. The final save goes
    to the relational database. Berkeley XML DB is just used to store
    temporary data since going to the relational database for each change
    will cause severe performance issues.
    17. Please describe the shape of one of your typical documents? Please
    do this by sending us a skeleton XML document.
    Due to the sensitive nature of the data, I can provide XML schema instead.
    18. What is the rate of document insertion/update required or
    expected? Are you doing partial node updates (via XmlModify) or
    replacing the document?
    The document is inserted during user login. Any change made to the application
    data grid or other data components gets saved in Berkeley DB. We also have
    an automatic save every two minutes. The final save from the application
    gets saved in a relational database.
    19. What is the query rate required/expected?
    Users will not be entering data rapidly. There will be lot of think time
    before the users enter/modify data in the web application. This is a pilot
    project but when we go live with this application, we will expect 25 users
    at the same time.
    20. XQuery -- supply some sample queries
    1. Please provide the Query Plan
    2. Are you using DBXML_INDEX_NODES?
    Yes.
    3. Display the indices you have defined for the specific query.
         XmlIndexSpecification spec = container.getIndexSpecification();
         // ids
         spec.addIndex("", "id", XmlIndexSpecification.PATH_NODE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
         spec.addIndex("", "idref", XmlIndexSpecification.PATH_NODE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
         // index to cover AttributeValue/Description
         spec.addIndex("", "Description", XmlIndexSpecification.PATH_EDGE | XmlIndexSpecification.NODE_ELEMENT | XmlIndexSpecification.KEY_SUBSTRING, XmlValue.STRING);
         // cover AttributeValue/@value
         spec.addIndex("", "value", XmlIndexSpecification.PATH_EDGE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
         // item attribute values
         spec.addIndex("", "type", XmlIndexSpecification.PATH_EDGE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
         // default index
         spec.addDefaultIndex(XmlIndexSpecification.PATH_NODE | XmlIndexSpecification.NODE_ELEMENT | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
         spec.addDefaultIndex(XmlIndexSpecification.PATH_NODE | XmlIndexSpecification.NODE_ATTRIBUTE | XmlIndexSpecification.KEY_EQUALITY, XmlValue.STRING);
         // save the spec to the container
         XmlUpdateContext uc = xmlManager.createUpdateContext();
         container.setIndexSpecification(spec, uc);
    4. If this is a large query, please consider sending a smaller
    query (and query plan) that demonstrates the problem.
    21. Are you running with Transactions? If so please provide any
    transactions flags you specify with any API calls.
    Yes. READ_UNCOMMITED in some and READ_COMMITTED in other transactions.
    22. If your application is transactional, are your log files stored on
    the same disk as your containers/databases?
    Yes.
    23. Do you use AUTO_COMMIT?
         No.
    24. Please list any non-transactional operations performed?
    No.
    25. How many threads of control are running? How many threads in read
    only mode? How many threads are updating?
    We use Berkeley XML DB within the context of a struts web application.
    Each user logged into the web application will be running a bdb transactoin
    within the context of a struts action thread.
    26. Please include a paragraph describing the performance measurements
    you have made. Please specifically list any Berkeley DB operations
    where the performance is currently insufficient.
    We are clocking 10-12 seconds of loading a document from dbd when
    five users are on the system.
    getContainer().getDocument(documentName);
    27. What performance level do you hope to achieve?
    We would like to get less than 5 seconds when 25 users are on the system.
    28. Please send us the output of the following db_stat utility commands
    after your application has been running under "normal" load for some
    period of time:
    % db_stat -h database environment -c
    % db_stat -h database environment -l
    % db_stat -h database environment -m
    % db_stat -h database environment -r
    % db_stat -h database environment -t
    (These commands require the db_stat utility access a shared database
    environment. If your application has a private environment, please
    remove the DB_PRIVATE flag used when the environment is created, so
    you can obtain these measurements. If removing the DB_PRIVATE flag
    is not possible, let us know and we can discuss alternatives with
    you.)
    If your application has periods of "good" and "bad" performance,
    please run the above list of commands several times, during both
    good and bad periods, and additionally specify the -Z flags (so
    the output of each command isn't cumulative).
    When possible, please run basic system performance reporting tools
    during the time you are measuring the application's performance.
    For example, on UNIX systems, the vmstat and iostat utilities are
    good choices.
    Will give this information soon.
    29. Are there any other significant applications running on this
    system? Are you using Berkeley DB outside of Berkeley DB XML?
    Please describe the application?
    No to the first two questions.
    The web application is an online review of test questions. The users
    login and then review the items one by one. The relational database
    holds the data in xml. During application load, the application
    retrieves the xml and then saves it to bdb. While the user
    is making changes to the data in the application, it writes those
    changes to bdb. Finally when the user hits the SAVE button, the data
    gets saved to the relational database. We also have an automatic save
    every two minues, which saves bdb xml data and saves it to relational
    database.
    Thanks,
    Madhav
    [email protected]

    Could it be that you simply do not have set up indexes to support your query? If so, you could do some basic testing using the dbxml shell:
    milu@colinux:~/xpg > dbxml -h ~/dbenv
    Joined existing environment
    dbxml> setverbose 7 2
    dbxml> open tv.dbxml
    dbxml> listIndexes
    dbxml> query     { collection()[//@date-tip]/*[@chID = ('ard','zdf')] (: example :) }
    dbxml> queryplan { collection()[//@date-tip]/*[@chID = ('ard','zdf')] (: example :) }Verbosity will make the engine display some (rather cryptic) information on index usage. I can't remember where the output is explained; my feeling is that "V(...)" means the index is being used (which is good), but that observation may not be accurate. Note that some details in the setVerbose command could differ, as I'm using 2.4.16 while you're using 2.4.13.
    Also, take a look at the query plan. You can post it here and some people will be able to diagnose it.
    Michael Ludwig

  • Need help with almost completed plugin engine project

    Hi all,
    For a while now I have been working on a plugin engine. After a few iterations, the engine is similar to the Eclipse engine, in that plugins use extension points and extensions to allow contributions. Unlike the eclipse engine I have added the ability for plugins to fire events through the engine and other plugins can add listeners, all through the plugin.xml manifest. Dependencies are mostly handled automatically at plugin load time (when extensions get resolved to extension points, and listeners get resolved to events). For the case where a plugin needs to use classes from another plugin, dependencies are also allowed to be declared. Like the eclipse engine, activation of plugins occurs the first time a class is used within the plugin's classpath, OR a plugin can be activated after it is loaded.
    What I need help with is testing, working on examples to provide with the engine project, and feedback/suggestions before we release the M1 build. I am asking for those that are interested in this type of work to volunteer to help where applicable and possible. I want to provide a solid plugin engine to the java community, one that is easy to use, works well, and is pretty effecient in terms of resource usage and performance.
    Of particular interest to me right at the moment is dealing with multiple versions. As I see it, the engine will be used within an application and as such plugins would be distributed with a specific application version. The plugin version itself is more of a notification as to what version a plugin is, although I imagine it will help when updating at runtime as well.
    Just a few other details of the engine. It handles (or will soon) dynamic load, unload and reload of plugins at runtime. Plugins can be distributed in an archive file format, we call .par (Plugin ARchive), with additional plugin filename extensions configurable at runtime. The plugins can be developed and deployed in an expanded directory format as they are in Eclipse as well, or in the archive format. In the archive format they do not need to be unzipped when deployed, and they can contain embeded jar/zip libraries. The engine handles finding and creating classes directly out of the .par file at runtime.
    Multiple locations to find plugins are configurable before the engine starts, and even after it starts more could be added to allow additional locations to find plugins. URLs are supported, and soon the HTTP protocol will be supported so that plugins can be downloaded and installed at runtime.
    The project can be found at www.sourceforge.net/projects/genpluginengine. If you would like to get involved and help out, please sign up on the dev mail list and send an email to introduce yourself to the rest of the members on the list.
    I'll also add that I am working on a Swing UI Framework built entirely from plugins. It provides a ready-to-launce UI application that developers can simply add their plugins to, extending various extension points of the framework to have menu items, toolbar buttons, status bar access, help and preferences dialog additions, file i/o choosers, tons of open-source components ready to use (or extend to add on to), and like Eclipse, hopefully... draggable window frames that can be dropped on any other frame to form a tabbed frame of windows. Some of this is a ways off, some is getting there now. Presently you can add menu items that do allow plugin activation when first clicked, so plugins can be loaded but not activated until needed. The Preference dialog works but is not completed, and a plugin that adds a plugin control panel to view all loaded plugins, activate them, load/unload/reload, view extension points, extensions, dependencies, etc is partially completed. The point is, to allow a ready to run UI framework in Swing with an easy path for developers to quickly build applications with. If you are interested in this, when you join the mail list and introduce yourself, indicate that you are interested in this as well, as we need help with plugin development for it and would appreciate more help here too.
    Look forward to some replies.

    Might I suggest setting up a project at a known project-site? I've seen your progress and questions posted here from time to time, but one of the drawbacks is that you have to fill each post with the entirity of your vision to explain what you're doing. That's a lot of text to read - and most folks will skip right over it.
    On the other hand, a well-crafted, good-looking project web-site, with appropriate links and docs and vision statements, diagrams, etc. will have more likelyhood of attracting volunteers. java.net and sourceforge.net are likely spots to set up shop. In addition, you get CVS and bug-tracking systems, which can be quite valuable in such a large-scale project where there are lots of pieces.

  • Need help with a simple process with FTP Adapter and File Adapter

    I am trying out a simple BPEL process that gets a file in opaque mode from a FTP server using a FTP adapter and writes it to the local file system using a File Adapter. However, the file written is always empty (zero bytes). I then tried out the FTPDebatching sample using the same FTP server JNDI name and this work fine surprisingly. I also verified by looking at the FTP server logs that my process actually does hit the FTP server and seems to list the files based on the filtering condition - but it does not issue any GET or RETR commands to actually get the files. I am suspecting that the problem could be in the Receive, Assign or Invoke activities, but I am not able identify what it is.
    I can provide additional info such as the contents of my bpel and wsdl files if needed.
    Would appreciate if someone can help me with this at the earliest.
    Thanks
    Jay

    persiandude wrote:
    Topic: Need help with if, else, and which statements and loops.
    How would I display 60 < temp. <= 85 in java
    System.out.println("60 < temp. <= 85 in java");
    another question is how do I ask a question like want to try again (y/n) after a output and asking that everytime I type in yes after a output and terminate when saying No.Sun's [basic Java tutorial|http://java.sun.com/docs/books/tutorial/]
    Sun's [New To Java Center|http://java.sun.com/learning/new2java/index.html].Includes an overview of what Java is, instructions for setting up Java, an intro to programming (that includes links to the above tutorial or to parts of it), quizzes, a list of resources, and info on certification and courses.
    [http://javaalmanac.com|http://javaalmanac.com]. A couple dozen code examples that supplement [The Java Developers Almanac|http://www.amazon.com/exec/obidos/tg/detail/-/0201752808?v=glance].
    jGuru. A general Java resource site. Includes FAQs, forums, courses, more.
    JavaRanch. To quote the tagline on their homepage: "a friendly place for Java greenhorns." FAQs, forums (moderated, I believe), sample code, all kinds of goodies for newbies. From what I've heard, they live up to the "friendly" claim.
    Bruce Eckel's [Thinking in Java|http://mindview.net/Books/DownloadSites] (Available online.)
    Joshua Bloch's [Effective Java|http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/ref=pd_bbs_1?ie=UTF8&s=books&qid=1214349768&sr=8-1]
    Bert Bates and Kathy Sierra's [Head First Java|http://www.amazon.com/exec/obidos/tg/detail/-/0596004656?v=glance].
    James Gosling's [The Java Programming Language|http://www.bookpool.com/sm/0321349806].

  • Need help with my usecase based on transient ViewObject

    I am using 11.1.1.4.0 Jdev version. I need help with my usecase.Been trying it for 2 days but couldn't figure out the issue.
    I have a transientVO . In this VO Rows will be populated programmatically. CountryId is an attribute of this VO. I have created a viewAccessor "CountriesVA" from Country VO of HR schema.
    I have a LOV for the countryId which is based on this VA ,getting countries from CountryTable.
    This is the model part which works fine.
    Before the page load i have called  a method to create a row for this transientVO.Once the row is created i can see the SOC in my page which i have created as below.
    Now i want to insert a row in the transientVO if user selects a country and restrict duplicate entry . (As One row is already created 1st time there will be no rows created.after that rows will be inserted)
    The issue is :: Suppose there are 2 countries. A & B .When user does the following actions :
    Insert A . Done //as 1st entry
    Insert B . Done //as 1st time entry
    Insert A . duplicate not inserted
    Insert B . getting inserted // the bug.
    <af:selectOneChoice value="#{bindings.CountryId.inputValue}"
                            label="#{bindings.CountryId.label}"
                            required="#{bindings.CountryId.hints.mandatory}"
                            shortDesc="#{bindings.CountryId.hints.tooltip}" id="soc1"
                            immediate="true" autoSubmit="true"
                            valueChangeListener="#{pageFlowScope.managedBean.countryIdVC}">
        public void countryIdVC(ValueChangeEvent valueChangeEvent) {
            // Add event code here...
            String oldValue=null;
              setEL("#{bindings.CountryId.inputValue}", valueChangeEvent.getOldValue());
              if(evaluateEL("#{bindings.CountryId.attributeValue}")!=null)
             oldValue =evaluateEL("#{bindings.CountryId.attributeValue}").toString();
                    setEL("#{bindings.CountryId.inputValue}", valueChangeEvent.getNewValue());
            String newValue=evaluateEL("#{bindings.CountryId.attributeValue}").toString();
            BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
             DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("ViewObj1Iterator");
             //access the underlying RowSetIterator
             RowSetIterator rsi = dciter.getRowSetIterator();
          boolean duplicate=true;
          if(oldValue!=null){
                    rsi.getCurrentRow().setAttribute("CountryId", oldValue);
        //  Row row= rsi.findByKey(new Key(new Object[] { newValue}), 1)[0];
          Key key =new Key(new Object[] { newValue});
          Row row=rsi.getRow(key);
          if(row==null){
          System.err.println(duplicate);
            duplicate=false;
          }else{
            rsi.setCurrentRow(row);
             if(!duplicate){
             //get handle to the last row
             Row lastRow = rsi.last();
             //obtain the index of the last row
             int lastRowIndex = rsi.getRangeIndexOf(lastRow);
             //create a new row
             Row newRow = rsi.createRow();
             newRow.setAttribute("CountryId", newValue);
             //initialize the row
             newRow.setNewRowState(Row.STATUS_INITIALIZED);
             //add row to last index + 1 so it becomes last in the range set
             rsi.insertRowAtRangeIndex(lastRowIndex +1, newRow);
             //make row the current row so it is displayed correctly
             rsi.setCurrentRow(newRow);

    I read the reply from Andrejus Baranovskis and thought of studying and implementing that in my useCase.Well it worked . I implemented the same Logic but rowIteration was done in AppModule.
    Con-Fusion, Bugs, Facts &amp;amp; Workarounds: Iterating through View Object RowIterator Bug.(NOT ADF BUG, Development B…
    http://docs.oracle.com/cd/E15523_01/web.1111/b31974/bcservices.htm#sm0206
    9.7.6 What You May Need to Know About Programmatic Row Set Iteration
    The problem is solved ,the above links helped me solve the problem.
    what i did is i have created a method in appmodule to iterate rows and all the method y operation bindings and my logic works fine ....
    MY Advice to all Adf developers ,though i am not an expert but i can assure you to follow the above process for rowIteration.If you use the  iterator binding in the manage bean to navigate the rows u'll face issues which are unexpected.
    In AppModule :::::
        public boolean createRow(String oldValue,String newValue){
         System.err.println(oldValue+""+newValue);
          ViewObjectImpl vo=getViewObj1();
          boolean duplicate=false;
          if(oldValue!=null){
          RowSetIterator iter = vo.createRowSetIterator(null);
          System.err.println("iterating rows ");
             while (iter.hasNext()) {
                 Row r = iter.next();
                 System.err.println(iter.getRangeIndexOf(r)+" row is "+r.getAttribute("CountryId"));
                 if(r.getAttribute("CountryId").toString().equals(newValue)){
                     duplicate=true;
                     break;
                 // Do something with the current row.
             // close secondary row set iterator
             iter.closeRowSetIterator();
          return duplicate;
    In ManageBean :::::
        public void countryIdVC(ValueChangeEvent valueChangeEvent) {
            // Add event code here...
            String oldValue=null;
           System.err.println("Old Value"+valueChangeEvent.getOldValue());
              setEL("#{bindings.CountryId.inputValue}", valueChangeEvent.getOldValue());
              if(evaluateEL("#{bindings.CountryId.attributeValue}")!=null)
             oldValue =evaluateEL("#{bindings.CountryId.attributeValue}").toString();
                    setEL("#{bindings.CountryId.inputValue}", valueChangeEvent.getNewValue());
            String newValue=evaluateEL("#{bindings.CountryId.attributeValue}").toString();
            BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
             //access the name of the iterator the table is bound to. Its "allDepartmentsIterator"
             //in this sample
             DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("ViewObj1Iterator");
             //access the underlying RowSetIterator
             RowSetIterator rsi = dciter.getRowSetIterator();
             if(oldValue!=null){
                          rsi.getCurrentRow().setAttribute("CountryId", oldValue);
               OperationBinding operation = bindings.getOperationBinding("createRow");
               operation.getParamsMap().put("oldValue", oldValue);
               operation.getParamsMap().put("newValue", newValue);
          if(!(Boolean)operation.execute()){
          //get handle to the last row
          Row lastRow = rsi.last();
          //obtain the index of the last row
          int lastRowIndex = rsi.getRangeIndexOf(lastRow);
          //create a new row
          Row newRow = rsi.createRow();
          newRow.setAttribute("CountryId", newValue);
          //initialize the row
          newRow.setNewRowState(Row.STATUS_INITIALIZED);
          //add row to last index + 1 so it becomes last in the range set
          System.err.println("Inserting row at index "+lastRowIndex+1);
          rsi.insertRowAtRangeIndex(lastRowIndex +1, newRow);
          //make row the current row so it is displayed correctly
          rsi.setCurrentRow(newRow);
          else{
            System.err.println("Data found So not inserting,only setting current Row");
          Key key =new Key(new Object[] { newValue});
            rsi.setCurrentRow(rsi.getRow(key));

  • Need Help With Download For Airport Express

    Ok, computer dummy here needing help with airport express. We were given airport express last night from a friend who recently purchased a newer gadget. He told us we would need to come here to download the operating system. I see lots of links to updates but no links for someone like me who has never had anything like this on my computer before. Does anyone know what link I would need to use? We have a pc with windows XP. Thanks so much for your help!

    Hello jesschambers. Welcome to the Apple Discussions!
    The AirPort Express Base Station (AX) doesn't have an "operating system" per se, but it does have built-in firmware which pretty much is the same thing. In addition, in order to administer the AX, you will need the AirPort Admin Utility for your Windows PC.
    Here are the links for the latest versions of both:
    o AirPort Express Firmware Update 6.3 for Windows
    o AirPort 4.2 for Windows

Maybe you are looking for

  • OCR and incorporation police

    I have Acrobat X and I can not after making a pdf ocr optimized because no fonts embedding. Could you please help me

  • Table with information of BIDs  from a vendor

    Hello, We are in a classical SRM 5.0 escenario and use the fucntionality BID invitations. Im looking for  tables where the information of a Vendor bid is stored in SRM. Especially the acceptance or rejection indicators of a BID. Thanks for any reply,

  • Unlocking Background layer

    I am making a collage of pictures and realized I had added a number of pictures directly onto the background without creating separate layers. When I wanted to move some of them, I couldn't because the background is locked.Is there a way to unlock th

  • Why is an episode missing in a completed series?

    Hi, I want to buy a series, called Teen wolf, its season 2. The series have episodes up to 12 but is missing episode ten. What has happened? There are lots of reviews complaining since there is that episode. I do not want to buy if i do not get that

  • Imac unexpectedly shut down without reason

    I have an Imac 21,5" since october 2010. Since three days ago, the Imac unexpectedly shut down without reason when is in rest. It's no while the Imac is working, is only when is in rest. I need to unplugged and turn on again. No shows any other probl