Feedback on course?

Has anyone taken this course?:
Solaris Operating System Administration for Experienced HP-UX and Tru64 Administrators (STS-277)
http://www.sun.com/training/catalog/courses/STS-277.xml
Pros and cons you can share? Am planning to ask my mgmt about taking it, but wanted to get some feedback first... thx...

Take it. Not only is it insightful and necessary, you'll beg to stay on a quality OS like HP-UX. Solaris is a deep pit of misery for people who have worked on HP-UX. For Sys Admins who have always been on Solaris, it's fine if you want no way of seeing your disk assignment with one command.....
Solaris takes you back to the old days of Sco/UNIX, with disk slices and partitions, and 70 different flavours of filesystem and disk management.
IMHO, Solaris has the following benefits over HP-UX:
- you can see your CPUs
- you can display your installed memory
That's it.

Similar Messages

  • User Feedback on finished courses

    Hi,
    1. Is there feedback from courses wich are marked from user as finished?
    2. Can i send invitation direct from iTunes U or do i have to use external mail program?
    Thanx

    No feedback is provided from student to instructor in iTunes U.
    You can copy the code and send it via any communication mechanism you prefer: mail, Messages, Twitter, etc. There is no way to send the code from iTunes U directly to another person's installation of iTunes U. I suggest you send feedback of how you would like it to work via Apple's feedback form:
    http://www.apple.com/feedback/itunes-u_ios.html
    Does that address your questions?

  • Unsupported image format after moving from one project to another

    I scanned several thousands of images to my Aperture library. Went thru all of them providing adjustments to many of them, keywords to all of them and adjust date/time to all of them. All of the pics were visible, format is jpeg.
    This is a managed library (all pics within Aperture db).
    This morning started to restructure the project files (had three of them). After moving couple of hundred images to newly created project file I started seeing "unsupported image format" red screen after clicking the jpeg. 20-30% of the pictures clicked showed on viewer "unsupported image format".
    Tried regenerating the previews. Tried command-option start with first fix the preferences option. Then with rebuild option.
    Tried moving the pictures back to their original project file.
    No joy... Still 20-30% of the pictures show the "unsupported image format".
    Aperture 2.1.
    Amy other tricks I could try?
    Reported this to Apple aperture feedback of course.
    --h

    Link the two Macs together: there are several ways to do this: Wireless Network, Firewire Target Disk Mode, Ethernet, or even just copy the Library to an external HD and then on to the new machine...
    But however you do choose to link the two machines...
    Simply copy the iPhoto Library from the Pictures Folder on the old Machine to the Pictures Folder on the new Machine.
    Then launch iPhoto. That's it.
    This moves photos, events, albums, books, keywords, slideshows and everything else.
    +Note: there is no importing involved+
    The thumbs appear, but the images are added 2 or 3 times each and the events are all messed up.
    This happens when you import one Library to another, which you've done by drag and drop:
    Creating a black library and over writing the new with the old.
    Your problem is arising because of the Network Share. iPhoto needs to have the Library sitting on disk formatted Mac OS Extended (Journaled). Users with the Library sitting on disks otherwise formatted regularly report issues including, but not limited to, importing, saving edits and sharing the photos.
    Regards
    TD

  • Mavericks and Beachballs

    I'd like to advise Apple of an issue. Is the Apple Support Communities the best method?
    I have a 2011 circa MacBookPro 2.2 GHz intel i7, Radeon HD 6750M, 4GB RAM. It originally came with Mac)S 10.7 (I believe), after upgrading to MacOS 10.8 I saw a large increase in the number of spinning beach balls (SBB) so much that I was advised to upgrade to MacOS 10.9 Mavericks for better memory management. About 3 weeks ago I had reached a point where the MacOS was sluggish all of the time, in fact it took 15 minutes to start the computer and achieve a functional desktop. It seemed like I was greeted with a SBB of varying lengths for just about every task I selected. On Monday, 24 Feb, I contacted Apple and they advised me to reinstall Mavericks from scratch, that it was possible that the OS updates had left some baggage behind.
    Sure enough this fixed the issue for 3 days. My MBP seemed to be back to its old self! However this morning I ran into another hard core spinning beach ball, 15 minutes later without being able to shutdown firefox or tell the MacOS to shutdown, or do anything, I finally pulled the plug and forced a restart. This stall was so horrific, maybe it would have recovered, but I did not have an hour to sit there staring at it. If I am at fault it is for not shutting down my MBP, but putting it to sleep at night. Usually I restart it about once a week or so. I may have to abandon this practice and shut down every night. After the restart every thing seems back to order for now. In the near future I plan on upgrading this hardware to 8GB RAM.
    I am not a programmer, but there seems to be something woefully inadequate in the MacOS when it allows itself to reach this state. I understand memory leakage and imagine it would not be that difficult to monitor memory usage and put out a warning that available memory is low and a restart is recommended or hold enough memory in reserve so that there will always be enough control to tell the computer to restart. I'd like to be sure Apple gets this message. Is this the best way, is there another avenue, or should I email/call them directly?
    And looking for advice on how avoid SBB in the future. Thanks!

    Dave,
    Sorry to hear of your troubles, I'll try to add my two cents worth.
    Feedback to Apple: http://www.apple.com/feedback
    Of course, there is the old fashioned letter (physical paper) to the president or some other officer of the company. I'm sure someone will see it. I've found this works well, as it is so rare these days that it gets attention - usually.
    Regarding SBB (Spinning Beach Balls) and RAM, I agree with you that 8GB RAM and probably an SSD of some sort are a good starting point or base for decent performance. I've noticed that is usually the set-up on display at the Apple retail stores. FYI: I never or very rarely ever reboot my MacBook and it works well enough. But it does seem slow at times (particularly at boot up and initial opening of applications), yet surprises me at other times with how fast it does some things - once they are opened initially and in RAM somewhere.
    I have a MacBook Pro 13" Mid 2012 with 4GB RAM, 500GB HDD, Intel Video, with OS 10.9.1 (Mavericks). It works well enough with Mavericks and Apple only software, but add Chrome and all bets are off. It will work, but is much slower as Chrome loads lots of stuff right up front. Once everthing is loaded it runs well enough though. I've come to believe that any software not native to the OS is suspect!
    I have to add though that for the past month or so, I have moved over to a PC laptop for access to MS Word (touchscreen is okay too) and the MacBook is just sitting there collecting dust. I'm not suggesting you do that - I was just curious and have been a long time user of multiple platforms.
    In reading your post, it seems your MBP (MacBook Pro) ran fine for 3 days then suddenly had problems. What happened or was installed in that 3 day period? How did you restore your data? I ask because once I restored from a Time Machine backup to a MBP and had all sorts of problems including bad performance, and sleep issues. The only answer that I came up with was to manually transfer all data and just data (files) into the new OS (after a fresh install). Data was transferred manually using an external HDD. Just a thought.
    Of course, your post also mentions that you had SBBs on your first upgrade to 10.8 before Mavericks and in-fact that was the reason for upgrading to Mavericks. I would guess whatever problems you had with 10.8 were just incorporated into Mavericks and magnified. A clean install of whatever OS (not an update) and using only native OS apps at first then slowly adding one at a time non-OS-native apps as needed while keeping an eye on resources via Activity Monitor can be of great help and lots of times identifies many problems - perhaps even with an OS native-app.
    How are you doing your install of Mavericks - off the internet, locally? My internet is so slow that I ended up creating a boot/recovery USB 3.0 fast flash drive and that helps tons with the whole process. Here is a one link of many of that process: http://www.macworld.com/article/2056561/how-to-make-a-bootable-mavericks-install -drive.html.
    Another issue that slowed down one of my Macs was found in a conflict between iWorks '09 and the new Pages, Numbers, and Keynote. I updated to the newer versions with the older versions still installed and it caused lots of problems including decreased performance. I think the older iWorks included indexing in Spotlight while the newer one did something different, so the HDD was forever indexing and killing the system (unusable!). I really don't know what the actual technical problem was, but I ended up removing the older iWorks and using the newer exclusively. The problem cleared up. I did end up re-installing iWork '09 later but it is not the default program, and I have to specifically request that a Pages document open with it.
    You had also mentioned memory leakage in passing. Activity Monitor on your Mac will monitor memory and processes and is a handy tool for checking into that. Watch for non-native OS applications in my opinion. It seems like this might be a real possibility given that you posted how a reboot fixes the problems albeit temporarily.
    Have you checked you HDD to ensure that it is clean (e.g. verify permissions, and repair disk). I usually like to run this using Disk Utility from a recovery disk (e.g. USB flash drive) or outside of the OS. I guess you could also run it off the internal partition. Hold Option then press power to boot to boot manager then select recovery partition. -  Command + R brings up the same thing but off the internet and can be slow depending on you ISP speed (your laptop may need the firmware update seen below in a hyperlink to do this). I just wanted to make sure the HDD is sound and without corruption.
    Here are some more keyboard combos that are handy.
    Cmd + Ctrl + power button = force restart
    Cmd + Option + P + R (hold all then press Power Button) = clears your PRAM or NVRAM (a good place to start).
    Option hold then Power Button = boot manager (to get to recovery another way).
    Shift hold then Power Button = safe mode (might try this to see how it responds)
    http://support.apple.com/kb/HT1533 here is the "official" list.
    http://www.maclife.com/article/howtos/how_use_os_x_boot_options_troubleshoot_you r_mac here is an older unofficial list with explainations.
    Clearing PRAM alone has fixed issues for me in the past.
    Firmware: done?
    http://support.apple.com/kb/HT4904  is a firmware update for MacBooks circa 2011 and earlier guessing this has been done or is not necessary.
    Hope something in here touches a chord or kicks off a spark to help find your MacBook's problem(s).
    Good luck.

  • Anyone?... Set View Options Default to 'This window only'

    I came across this discussion (below) that I could not find a solution for. Why does the View Options window always default to 'All Windows'? Usually when you are changing a window setting, you are doing it for that window. Obviously you should not have to change the All Windows settings that often right?
    There has got to be some plist settings (which I could not find) that will automatically set the View Options to 'This Window Only' rather than 'All Windows'.
    --> http://discussions.apple.com/thread.jspa?messageID=702637
    Subject: Change Show View Options Default to 'This window only' ??
    Message: I find it very annoying that the finder's default in show view options goes to 'All Windows' rather than 'This Window Only' -- i end up constantly chaning the appearance of folders, much to my chagrin. Is there any way to have the default be on 'This window only" ??
    Thanks!
    PowerBook G4 1.33Ghz / G5 Tower Dual 2Ghz   Mac OS X (10.4.2)   BBedit, Launchbar (obdev.com), Gmail, Sony Ericsson Z520a, Interarchy, Shuffle

    Yes, I too find the default maddening and know of no way to change it. AFAIK the behavior is hard coded into the Finder. I would be delighted if that were not the case... You can always send Feedback on the issue:
    http://www.apple.com/macosx/feedback/
    Of course, considering the number of Finder problems I doubt anything much will come of it, but you never know.
    Francine
    Schwieder

  • Airport Express error 15006 after period of no use

    I have a network composed of a Time Capsule connected via ethernet to a Mac Mini running iTunes which broadcasts to three Airport Express stations. As long as I'm actively using it, I don't have any problems. When I come home from work, I can always count on an error 15006 in iTunes saying one of the Airport Express devices has disconnected. At this point, I have to stop and restart iTunes and everything is fine again. Since the Mac Mini is headless, running as a media server, this means pulling out my laptop and getting a remote desktop on the Mac Mini to restart iTunes - a daily ritual for months now.
    I see a lot of discussion in here about restarting AEs and flashing firmware and whatnot, but it seems to me that iTunes just doesn't handle this situation properly, an error dialog is unnecessary when it could apparently just rescan the network and repair itself as it does on startup. Is there some other fix for this scenario? iTunes developers, could you please handle this sort of error differently with a more proactive approach?

    John Galt wrote:
    What a pain!
    After the investment, and getting everything tuned in and working perfectly, having that outstanding issue was... quite painful to my psyche, yes
    If you have a suggestion you should direct it via:
    http://www.apple.com/feedback/
    I did that... no feedback, of course, but it sure does seem like the last iTunes update addressed it. The dialog is still left up, but it seems to rescan the airport express devices and make them available again, for instance, in the Remote application. Keeping my fingers crossed, but it's been awhile since I hauled out the remote desktop and restarted iTunes because of that error - it was a daily event.

  • Keyword list too long

    since iphoto version 8.0.2 up to the current version 9.1.5 I have one problem: my keyword list is too long. so clicking on "search" and then on "keyword" opens a list of four collumns and way too much rows for my display. so all keywords beginning with "a" until "k" are not visible and subsequently not choosable for search.
    how can I search the first part of my keywords from "a" to "k" when the list is too long to be completely displayed?
    PS: in the first iphoto-versions I bypassed the problem by using "keyword-manager" (bullstorm.se) but since the newest version, it is no longer compatible...

    You can't, unfortunately.
    IPhoto menu -> Provide iPhoto Feedback
    Of course, you can still search using Smart Albums.
    Regards
    TD

  • SmartBand SWR10 offline using

    Hi!
    I'm time to time work in places where Internet not available (even GSM signal) up to 5 weeks. And to my regret observed that SmartBand can do nothing for me in this moments. Since no connection to the server - no updates on my Lifelog.
    Whether to wait modification Lifelog app for using offline?
    Or it's wasted money for me?

    Hi Guys!
    It works in offline mode and according to the user doc it is capable of caching about 2 weeks. Offline = SmartBand is not connected to the phone via Bluetooth. Internet connection is used when data is synchronized among Phone-Server but tracking is independent. Server backup is necessary to restore your activity e.g., when you reinstall Lifelog. The app and functionalities are continuously developed according to the rumors. Try to reset the SmartBand if you have problems.
    I also use it and I can confirm that it is trusted about 80%. It has several issues and sometimes not functioning enough well but it's Ok.
    I suggest to write down (detailed enough) here the problems without any slug and these may help dev team to get feedback (of course if the forum support team tells them) and locate/fix the bugs.

  • IPhone freezes after slide to unlock

    After update to 5.0.1 my iphone is now unable to be locked as when i slide to unlock it freezes (iphone 3gs)

    As lots of users I am having the problem that my iPhone takes many seconds to unlock once I "slide to unlock" it could sometimes take 5 to 10 seconds before my telephone reacts.
    This is really anoying, because I can't even pick up a phonecall when this happens, I have to wait untill my phone stops ringing, and then I suddenly can unlock the phone and I have to call that person back (this cant be the meaning of a phone)
    I recently noticed that this must have to do with wifi. I disabled wifi for almost 2 weeks, and I never noticed the problem again. The moment I put wifi back on, the same problem starts again. the screen stays black when I want to get it out of sleep, and after a while it gets back to life.
    The part that makes me angry is that I have this problem for a long time. and always everyone said to me it was because of the 'coma mode' so I supposed it to be a software problem and the update would fix it. Now last month my warranty and support expired, and I have updated my phone to the new 3.1.2 (which I tought would solve the problem) but now it seems not to be a software problem, and my phone is just not capable to run wifi and reacty normal at the same time! If I had known this earlyer I would have give it back to Apple, to get a new one, one that works while I still had warranty (last month). But since that coma mode problem I let my warranty expire and thought the new update would fix my problems.
    So this leaves me with a phone advertised to have wifi, but actually is not able to use wifi. (at least not if you want to make sure you can answer your calls whenever they come in)
    I know I won't get any feedback from Apple (I have to pay to get feedback of course) but I just wanted to say this.
    Maybe this could help people with the same problem.

  • Are you aware that people make thrash apps beginning with the AAA letter just to be the first app you see in AppStore, so its harder to find the true apps with all that thrash?

    Are you aware that people make thrash apps beginning with the AA letter so they can be found before the other good apps? Its now hard to properly scroll the new app with all the thrash.

    Am I aware? Yes. But I am just another Apple user and developer. Is Apple aware? Does Apple care? You need to tell Apple that you are aware and you care by sending feedback: https://www.apple.com/feedback/
    Of course, the fact that Apple doesn't even have a feedback category for the App Store might be some indication of how much they care.

  • IPhone will not slide to unlock.

    All of the buttons and the slide to turn off works, but I cannot slide to unlock. I have restored, restarted, and upgraded all software. Any ideas? It is frustrating when the phone rings and I cannot answer it.

    As lots of users I am having the problem that my iPhone takes many seconds to unlock once I "slide to unlock" it could sometimes take 5 to 10 seconds before my telephone reacts.
    This is really anoying, because I can't even pick up a phonecall when this happens, I have to wait untill my phone stops ringing, and then I suddenly can unlock the phone and I have to call that person back (this cant be the meaning of a phone)
    I recently noticed that this must have to do with wifi. I disabled wifi for almost 2 weeks, and I never noticed the problem again. The moment I put wifi back on, the same problem starts again. the screen stays black when I want to get it out of sleep, and after a while it gets back to life.
    The part that makes me angry is that I have this problem for a long time. and always everyone said to me it was because of the 'coma mode' so I supposed it to be a software problem and the update would fix it. Now last month my warranty and support expired, and I have updated my phone to the new 3.1.2 (which I tought would solve the problem) but now it seems not to be a software problem, and my phone is just not capable to run wifi and reacty normal at the same time! If I had known this earlyer I would have give it back to Apple, to get a new one, one that works while I still had warranty (last month). But since that coma mode problem I let my warranty expire and thought the new update would fix my problems.
    So this leaves me with a phone advertised to have wifi, but actually is not able to use wifi. (at least not if you want to make sure you can answer your calls whenever they come in)
    I know I won't get any feedback from Apple (I have to pay to get feedback of course) but I just wanted to say this.
    Maybe this could help people with the same problem.

  • Aperture integration with LightZone?

    I followed a link from another forum to the web site for LightZone, where there's a new "lite" version of LightZone that's meant to integrate with Lightroom and Aperture.
    Has anyone else tried it?
    One complaint about Aperture is that it apparently only allows one 3rd party editor in its Preferences window; so I can't selective use LightZone for some images and Photoshop for others.
    Anyone have any suggestions for that?

    I followed a link from another forum to the web site
    for LightZone, where there's a new "lite" version of
    LightZone that's meant to integrate with Lightroom
    and Aperture.
    Has anyone else tried it?
    I really like it, the contrast mask is excellent and it has some really good ideas for editing. I think it's great the Lightzone author has realized that the app may be more popular as an adjust to programs like Aperture or Lightroom.
    One complaint about Aperture is that it apparently
    only allows one 3rd party editor in its
    Preferences window; so I can't selective use
    LightZone for some images and Photoshop for others.
    Anyone have any suggestions for that?
    No, still thinking about that problem. Submit feedback of course...

  • Feedback about official Oracle courses

    This is duplicate thread from Feedback about official Oracle courses
    I've become official Oracle [url http://gplivna.blogspot.com/2007/08/new-experience-ive-completed-my-first.html]course trainer recently. It was nice experence.
    However in my very first course as a trainer I've found at least one incorrectness I'd like to report. The question however is - whom to report?
    Obviously this public forum is not the right place.
    Unfortunately there wasn't any feedback address (except snail mail) on course materials and my course organizer also could not help. I'd prefer some faster (and easier to perform) communication methods than snail mail, for example, some e-mail address... :)
    Gints Plivna
    http://www.gplivna.eu

    Do you have access to OU Resource Center? If yes, check the Readiness Materials > OIG for general corrections that have been sent in already.
    In any case, contact me at fuzzy.greybeard at gmail.com - we have a small 'third party instructor' distribution list that I am trying to expand.
    /Hans

  • YOGA 2 PRO (13) Feedback

    On December 1 I ordered a Yoga 2 Pro and it arrived a couple weeks later.  The laptop definitely is nice to look at and is light weight.  Unfortunately that's where the good feelings end.  The system arrived with Windows 8.1 and I am starting to question the compatibility / testing of the hardware with the software.
    To me the response time of such a high powered laptop (i7/4G/256SSD) seems sluggish and the OS/software is quirky.  Examples of such include having to reboot or shut down every time I need to use the laptop.  Many times the laptop will freeze or take 3 - 5 minutes to wake up. I think this is a configuration issue but multiple calls to Technical Support did not correct the problem.  Tech support modified my power settings and even shut off all window upgrade notifications (odd).  They suggested I do not update the drivers or window operating system (odd).  Technical Support also modified the hard drive to continuosly operate for "9999 minutes" which I wonder how that will impact the long term operations of the hard drive.  Eventually we restored the laptop to factory settings and that has not helped either.  Interesting the laptop includes a one click restore which seems like a feature you should not need but then you realize it might be out of necessity!
    The laptop also makes verbal notifications when it goes into sleep mode.  At first I could not determine what was causing the notification but today I am now seeing multiple "yoga transition" icons appearing in my system tray.  My laptop just went into sleep mode, it began sending warning signals, and by the time I was able to wake it up there were 16 yoga transitions icons in my system tray.  I'm not sure why yoga transition is running because I did not take the laptop out of laptop mode.  The extra processing may be the cause of the delayed response for wake up and the freezing of the laptop.
    Both IE and Chrome seem to have challenges too and at times the wireless connection is quite slow.  Also note Technical Support said there no way to hard wire to your router (wireless only) and no additional slot to upgrade RAM.
    Part of my issue may be the laptop does not connect to a monitor very well.  Since the purchase the laptop rarely leaves my desk and I do not use the convertible option so I connect to a monitor 99% of the time.  I've been trying to get the basics working first.  I connected to my monitor via a 1-Meter Micro HDMI to DVI-D cable.  There seems to be a problem here which may be causing the freezing issue; just a hunch based on endless testing.
    Has anyone else had any issues with this laptop?
    It would be great to have some feedback.  I also contacted Microsoft who made it immediately clear that Lenovo had screwed up the OS.  Microsoft provided absolutely no help and said I needed to educate myself about how software licensing works. 
    For background... my usage at this point is basic email and web surfing.  I've invested approximately 20 hours in trying to work out the kinks.  Given the sluggishness and configuration quirks it seems like a poor choice so far. 
    January 9th Update - Contacted Lenovo Post Sale team today.  The Post Sale team has issued an order for a new laptop to replace existing defective laptop.  I will provide further updates when new laptop arrives.

    @mrcmburns...
    Please confirm that your driver is v17.0.1.5 by looking in Device Manager, if you would.
    ( http://support.lenovo.com/us/en/products/laptops-and-netbooks/yoga-series/yoga-2-pro-lenovo/download... )
    I ask because, in the course of doing some troubleshooting with a colleague recently, I updated my Y2P to the driver above and it has been rock-stable.
    Regards.
    English Community   Deutsche Community   Comunidad en Español   Русскоязычное Сообщество
    Community Resources: Participation Rules • Images in posts • Search (Advanced) • Private Messaging
    PM requests for individual support are not answered. If a post solves your issue, please mark it so.
    X1C3 Helix X220 X301 X200T T61p T60p Y3P • T520 T420 T510 T400 R400 T61 Y2P Y13
    I am not a Lenovo employee.

  • Feedback request for a Single Instance Application Implementation

    Hello,
    I have been working on a class which I tried to make the most generic I could so that I could re-use it for various projects. It offers 2 main functionalities:
    -Preventing multiple instances of an application
    -Allowing a user to stop the application even if it doesn't read any user input
    Of course if someone wants to have multiple instances of the same application, it is still possible. The only requirement is that each instance be configured to run on a different port.
    I would like your feedback on how I've implemented this to make sure I haven't missed the chance to make my Class flexible and re-usable. I would also make sure that there aren't any situations where the different threads used for realizing this functionality will run into any conflicts.
    My code includes the following files:
    Serviceable.java : An interface which must be implemented by every application using these classes
    DuplicateServiceException.java : An exception thrown when an instance of the application is already running
    Service.java : The class responsible for offering the functionalities I already mentionned
    Main.java : An example of a class implementing Serviceable and offering two ways of closing the Application. 1- By closing the JFrame which is displayed. 2- By sending the stop command.
    In order to execute this example, you have to specify the following command line arguments:
    -DService.Command={start/stop} //Either start or stop command
    -DService.Port=<0-65535> //Port to be used for receiving the stop command and preventing multiple instances
    Serviceable.java
    * Serviceable cares about two parts of the life of a Service.  Its startup
    * and its shutdown sequences.  The startup occurs only after making sure
    * no other instance of the Service is running.  Shutdown has to be
    * synchronized between multiple threads since it is possible to shutdown
    * the service through a shutdown command sent by another process, or through
    * the normal flow of execution of the service.
    * @author Gabriel Aubut-Lussier
    public interface Serviceable {
          * Initiates the startup of the Service since we have made sure
          * that there isn't any other instance of the Service running.
         public void startup();
          * Initiates the shutdown of the Service since we've received
          * a shutdown request from one of the two supported means of
          * shutting down.
         public void shutdown();
    DuplicateServiceException.java
    public class DuplicateServiceException extends Exception {
          * serialVersionUID?  Bah. Eclipse generates one automatically so why not...
         private static final long serialVersionUID = 3929576386522489749L;
         public DuplicateServiceException() {
              super();
         public DuplicateServiceException(String msg) {
              super(msg);
    Service.java
    * The same way a graphical application is running as long as there
    * is something to display, a background service will run as long as
    * there is an active Thread.
    * A service can be terminated in different ways.  First of all, it
    * can be terminated through its normal flow of execution.  On the
    * other hand, it is possible to provoke the termination of a Service
    * externally.
    * To terminate the service through the normal flow, just call the
    * Service.shutdown() method.  Another way to terminate the service
    * is to start a new instance of the program with the Stop command.
    * This Service implementation will behave according to two system
    * properties.  The property Service.Command can be set
    * to "start" or "stop".  When set to "start", the Service will make
    * sure there isn't another instance of the service already running.
    * If it is the case, a DuplicateServiceException will be thrown.  In
    * the other case, the Service will start.  When the "stop" command
    * is invoked, the Service will attempt to stop a running instance of
    * the Service.  The other property is Service.Port and
    * it defines the Port number which will be used to support the
    * functionalities offered by the Service class.
    * It is recommended to set these properties as command line arguments
    * when launching the application.  Moreover, batch files or shell
    * scripts can be created for invoking the start and stop commands.
    * @author Gabriel Aubut-Lussier
    public class Service implements Runnable {
         public final static String START_COMMAND = "start";
         public final static String STOP_COMMAND = "stop";
         public final static String SERVICE_COMMAND = "Service.Command";
         public final static String SERVICE_PORT = "Service.Port";
         private String serviceCommand;
         private int servicePort;
         private Serviceable service;
         private ServerSocket serviceListener;
         private Thread serviceThread;
          * Creates a new service registering the hooks required to perform
          * clean termination sequences.
          * @param s
          * @throws DuplicateServiceException
         public Service(Serviceable s) throws DuplicateServiceException {
              service = s;
              serviceCommand = System.getProperty(SERVICE_COMMAND);
              String servicePortString = System.getProperty(SERVICE_PORT);
              if(servicePortString == null)
                   servicePort = -1;
              else
                   servicePort = Integer.parseInt(servicePortString);
          * Try running this new Service instance if there isn't one
          * already running.
          * @throws DuplicateServiceException if another service instance is already running.
         public void start() throws DuplicateServiceException {
              if(serviceCommand == null || servicePort < 0) {
                   throw new IllegalArgumentException("The command and port number must be specified.");
              if(serviceCommand.equals(START_COMMAND)) {
                   try {
                        serviceListener = new ServerSocket(servicePort);
                        serviceThread = new Thread(this);
                        serviceThread.start();
                        service.startup();
                   } catch(BindException e) {
                        throw new DuplicateServiceException("An instance of the service is already running.");
                   }catch(IOException e) {
                        e.printStackTrace();
              } else if(serviceCommand.equals(STOP_COMMAND)) {
                   shutdown();
          * Provoke a shutdown command.
         public void shutdown() {
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                   out.write("shutdown");
                   out.flush();
                   out.close();
                   sock.close();
              } catch (UnknownHostException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   //This exception may occur when trying to stop a service which wasn't running.
                   //There is no need to do anything in this case.
          * While the Service is running, it listens on a port to make sure no
          * other instance of this Service is started and to listen to shutdown
          * commands.
         public void run() {
              boolean keepGoing = true;
              while(keepGoing) {
                   try {
                        Socket sock = serviceListener.accept();
                        InputStreamReader in = new InputStreamReader(sock.getInputStream());
                        char cBuf[] = new char[256];
                        int amount = in.read(cBuf);
                        in.close();
                        sock.close();
                        keepGoing = !((new String(cBuf, 0, amount)).equals("shutdown"));
                   } catch (IOException e) {
                        e.printStackTrace();
              try {
                   service.shutdown();
                   serviceListener.close();
              } catch(IOException e) {
                   e.printStackTrace();
         public String getServiceCommand() {
              return serviceCommand;
         public void setServiceCommand(String serviceCommand) {
              this.serviceCommand = serviceCommand;
         public int getServicePort() {
              return servicePort;
         public void setServicePort(int servicePort) {
              this.servicePort = servicePort;
    Main.java
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JFrame;
    public class Main implements Serviceable {
         private JFrame window;
         private Service service;
         public static void main(String[] args) {
              new Main();
         public Main() {
              try {
                   service = new Service(this);
                   service.start();
              } catch(DuplicateServiceException e) {
                   e.printStackTrace();
         public void startup() {
              window = new JFrame("SERVICE TEST! :D");
              window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              window.addWindowListener(new WindowAdapter() {
                   public void windowClosed(WindowEvent e) {
                        service.shutdown();
              window.setVisible(true);
         public void shutdown() {
              System.out.println("Application shutdown");
              window.dispose();
    }Thanks in advance for your feedback.
    -Gabriel Aubut-Lussier

    I have fixed the handshake.
    And even though it isn't implemented yet, I think I have my solution for the limitation of 1 instance per user. I plan on using a hidden file in the user's home directory in which I will write the port number where the running application is listening for events. I have not yet chosen how the port number will be chosen before being written to the file but I am thinking about using a random number between 1024 and 65535. Using this approach, it is possible to maintain all the features I've implemented in the Single Overall Instance solution I already have.
    Here is the code with the handshake fixed:
    Serviceable.java
    * Serviceable cares about two parts of the life of a Service.  Its startup
    * and its shutdown sequences.  The startup occurs only after making sure
    * no other instance of the Service is running.  Shutdown has to be
    * synchronized between multiple threads since it is possible to shutdown
    * the service through a shutdown command sent by another process, or through
    * the normal flow of execution of the service.  Moreover, when another instance
    * is prevented from being launched, the running instance is notified so that it
    * can react to such an event.
    * @author Gabriel Aubut-Lussier
    public interface Serviceable {
          * Initiates the startup of the Service since we have made sure
          * that there isn't any other instance of the Service running.
         public void startup();
          * Notifies the Service that the application has been invoked again in
          * case the running instance wants to react to such an event.  Most GUI
          * applications will just bring themselves to the front while background
          * services will maybe just want to re-scan their configuration files or
          * just ignore the event.
         public void invoke();
          * Initiates the shutdown of the Service since we've received
          * a shutdown request from one of the two supported means of
          * shutting down.
         public void shutdown();
    DuplicateInstanceException.java
    public class DuplicateServiceException extends Exception {
          * serialVersionUID?  Bah. Eclipse generates one automatically so why not...
         private static final long serialVersionUID = 3929576386522489749L;
         public DuplicateServiceException() {
              super();
         public DuplicateServiceException(String msg) {
              super(msg);
    Service.java
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.BindException;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.net.UnknownHostException;
    * The same way a graphical application is running as long as there
    * is something to display, a background service will run as long as
    * there is an active Thread.
    * A service can be terminated in different ways.  First of all, it
    * can be terminated through its normal flow of execution.  On the
    * other hand, it is possible to provoke the termination of a Service
    * externally.
    * To terminate the service through the normal flow, just call the
    * Service.shutdown() method.  Another way to terminate the service
    * is to start a new instance of the program with the Stop command.
    * This Service implementation will behave according to two system
    * properties.  The property Service.Command can be set to "start"
    * or "stop".  When set to "start", the Service will make sure there
    * isn't another instance of the service already running.  If it is
    * the case, a DuplicateServiceException will be thrown.  In the
    * other case, the Service will start.  When the "stop" command is
    * invoked, the Service will attempt to stop a running instance of
    * the Service.  The other property is Service.Port and it defines
    * the Port number which will be used to support the functionalities
    * offered by the Service class.
    * It is recommended to set these properties as command line arguments
    * when launching the application.  Moreover, batch files or shell
    * scripts can be created for invoking the start and stop commands.
    * @author Gabriel Aubut-Lussier
    public class Service implements Runnable {
         public final static String START_COMMAND = "start";
         public final static String STOP_COMMAND = "stop";
         public final static String SERVICE_COMMAND = "Service.Command";
         public final static String SERVICE_PORT = "Service.Port";
         private final static String GREETING = "Greetings";
         private final static String QUERY = "?";
         private final static String ACCEPT = "yes";
         private final static String DECLINE = "no";
         private final static String SHUTDOWN = "shutdown ";
         private final static int SO_TIMEOUT = 100;
          * This is the application-specific String
         private String serviceClass;
          * This is the command which we will execute when start() is invoked
          * The value is either "start" or "stop"
          * This value can be configured using the System property: Service.Command
         private String serviceCommand;
          * This is the port which is used to watch for duplicate instances
          * This value can be configured using the System property: Service.Port
         private int servicePort;
         private Serviceable service;
         private ServerSocket serviceListener;
         private Thread serviceThread;
          * Creates a new service registering the hooks required to perform
          * clean termination sequences.
          * @param s A Serviceable class
          * @throws DuplicateServiceException If there is a duplicate instance running
         public Service(Serviceable s) throws DuplicateServiceException {
              service = s;
              serviceClass = s.getClass().toString();
              serviceCommand = System.getProperty(SERVICE_COMMAND);
              String servicePortString = System.getProperty(SERVICE_PORT);
              if(servicePortString == null)
                   servicePort = -1;
              else
                   servicePort = Integer.parseInt(servicePortString);
          * Try running this new Service instance if there isn't one
          * already running.
          * @throws DuplicateServiceException if another service instance is already running.
          * @throws BindException if another application is using the configured port.
         public void start() throws DuplicateServiceException, BindException {
              if(serviceCommand == null || servicePort < 0 || servicePort > 65535) {
                   throw new IllegalArgumentException("The command and port number must be specified.");
              if(serviceCommand.equals(START_COMMAND)) {
                   try {
                        serviceListener = new ServerSocket(servicePort);
                        serviceThread = new Thread(this);
                        serviceThread.start();
                        service.startup();
                   } catch(BindException e) {
                        queryOtherInstance();
                        throw e;
                   } catch(IOException e) {
                        e.printStackTrace();
              } else if(serviceCommand.equals(STOP_COMMAND)) {
                   shutdown();
          * Send the shutdown command to the running instance of the application.
         public boolean shutdown() {
              boolean shutdownSuccessful = false;
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   sock.setSoTimeout(SO_TIMEOUT);
                   //If the greeting doesn't match, it's not a duplicate instance
                   //and we can't shut it down
                   InputStreamReader in = new InputStreamReader(sock.getInputStream());
                   OutputStreamWriter out;
                   if(receivedGreeting(in)) {
                        //Sending the shutdown command
                        out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(SHUTDOWN + serviceClass);
                        out.flush();
                        //Read the confirmation
                        char cBuf[] = new char[1024];
                        int amount = in.read(cBuf);
                        String confirmation = new String(cBuf, 0, amount);
                        if(confirmation.equals(ACCEPT)) {
                             shutdownSuccessful = true;
                        out.close();
                   //Closing the connection
                   in.close();
                   sock.close();
              } catch (UnknownHostException e) {
                   //This exception shouldn't happen unless the loopback address doesn't exist?
              } catch (IOException e) {
                   //This exception may occur when trying to stop a service which wasn't running.
                   //There is no need to do anything in this case.
              return shutdownSuccessful;
          * Reads the greeting from the running instance we are interacting with.
          * @param in An InputStreamReader built on the Socket's InputStream
          * @return True if we received the expected greeting, false otherwise
          * @throws IOException if a problem occurs while receiving the greeting
         private boolean receivedGreeting(InputStreamReader in) throws IOException {
              //Reading the expected greeting from the server
              char cBuf[] = new char[1024];
              int amount = in.read(cBuf);
              String greeting = new String(cBuf, 0, amount);
              return greeting.equals(GREETING);
          * While the Service is running, it listens on a port to make sure no
          * other instance of this Service is started and to listen to shutdown
          * commands.
         public void run() {
              boolean keepGoing = true;
              while(keepGoing) {
                   Socket sock;
                   InputStreamReader in;
                   try {
                        sock = serviceListener.accept();
                        sock.setSoTimeout(SO_TIMEOUT);
                        //Sending a greeting
                        OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(GREETING);
                        out.flush();
                        //Reading the incoming message
                        in = new InputStreamReader(sock.getInputStream());
                        char cBuf[] = new char[1024];
                        int amount = in.read(cBuf);
                        String message = new String(cBuf, 0, amount);
                        //Writing an answer
                        boolean invoked = message.equals(serviceClass + QUERY);
                        if(invoked) {
                             out.write(ACCEPT);
                        } else {
                             out.write(DECLINE);
                             keepGoing = !message.equals(SHUTDOWN + serviceClass);
                        out.flush();
                        //Closing the connection
                        out.close();
                        in.close();
                        sock.close();
                        //Notify the running application is there has been an invocation
                        if(invoked) {
                             service.invoke();
                   } catch (IOException e) {
                        //Seems like an IO operation failed.  Let's just forget about
                        //this connection attempt and wait for another
              //Shutdown the Service
              service.shutdown();
              try {
                   serviceListener.close();
              } catch(IOException e) {
                   //Couldn't close the serverSocket upon shutdown?
                   //weird... but anyhow...
          * Connects to the configured port to check out wether it is a duplicate
          * instance of the application or if it is another application using the
          * same port number.  If it is another application, nothing will happen.
          * @throws DuplicateServiceException if it is a duplicate instance
         private void queryOtherInstance() throws DuplicateServiceException {
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   sock.setSoTimeout(SO_TIMEOUT);
                   //Read greeting
                   InputStreamReader in = new InputStreamReader(sock.getInputStream());
                   String answer = null;
                   if(receivedGreeting(in)) {
                        //Writing the application-specific query
                        OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(service.getClass().toString() + "?");
                        out.flush();
                        //Reading the answer
                        char[] cBuf = new char[3];
                        int amount = in.read(cBuf);
                        answer = new String(cBuf, 0, amount);
                        out.close();
                   //Closing the connection
                   in.close();
                   sock.close();
                   //If the answer is "yes" then it is a duplicate
                   if(answer != null && answer.equals("yes")) {
                        throw new DuplicateServiceException("An instance of the service is already running.");
              } catch (UnknownHostException e) {
                   //This exception shouldn't happen unless the loopback address doesn't exist?
              } catch (IOException e) {
                   //If we fail to query the application appropriately we consider
                   //it isn't a duplicate entry so we do nothing.
         public String getServiceCommand() {
              return serviceCommand;
         public void setServiceCommand(String serviceCommand) {
              this.serviceCommand = serviceCommand;
         public int getServicePort() {
              return servicePort;
         public void setServicePort(int servicePort) {
              this.servicePort = servicePort;
    Main.java
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.net.BindException;
    import javax.swing.JFrame;
    public class Main implements Serviceable {
         private JFrame window;
         private Service service;
         public static void main(String[] args) {
              new Main();
         public Main() {
              try {
                   service = new Service(this);
                   service.start();
              } catch(DuplicateServiceException e) {
                   e.printStackTrace();
              } catch(BindException e) {
                   e.printStackTrace();
         public void startup() {
              window = new JFrame("SERVICE TEST! :D");
              window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              window.addWindowListener(new WindowAdapter() {
                   public void windowClosed(WindowEvent e) {
                        service.shutdown();
              window.setVisible(true);
         public void shutdown() {
              System.out.println("Application shutdown");
              window.dispose();
         public void invoke() {
              System.out.println("Another instance tried to startup");
              window.toFront();
    }

Maybe you are looking for

  • Creating a Maintenance View Table on SE11

    Hi, Experts.  I want to create a Maintenance View Table on SE11 (View option on SE11 and then selecting Maintenance view from the View Type List).  Is there anyone who have a document that will be able to help me create this table or pointers that wi

  • Retrieving data from a password protected URL

    Hi guys, I was hoping that someone might be able to advise me on how to read data into java from a password protected URL. The first page has a "login" area, where the username and password must be supplied before access to the next pages are allowed

  • Snow Leopard or Windows 7 on an External Hard Drive?

    Hello everyone, I've been using my MacBook Pro for more than a year now (It's a late 2008 2.8 ghz Inter Core 2 Duo Unibody) and I'm getting a bit annoyed of the fact how slow it had become. I have 150GB free and I'm running a 100GB Windows 7 partitio

  • Youtube resolution and premiere settings

    hi, youtube on his site state the resolution are: https://support.google.com/youtube/answer/2853702?hl=fr 240p 360p 480p 720p 1080p* new platform only Résolution 426 x 240 640 x 360 854x480 1280x720 1920x1080 but on the setting i have export to 640x4

  • SAP Portal Integration with Documentum

    Hello All - I am Documentum person and new to SAP Portal and Integration. I need to know can we Integration the SAP Portal with Documentum 6.7. If yes, What all components required from SAP product and my requriement is below. a. Create Forms / GUI t