Article comparing TopLink and Hibernate

I recently had a chance to develop two very similar J2EE applications. In one application I used TopLink. In the other application I used the open-source Hibernate persistence framework.
I wrote a brief high-level article documenting my experiences. The URL is:
http://www.calextech.com/articles/HibernateToplink.pdf
I'd appreciate any comments.

Hello, I was wondering if you have any idea on how to use JDeveloper IDE effectively while working with HIBERNATE.
Or is the notion that most of the 'HIBERNATE stuff', like generating mapping files, etc are well done outside the scope of the IDE.
We are currently evaluating HIBERNATE, and will really appreciate your help in this regard.

Similar Messages

  • Can I implement the ORM task without TopLink and Hibernate?

    Can I implement the ORM (Objest/Relational Mapping) task without TopLink and Hibernate tools?

    Any opinions are welcome.

  • Demo Application to Compare Toplink, JDBC, Hibernate

    Hi
    I Need a Demo Application which is implemented Using Toplink, JDBC, Hibernate to compare the overhead of using Toplink, Hibernate to Using JDBC.
    I got a link to Spring PetClinic Demo which is Implemented using Toplink, JDBC, Hibernate from Google but the spring site has removed this application.
    Please help to get this application or some other demo Application which can be used
    Excuse me for my bad english
    Thanks,
    Raghavendra

    PeClinic Demo Application is included in the Spring Frame work Dowload

  • TopLink vs Hibernate... revisited... again :)

    Would it be possible to get a Toplink versus Hibernate (or other ORM frameworks) going here?
    It seems like the explosive adoption of Hibernate and the associated popularity contest in the industry has put some of us in a position where we're constantly trying to sell the-right-tool-for-the-right-job which, at least for me, seems to disqualify hibernate a lot of times, esp when scalable persistence is a requirement. It seems to be really difficult to convince folks that the popularity of hibernate doesnt mean it's by default the right option.
    I've seen at least two threads on theserverside.com about hibernate versus cayenne, and despite the amount of noise in the threads, there were a few folks making some decent points. The TopLink folks were very quiet on the threads, but I know they were reading :)
    So, anyone out there have any experience comparing TopLink and Hibernate? What do you all see as the shortcomings of each, esp from a technical architecture standpoint? Are GUI tools as overrated as Gavin claims? Where's annotation support for TopLink? Is TopLink overpriced? Is Hibernate's multi-tier non-integrated caching biting anyone on big projects where persistence needs to scale, or is integrated caching overrated? Is Hibernate3 really going to fix shortcomings that TopLink already addresses in current releases? What do you all think the Hibernate crew is doing right that the TopLink crew is doing wrong and vice versa? I'm not assuming any of these questions even merit answer but just interested in some objective discussion in a forum where TopLink guys might have a stronger voice.
    Take care!

    Well, I've only got a few minutes, but I could go on for hours.
    I'll start by saying that I've been doing ORM for longer than many people knew that you could. I had been a previous TOPLink user but went for about two years without having to do any ORM.
    Then, last year I started a new project for a client who insisted we use SqlServer and was hesitant to pay for any software unless it was absolutely necessary. (This is common these days, as the fact that there is so much free software out there encourages folks to try out the free stuff before paying for something that may or may not be better). Comparing the feature list of Hibernate to TOPLink and doing a little checking seemed to indicate that going with Hibernate would be a perfectly reasonable thing to do.
    I will state, uncategorically, that this was the worst technical decision I have ever made in my life... twenty-plus years of Software Application Developing, most of it with object-oriented languages (Smalltalk and Java).
    NOTE: I must couch that statement with the caveat that part of this was due to my naivete about the architectural assumptions I made about Hibernate before including it in my application. If I would have merely learned about Hibernate's architectural assumptions (though this was not easy due to their poor documentation) and allowed these assumptions to drive my development, it would not have been nearly as painful, just yucky. Also, if my objects were much simpler/flatter and I didn't need caching to speed things up, Hibernate could have worked just fine out of the box. Problem is, I had a complex system, needed caching, and Hibernate gave me nightmares as I tried to navigate through it.
    As a test-first developer, I don't care about the GUI tools, as I'm happy to write tests to verify I can store and retrieve objects, then write the mappings and find out if it passes. What I would like is the ability to allow two threads to read the same object and not have to bring two copies of the object into memory or read the database twice. Call me crazy, but it just seems like object identity is a useful thing... perhaps my twenty years of developing object-oriented software has skewed my reasoning and I need to think like folks who haven't been programming as long.
    Hibernate's poor documentation did make it clear that it did not want me to think this way, but it also suggested that, if I wanted to think this way, it could cache objects for me so it wouldn't hit the database twice. And, I'm sure it could have cached objects in some form, but not the form I wanted. Though I thought I followed the instructions on how to set up my cache, I found that reading the same object twice didn't always get the same (as in "==") object back.
    To try to figure out why not (or why other things that an experienced object-oriented software developer couldn't figure out by reading the documentation), I had to dive into the code. This felt like diving into a water source in hopes of finding some gems, but discovering that I was swimming in a sewer full of, well, stuff that you'd find in a sewer.
    Although Hibernate advertises itself as a framework, it is much more of a blackbox framework than a whitebox. Most of the methods and many of the classes are private or protected final. There are very few places to extend what's there. And there are virtually none that allow you to override their architectural assumptions.
    The biggest architectural assumption I found to be problematic was that application developers can't be trusted to know which objects they intended to read and which they intended to write. Therefore, Hibernate "protects" you from having two sessions refer to (that's right, refer to, not modify) a collection of objects.
    In the end, we ended up having to open up the source code and make some modifications in order to make our application run with reasonable performance. We had a lot of fairly deep objects (objects that contained objects that contained objects...) and the idea of not caching the ones that were not being modified across sessions just didn't cut it for us.
    Additionally, we've spent the last few months supporting the app that we finally got into production, and greater than 75% of our bug fixing time has been due to the fact that Hibernate actually reads in objects from several places and it is difficult to tap into THE place an object is read in... because there isn't one. It goes through all sorts of intermediate states and we found out that having one process that is reading objects while another is trying to write the same object can cause some unfortunate side effects, even if you put synchronization locks in the obvious places.
    We ended up with many person months of effort and a lot of special classes getting Hibernate to do what we wanted it to do, and had to open the source code (which will make it hard to ever upgrade to the next version).
    Just recently we started a new project (where Oracle was the corporate standard DB) and decided we'd try to use TOPLink. Having not used it for several years, I had hoped it was going to be much cleaner than Hibernate to hook into our persistence layer. It was a piece of cake. In a few days we were doing what took us months to do with Hibernate, and we didn't have to perform any unnatural acts to get there.
    I would recommend Hibernate to anyone who didn't know how to build a reasonably factored object-oriented system and didn't mind forcing their system architecture to fit Hibernate's architectural assumptions. But, if you think you might have reason to define your own architecture or modify Hibernate's default behavior, TOPLink is well worth the licensing fees. Not to mention the cost of your sanity.
    Is Hibernate really free? Only if you don't value your time. I also found that you can buy outrageously priced support from JBoss to make up for their poor documentation on their poorly architected ORM blackbox framework. The documentation for TOPLink is far superior, and the simplicity of doing simple customizations and tweaks is like night and day.

  • JPA: Toplink vs Hibernate

    I am using netbeans 5.5 and I want to use JPA. I am in favor of hibernate, but why does the netbeans has toplink being the default persistence library of JPA? What are the difference between toplink and hibernate if I'll be using JPA?
    By the way, I've seen an article "Using JPA in tomcat" and I would really like to use JPA in tomcat as I think it is much faster and lighter than Glassfish. But the article also uses toplink as the persistence library? Could someone guide me in using hibernate?

    This is an video from NetBeans site. Take a look.
    It will open your eyes about Hibernate and TopLink and JPA after you checking the codes that will be generated on your own system application.
    http://www.netbeans.org/download/flash/netbeans_6_gui_builder/netbeans_6_gui_builder.html

  • Toplink vs hibernate

    hi
    who can i determine which technology is better to use with oracle. Toplink or hybernate
    mostly we use hybernate but I want to know why toplink is better than hybernate
    thanks
    Message was edited by:
    Doug Clarke

    One of the key differences between TopLink and Hibernate is the caching implementation. TopLink provides an object cache where instances can be shared across the application, client, or transaction controlled by mapping metadata and application usage. The benefits of the shared cache are clear where read-only and read-mostly objects can be shared to avoid creating many copies of the objects unnecessarily (performance costs and extra garbage creation).
    If you have more volatile or data types that are not shared you can configure TopLink's caching to be isolated and therefore only cache the objects per client or transaction.
    If you have use cases where you need to ensure you get a transactionally isolated instance of an object you have configured to be held in the shared cache you can access the object within a UnitOfWork. This will make a read-repeatable copy of the object within the 'transaction' that will not be changed by concurrent writes from other committing UnitOfWork.
    Ultimately we work hard to offer TopLink/EclipseLink developers a solution with configurable and flexible options to address a wide variety of requirements. Understanding and leveraging our cache is a key success factor in any application development with TopLink.
    As far as the duplicate SQL comment goes I have reviewed the support request we recently received on this and the issue appears to be that if you change the existence-checking from its default of check-cache to check-database we have a bug where we incorrectly check the database for each registered new instance with a zero PK value. When we see an object with a zero primary key and sequencing configured it should be assumed to be new without requiring the select. We are working with support to get this issue addressed.
    Doug

  • What are the relation between JPA and Hibernate, JPA and TopLink?

    What are the relation between JPA and Hibernate, JPA and TopLink?
    Can JPA instead of Hibernate and TopLink?

    The Java Persistence API (JPA) is the object relational mapping persistence
    standard for Java. Hibernate and TopLink provide an Open source Object-relational mapping framework for Java.
    They provide an implementation for the Java Persistence API. In my opinion, both Hibernate and TopLink provide support to JPA
    and they can also be regarded as the complementary to JPA.
    Let's wait to see other person's opinions.

  • Difference between ejb 3.0 and hibernate

    Hi, I'm new at ejb 3.0 and I've read a little about Hibernate too, but there's one thing I don't understand. Could you tell me what's the difference between using ejb 3.0 and Hibernate, both of them are for persistence, and What about toplink?

    Hi, I'm new at ejb 3.0 and I've read a little about Hibernate too, but there's one thing I don't understand. Could you tell me what's the difference between using ejb 3.0 and Hibernate, both of them are for persistence, and What about toplink?

  • JDeveloper 10.1.3  preview and Hibernate 3.0

    I'm testing JDeveloper Preview 10.1.3.0.2.223 and find some problems when using hibernate 3.0
    When I'm using with OC4J, some packages conflicts and Hibernate don't work.
    I hava to rename <jdevhome1013>\webservices\lib to <jdevhome1013>\webservices\libold
    and replace the file <jdevhome1013>\j2ee\home\lib\asm.jar from file asm.jar that folloies Hibernate 3.0
    So, I'd like to know if it's a know bug, a unknow bug or JDeveloper/OC4J won't support applications with Hibernate?
    Thanks.

    Jim, you are my Idol!!!!
    I'm evaluating JDeveloper (for the first time, not migrating from a previous version), so I'm realy brand new with this environment.
    Now that I see that you (maybe) go in the same direction I go, please, give me your opinion about one point.
    I can see JDeveloper gives the developer a lot of code-generating advantages if you accept using ADF and the rest of the whole Oracle proposed environment. Specifically, the amazing speed you can get on binding the three tiers: database (with connections and drag-and-drops for tables), Business Objects and logic (with middle tier wizards) and presentation tier (with that great drag-and-drop jsp creation tool). I think all this tools can really make a speed-difference…
    But… I don’t like “proprietary solutions”, I like open-source-standards, so… I prefer Hibernate (3.0.5), any structural-framework, like Struts or whichever, and for example JSF for the presentation tier (still evaluating this point)
    I’ve seen that tutorial about using Hibernate + JSF with JDeveloper (http://www.oracle.com/technology/pub/articles/vohra_hibernate.html) but it didn’t satisfied me too much: It’s written for Hibernate 2.1.8 and migrating to Hibernate 3.0 is not possible without a headache…
    So finally, I decided to import a “neutrally” built Struts + Hibernate 3.0 project and try to “speed it up” using JDeveloper. And then it was when I hit my head against this problem you’ve just solved! Jiiiimy, Jiiiiimy!!!! :-))))))
    So, finally, my questions:
    1)     Would you say that if I’m developing this within this kind of tools, then JDeveloper still gives me much of the speed It gives in the first case? Can I drag-and-speedy-drop from database to model tier, or from model to control or to presentation tiers without introducing any Oracle libraries in my project? How? Do you have any example?
    2)     In your opinion, which is the best environment for speeding up this whole development process: JDeveloper, Eclipse + Exadel or any other plug-in environment? Any other you may prefer?
    Hey, again, thanks a lot!! Oracle should take note of the bug you detected (and maybe pay you some bucks for it :-))
    Fer

  • Sleep and Hibernate does not work after BIOS update X1 Carbon 20A8

    As subject title, did a recent Lenovo "System Update" on BIOS and other drivers, and since then sleep and hibernate no longer works, when i close the lid, it turns on by itself after 2 seconds.
    When i select Sleep or Hibernate in Windows 8.1 with lid open, it just behaves like a Restart command.
    Need this fixed! Any ideas?

    Try downgrading to your older BIOS and see if it works again.
    W520: i7-2720QM, Q2000M at 1080/688/1376, 21GB RAM, 500GB + 750GB HDD, FHD screen
    X61T: L7500, 3GB RAM, 500GB HDD, XGA screen, Ultrabase
    Y3P: 5Y70, 8GB RAM, 256GB SSD, QHD+ screen

  • How to store an image into MySQL db using BlazeDS and Hibernate?

    Hi!
    I am using Flash Builder 4.6, BlazeDS, and Hibernate. How to store a webcam snapshot into the MySql Database. I stored Form Items by using RemoteObject into the database. But I failed to store webcam snapshot. I captured that image on Panel component.I converted that image to ByteArray. Now I want to save that image into the database. Please help me in this regard.
    thanks in advance.
    Here the Code:
    VisitorEntryForm.mxml
    <?xml version="1.0" encoding="utf-8"?>
    <mx:TitleWindow
              xmlns:mx="http://www.adobe.com/2006/mxml"
              xmlns:vo="com.visitor.vo.*"
              width="600"
              height="300"
              defaultButton="{submitButton}"
              showCloseButton="true"
              creationComplete="creationCompleteHandler();"
              close="PopUpManager.removePopUp(this);"
              title="Visitor Entry Form" xmlns:text="flash.text.*">
              <mx:RemoteObject id="saveService" destination="visitorService" result="handleSaveResult(event)" fault="handleFault(event)" showBusyCursor="true" />
              <vo:Visitor id="visitor"
                                               vType="{vTypeField.text}"
                                               vPurpose="{vPurposeField.text}"
                                               vName="{vNameField.text}"
                                               vAddress="{vAddressField.text}"
                                               cPerson="{cPersonField.text}"
                                               cAddress="{cAddressField.text}"
                                     />
                        <mx:Script>
                        <![CDATA[
                        import mx.managers.PopUpManager;
                        import flash.media.Camera;
                        import com.visitor.vo.WebCam;
                        import com.visitor.vo.Base64;
                        import mx.core.UIComponent;
                        import mx.graphics.codec.JPEGEncoder;
                        import mx.controls.Alert;
                        import mx.containers.Canvas;
                        import mx.rpc.events.ResultEvent;
                        import mx.rpc.events.FaultEvent;
                        import mx.events.ValidationResultEvent;
                        import mx.validators.Validator;
                                  [Bindable]
                                  private var webCam: com.visitor.vo.WebCam;
                                  [Bindable]
                                  private var message:String;
                                  [Bindable]
                                  private var formIsValid:Boolean = false;
                                  [Bindable]
                                  public var formIsEmpty:Boolean;
                                  private var focussedFormControl:DisplayObject;
                                  private function handleSaveResult(ev:ResultEvent):void {
                                            clearFormHandler();
                                            validateForm(ev);
                                            Alert.show("Visitor successfully created/updated.", "Information", Alert.OK, null, null, null, Alert.OK);
                                            // Reload the list.
                                            parentApplication.listConsultants.loaderService.getConsultants();
                                            PopUpManager.removePopUp(this);
                                  private function handleFault(ev:FaultEvent):void {
                                            message = "Error: " + ev.fault.faultCode + " \n "
                                                      + "Detail: " + ev.fault.faultDetail + " \n "
                                                      + "Message: " + ev.fault.faultString;
                                  public function saveVisitor():void {
                                            saveService.addUpdateVisitor(visitor);
                                  private function creationCompleteHandler():void {
                                            init();
                                            PopUpManager.centerPopUp(this);
                                            resetFocus();
                                  private function resetFocus():void {
                                            focusManager.setFocus(vTypeField);
                                  public function validateForm(event:Event):void  {
                                            focussedFormControl = event.target as DisplayObject;   
                                            formIsValid = true;
                                            // Check if form is empty
                                            formIsEmpty = (vTypeField.text == "" && vPurposeField.text == "" && vNameField.text == "" && vAddressField.text == "" && cPersonField.text == "" && cAddressField.text == "");
                                            validate(vTypeValidator);               
                                            validate(vPurposeValidator);
                                            validate(vNameValidator);
                                            validate(vAddressValidator);
                                            validate(cPersonValidator);
                                            validate(cAddressValidator);
                                  private function validate(validator:Validator):Boolean {
                                            var validatorSource:DisplayObject = validator.source as DisplayObject;
                                            var suppressEvents:Boolean = (validatorSource != focussedFormControl);
                                            var event:ValidationResultEvent = validator.validate(null, suppressEvents);
                                            var currentControlIsValid:Boolean = (event.type == ValidationResultEvent.VALID);
                                            formIsValid = formIsValid && currentControlIsValid;
                                            return currentControlIsValid;
                                  private function clearFormHandler():void {
                                            // Clear all input fields.
                                            vTypeField.text = "";
                                            vPurposeField.text = "";
                                            vNameField.text = "";
                                            vAddressField.text = "";
                                            cPersonField.text = "";
                                            cAddressField.text = "";
                                            message = "";
                                            // Clear validation error messages.
                                            vTypeField.errorString = "";
                                            vPurposeField.errorString = "";
                                            vNameField.errorString = "";
                                            vAddressField.errorString = "";
                                            cPersonField.errorString = "";
                                            cAddressField.errorString = "";
                                            formIsEmpty = true;
                                            formIsValid = false;
                                            resetFocus();
                                  private function init():void {
                                  webCam = new WebCam(97,97);
                                  var ref:UIComponent = new UIComponent();
                                  preview.removeAllChildren();
                                  preview.addChild(ref);
                                  ref.addChild(webCam);
                                  private function takeSnapshot():void {
                                  imageViewer.visible = true;
                                  imageViewer.width = preview.width;
                                  imageViewer.height = preview.height;
                                  var uiComponent : UIComponent = new UIComponent();
                                  uiComponent.width = webCam.width;
                                  uiComponent.height = webCam.height;
                                  var photoData:Bitmap = webCam.getSnapshot();
                                  var photoBitmap:BitmapData = photoData.bitmapData;
                                  uiComponent.addChild(photoData);
                                  imageViewer.removeAllChildren();
                                  imageViewer.addChild(uiComponent);
                                  private function uploadSnapshot():void
                                            if (imageViewer.getChildren().length > 0)
                                                      var uic:UIComponent = imageViewer.getChildAt(0) as UIComponent;
                                                      var bitmap:Bitmap = uic.getChildAt(0) as Bitmap;
                                                      var jpgEncoder:JPEGEncoder = new JPEGEncoder(75);
                                                      var jpgBytes:ByteArray = jpgEncoder.encode(bitmap.bitmapData);
                                  private function deleteSnapshot():void
                                            imageViewer.removeAllChildren();
                        ]]>
                        </mx:Script>
              <mx:StringValidator id="vTypeValidator"          source="{vTypeField}"          property="text" minLength="2" required="true" />
              <mx:StringValidator id="vPurposeValidator" source="{vPurposeField}"          property="text" minLength="2" required="true" />
              <mx:StringValidator id="vNameValidator"          source="{vNameField}"          property="text" minLength="2" required="true" />
              <mx:StringValidator id="vAddressValidator"          source="{vAddressField}"          property="text" minLength="5" required="true" />
              <mx:StringValidator id="cPersonValidator" source="{cPersonField}"          property="text" minLength="2" required="true" />
              <mx:StringValidator id="cAddressValidator"          source="{cAddressField}"          property="text" minLength="5" required="true" />
              <mx:Grid width="575" height="211">
                        <mx:GridRow width="575" height="211">
                                  <mx:GridItem width="301" height="235">
                                            <mx:Form width="301" height="208">
                                                      <mx:FormItem label="Visitor's Type">
                                                                <mx:ComboBox id="vTypeField" text="{visitor.vType}" change="validateForm(event);" editable="true">
                                                                          <mx:Array>
                                                                                    <mx:String></mx:String>
                                                                                    <mx:String>Contractor</mx:String>
                                                                                    <mx:String>Supplier</mx:String>
                                                                                    <mx:String>Transporter</mx:String>
                                                                                    <mx:String>Plant</mx:String>
                                                                                    <mx:String>Non-Plant</mx:String>
                                                                          </mx:Array>
                                                                </mx:ComboBox>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Visit Purpose">
                                                                <mx:ComboBox id="vPurposeField" text="{visitor.vPurpose}" change="validateForm(event);" editable="true">
                                                                          <mx:Array>
                                                                                    <mx:String></mx:String>
                                                                                    <mx:String>Official</mx:String>
                                                                                    <mx:String>Personal</mx:String>
                                                                          </mx:Array>
                                                                </mx:ComboBox>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Visitor's Name">
                                                                <mx:TextInput id="vNameField"  text="{visitor.vName}" change="validateForm(event);"/>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Address">
                                                                <mx:TextInput id="vAddressField"   text="{visitor.vAddress}" change="validateForm(event);"/>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Contact Person">
                                                                <mx:TextInput id="cPersonField"  text="{visitor.cPerson}" change="validateForm(event);"/>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Address">
                                                                <mx:TextInput id="cAddressField"  text="{visitor.cAddress}" change="validateForm(event);"/>
                                                      </mx:FormItem>
                                                      </mx:Form>
                                  </mx:GridItem>
                                  <mx:GridItem width="264" height="193">
                                            <mx:Grid width="241" height="206">
                                                      <mx:GridRow width="100%" height="100%">
                                                                <mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
                                                                          <mx:Panel width="100" height="132" title="Snap" id="preview" layout="absolute"/>
                                                                </mx:GridItem>
                                                                <mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
                                                                          <mx:Panel width="100" height="132" title="Preview" id="imageViewer"  layout="absolute"/>
                                                                </mx:GridItem>
                                                      </mx:GridRow>
                                                      <mx:GridRow width="100%" height="27" >
                                                                <mx:GridItem width="100%" height="100%" horizontalAlign="center">
                                                                          <mx:Button id="snapshot" x="2" width="106" height="27" label="Snap"
                                                                                                  click="takeSnapshot();"/>
                                                                </mx:GridItem>
                                                                <mx:GridItem width="100%" height="100%" horizontalAlign="center">
                                                                          <mx:Button id="deleteButton" x="1" width="106" height="27" label="Delete"
                                                                                                  click="deleteSnapshot();"/>
                                                                </mx:GridItem>
                                                      </mx:GridRow>
                                            </mx:Grid>
                                  </mx:GridItem>
                        </mx:GridRow>
              </mx:Grid>
              <mx:ControlBar height="40" horizontalAlign="center">
                        <mx:Button label="Save Visitor"          id="submitButton" enabled="{formIsValid}" click="saveVisitor();" />
                        <mx:Button label="Clear form" enabled="{!formIsEmpty}"          click="clearFormHandler();" />
                        <mx:Button label="Cancel" click="PopUpManager.removePopUp(this);"/>
                        <mx:Label width="211" id="state"/>
              </mx:ControlBar>
              <mx:Text text="{message}" fontWeight="bold" width="300"/>
    </mx:TitleWindow>
    ListVisitors.mxml
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Panel
              xmlns:mx="http://www.adobe.com/2006/mxml"
              xmlns:view="com.visitor.view.*"
              width="100%"
              height="100%"
              title="Visitor Management System - Found {visitorRecords} visitors."
              creationComplete="loadVisitors();">
              <mx:RemoteObject id="loaderService" destination="visitorService" result="handleLoadResult(event)"          fault="handleFault(event)" showBusyCursor="true" />
              <mx:RemoteObject id="deleteService" destination="visitorService" result="handleDeleteResult(event)"          fault="handleFault(event)" showBusyCursor="true" />
              <mx:Script>
                        <![CDATA[
                                  import com.visitor.vo.Visitor;
                                  import mx.controls.Alert;
                                  import mx.managers.PopUpManager;
                                  import mx.containers.TitleWindow;
                                  import mx.collections.ArrayCollection;
                                  import mx.rpc.events.ResultEvent;
                                  import mx.rpc.events.FaultEvent;
                                  [Bindable]
                                  private var message:String;
                                  [Bindable]
                                  private var visitors:ArrayCollection = new ArrayCollection();
                                  [Bindable]
                                  private var visitorRecords:int = 0;
                                  public function loadVisitors():void {
                                            loaderService.getVisitors();
                                  private function deleteVisitor():void {
                                            if(dataGrid.selectedItem != null) {
                                                      var selectedItem:Visitor = dataGrid.selectedItem as Visitor;
                                                      deleteService.deleteVisitor(selectedItem.visitorId);
                                  private function createVisitor():void {
                                            var titleWindow:VisitorEntryForm = VisitorEntryForm(PopUpManager.createPopUp(this, VisitorEntryForm, true));
                                            titleWindow.setStyle("borderAlpha", 0.9);
                                            titleWindow.formIsEmpty = true;
                                  private function updateVisitor():void {
                                            var titleWindow:VisitorEntryForm = VisitorEntryForm(PopUpManager.createPopUp(this, VisitorEntryForm, true));
                                            titleWindow.setStyle("borderAlpha", 0.9);
                                            titleWindow.visitor = dataGrid.selectedItem as Visitor;
                                            titleWindow.formIsEmpty = false;
                                  private function handleLoadResult(ev:ResultEvent):void {
                                            visitors = ev.result as ArrayCollection;
                                            visitorRecords = visitors.length;
                                  private function handleDeleteResult(ev:ResultEvent):void {
                                            Alert.show("The visitor has been deleted.", "Information", Alert.OK, null, null, null, Alert.OK);
                                            loadVisitors();
                                  private function handleFault(ev:FaultEvent):void {
                                            message = "Error: "
                                                      + ev.fault.faultCode + " - "
                                                      + ev.fault.faultDetail + " - "
                                                      + ev.fault.faultString;
                        ]]>
              </mx:Script>
              <mx:VBox width="100%" height="100%">
                        <mx:Label text="{message}" fontWeight="bold" includeInLayout="false" />
                        <mx:DataGrid
                                  id="dataGrid"
                                  width="100%"
                                  height="100%"
                                  dataProvider="{visitors}"
                                  doubleClickEnabled="true"
                                  doubleClick="updateVisitor()" >
                                  <mx:columns>
                                            <mx:DataGridColumn dataField="visitorId"          headerText="Visitor ID" width="100"/>
                                            <mx:DataGridColumn dataField="vType"                    headerText="Visitor's Type" />
                                            <mx:DataGridColumn dataField="vPurpose"           headerText="Visit Purpose" />
                                            <mx:DataGridColumn dataField="vName"                     headerText="Visitor's Name" />
                                            <mx:DataGridColumn dataField="vAddress"                    headerText="Visitor's Address" />
                                            <mx:DataGridColumn dataField="cPerson"                     headerText="Contact Person" />
                                            <mx:DataGridColumn dataField="cAddress"                    headerText="Contact Address" />
                                            <mx:DataGridColumn dataField="timeIn"                     headerText="Time-In" />
                                            <mx:DataGridColumn dataField="timeOut"                     headerText="Time-Out" />
                                            <mx:DataGridColumn dataField="vPhoto"                     headerText="Visitor's Photo" />
                                  </mx:columns>
                        </mx:DataGrid>
                        <mx:ControlBar horizontalAlign="center">
                                  <mx:Button label="Create Visitor"          click="createVisitor()"          toolTip="Create a new visitor and store it in the database." />
                                  <mx:Button label="Update Visitor"          click="updateVisitor()"           enabled="{dataGrid.selectedItem}" toolTip="Update an existing database visitor." />
                                  <mx:Button label="Delete Visitor"          click="deleteVisitor()"          enabled="{dataGrid.selectedItem}" toolTip="Delete the visitor from the database." />
                                  <mx:Button label="Reload Data"                    click="loadVisitors()"           toolTip="Reload the visitor list from the database." />
                        </mx:ControlBar>
              </mx:VBox>
    </mx:Panel>
    Visitor.as
    package com.visitor.vo
              import mx.controls.Image;
              import spark.primitives.BitmapImage;
              [Bindable]
              [RemoteClass(alias="com.visitor.Visitor")]
              public class Visitor
                        public function Visitor()
                        public var visitorId:Number;
                        public var vType:String;
                        public var vPurpose:String;
                        public var vName:String;
                        public var vAddress:String;
                        public var cPerson:String;
                        public var cAddress:String;
                        public var timeIn:Date;
                        public var timeOut:Date;
                       public var vPhoto: Image;
    Visitor.java
    package com.visitor;
    import java.sql.Blob;
    import java.sql.Timestamp;
    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;
    import org.hibernate.annotations.Index;
    @Entity
    @Table(name = "visitors")
    @NamedQueries( {
                        @NamedQuery(name = "visitors.findAll", query = "from Visitor"),
                        @NamedQuery(name = "visitors.byId", query = "select v from Visitor v where v.visitorId= :visitorId") })
    public class Visitor {
              @Id
              @GeneratedValue(strategy = GenerationType.AUTO)
              @Column(name = "visitorId", nullable = false)
              private Long visitorId;
              @Basic
              @Index(name = "vType_idx_1")
              @Column(name = "vType", nullable = true, unique = false)
              private String vType;
              @Basic
              @Column(name = "vPurpose", nullable = true, unique = false)
              private String vPurpose;
              @Basic
              @Column(name = "vName", nullable = true, unique = false)
              private String vName;
              @Basic
              @Column(name = "vAddress", nullable = true, unique = false)
              private String vAddress;
              @Basic
              @Column(name = "cPerson", nullable = true, unique = false)
              private String cPerson;
              @Basic
              @Column(name = "cAddress", nullable = true, unique = false)
              private String cAddress;
              @Basic
              @Column(name = "timeIn", nullable = false, unique = false)
              private Timestamp timeIn;
              @Basic
              @Column(name = "timeOut", nullable = true, unique = false)
              private Timestamp timeOut;
              @Basic
              @Column(name = "vPhoto", nullable = true, unique = false)
              private Blob vPhoto;
              public Visitor() {
                        super();
              public Long getVisitorId() {
                        return visitorId;
              public void setVisitorId(Long visitorId) {
                        this.visitorId = visitorId;
              public String getvType() {
                        return vType;
              public void setvType(String vType) {
                        this.vType = vType;
              public String getvPurpose() {
                        return vPurpose;
              public void setvPurpose(String vPurpose) {
                        this.vPurpose = vPurpose;
              public String getvName() {
                        return vName;
              public void setvName(String vName) {
                        this.vName = vName;
              public String getvAddress() {
                        return vAddress;
              public void setvAddress(String vAddress) {
                        this.vAddress = vAddress;
              public String getcPerson() {
                        return cPerson;
              public void setcPerson(String cPerson) {
                        this.cPerson = cPerson;
              public String getcAddress() {
                        return cAddress;
              public void setcAddress(String cAddress) {
                        this.cAddress = cAddress;
              public Timestamp getTimeIn() {
                        return timeIn;
              public void setTimeIn(Timestamp timeIn) {
                        this.timeIn = timeIn;
              public Timestamp getTimeOut() {
                        return timeOut;
              public void setTimeOut(Timestamp timeOut) {
                        this.timeOut = timeOut;
              public Blob getvPhoto() {
                        return vPhoto;
              public void setvPhoto(Blob vPhoto) {
                        this.vPhoto = vPhoto;
    VisitorService.java
    package com.visitor;
    import java.sql.Timestamp;
    import java.util.Date;
    import java.util.List;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.EntityTransaction;
    import javax.persistence.Persistence;
    import javax.persistence.Query;
    import org.apache.log4j.Logger;
    public class VisitorService {
              private static final String PERSISTENCE_UNIT = "visitor_db";
              private static Logger logger = Logger.getLogger(VisitorService.class);
              public VisitorService() {
                        super();
              public List<Visitor> getvisitors() {
                        logger.debug("** getVisitors called...");
                        EntityManagerFactory entityManagerFactory = Persistence
                                            .createEntityManagerFactory(PERSISTENCE_UNIT);
                        EntityManager em = entityManagerFactory.createEntityManager();
                        Query findAllQuery = em.createNamedQuery("visitors.findAll");
                        List<Visitor> visitors = findAllQuery.getResultList();
                        if (visitors != null)
                                  logger.debug("** Found " + visitors.size() + " records:");
                        return visitors;
              public void addUpdateVisitor(Visitor visitor) throws Exception {
                        logger.debug("** addUpdateVisitor called...");
                        EntityManagerFactory emf = Persistence
                                            .createEntityManagerFactory(PERSISTENCE_UNIT);
                        EntityManager em = emf.createEntityManager();
                        // When passing Boolean and Number values from the Flash client to a
                        // Java object, Java interprets null values as the default values for
                        // primitive types; for example, 0 for double, float, long, int, short,
                        // byte.
                        if (visitor.getVisitorId() == null          || visitor.getVisitorId() == 0) {
                                  // New consultant is created
                                  visitor.setVisitorId(null);
                                  visitor.setTimeIn(new Timestamp(new Date().getTime()));
                        } else {
                                  visitor.setTimeOut(new Timestamp(new Date().getTime()));
                                  // Existing consultant is updated - do nothing.
                        EntityTransaction tx = em.getTransaction();
                        tx.begin();
                        try {
                                  em.merge(visitor);
                                  tx.commit();
                        } catch (Exception e) {
                                  logger.error("** Error: " + e.getMessage());
                                  tx.rollback();
                                  throw new Exception(e.getMessage());
                        } finally {
                                  logger.info("** Closing Entity Manager.");
                                  em.close();
              public void deleteVisitor(Long visitorId) {
                        logger.debug("** deleteVisitor called...");
                        EntityManagerFactory emf = Persistence
                                            .createEntityManagerFactory(PERSISTENCE_UNIT);
                        EntityManager em = emf.createEntityManager();
                        Query q = em.createNamedQuery("visitors.byId");
                        q.setParameter("visitorId", visitorId);
                        Visitor visitor = (Visitor) q.getSingleResult();
                        if (visitor != null) {
                                  EntityTransaction tx = em.getTransaction();
                                  tx.begin();
                                  try {
                                            em.remove(visitor);
                                            tx.commit();
                                  } catch (Exception e) {
                                            logger.error("** Error: " + e.getMessage());
                                            tx.rollback();
                                  } finally {
                                            logger.info("** Closing Entity Manager.");
                                            em.close();
    remoting-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <service id="remoting-service" class="flex.messaging.services.RemotingService">
              <adapters>
                        <adapter-definition id="java-object"
                                  class="flex.messaging.services.remoting.adapters.JavaAdapter"
                                  default="true" />
              </adapters>
              <default-channels>
                        <channel ref="my-amf" />
              </default-channels>
              <!-- ADC Demo application -->
              <destination id="visitorService">
                        <properties>
                                  <source>com.visitor.VisitorService</source>
                        </properties>
              </destination>
    </service>

    Hi!
    I am using Flash Builder 4.6, BlazeDS, and Hibernate. How to store a webcam snapshot into the MySql Database. I stored Form Items by using RemoteObject into the database. But I failed to store webcam snapshot. I captured that image on Panel component.I converted that image to ByteArray. Now I want to save that image into the database. Please help me in this regard.
    thanks in advance.
    Here the Code:
    VisitorEntryForm.mxml
    <?xml version="1.0" encoding="utf-8"?>
    <mx:TitleWindow
              xmlns:mx="http://www.adobe.com/2006/mxml"
              xmlns:vo="com.visitor.vo.*"
              width="600"
              height="300"
              defaultButton="{submitButton}"
              showCloseButton="true"
              creationComplete="creationCompleteHandler();"
              close="PopUpManager.removePopUp(this);"
              title="Visitor Entry Form" xmlns:text="flash.text.*">
              <mx:RemoteObject id="saveService" destination="visitorService" result="handleSaveResult(event)" fault="handleFault(event)" showBusyCursor="true" />
              <vo:Visitor id="visitor"
                                               vType="{vTypeField.text}"
                                               vPurpose="{vPurposeField.text}"
                                               vName="{vNameField.text}"
                                               vAddress="{vAddressField.text}"
                                               cPerson="{cPersonField.text}"
                                               cAddress="{cAddressField.text}"
                                     />
                        <mx:Script>
                        <![CDATA[
                        import mx.managers.PopUpManager;
                        import flash.media.Camera;
                        import com.visitor.vo.WebCam;
                        import com.visitor.vo.Base64;
                        import mx.core.UIComponent;
                        import mx.graphics.codec.JPEGEncoder;
                        import mx.controls.Alert;
                        import mx.containers.Canvas;
                        import mx.rpc.events.ResultEvent;
                        import mx.rpc.events.FaultEvent;
                        import mx.events.ValidationResultEvent;
                        import mx.validators.Validator;
                                  [Bindable]
                                  private var webCam: com.visitor.vo.WebCam;
                                  [Bindable]
                                  private var message:String;
                                  [Bindable]
                                  private var formIsValid:Boolean = false;
                                  [Bindable]
                                  public var formIsEmpty:Boolean;
                                  private var focussedFormControl:DisplayObject;
                                  private function handleSaveResult(ev:ResultEvent):void {
                                            clearFormHandler();
                                            validateForm(ev);
                                            Alert.show("Visitor successfully created/updated.", "Information", Alert.OK, null, null, null, Alert.OK);
                                            // Reload the list.
                                            parentApplication.listConsultants.loaderService.getConsultants();
                                            PopUpManager.removePopUp(this);
                                  private function handleFault(ev:FaultEvent):void {
                                            message = "Error: " + ev.fault.faultCode + " \n "
                                                      + "Detail: " + ev.fault.faultDetail + " \n "
                                                      + "Message: " + ev.fault.faultString;
                                  public function saveVisitor():void {
                                            saveService.addUpdateVisitor(visitor);
                                  private function creationCompleteHandler():void {
                                            init();
                                            PopUpManager.centerPopUp(this);
                                            resetFocus();
                                  private function resetFocus():void {
                                            focusManager.setFocus(vTypeField);
                                  public function validateForm(event:Event):void  {
                                            focussedFormControl = event.target as DisplayObject;   
                                            formIsValid = true;
                                            // Check if form is empty
                                            formIsEmpty = (vTypeField.text == "" && vPurposeField.text == "" && vNameField.text == "" && vAddressField.text == "" && cPersonField.text == "" && cAddressField.text == "");
                                            validate(vTypeValidator);               
                                            validate(vPurposeValidator);
                                            validate(vNameValidator);
                                            validate(vAddressValidator);
                                            validate(cPersonValidator);
                                            validate(cAddressValidator);
                                  private function validate(validator:Validator):Boolean {
                                            var validatorSource:DisplayObject = validator.source as DisplayObject;
                                            var suppressEvents:Boolean = (validatorSource != focussedFormControl);
                                            var event:ValidationResultEvent = validator.validate(null, suppressEvents);
                                            var currentControlIsValid:Boolean = (event.type == ValidationResultEvent.VALID);
                                            formIsValid = formIsValid && currentControlIsValid;
                                            return currentControlIsValid;
                                  private function clearFormHandler():void {
                                            // Clear all input fields.
                                            vTypeField.text = "";
                                            vPurposeField.text = "";
                                            vNameField.text = "";
                                            vAddressField.text = "";
                                            cPersonField.text = "";
                                            cAddressField.text = "";
                                            message = "";
                                            // Clear validation error messages.
                                            vTypeField.errorString = "";
                                            vPurposeField.errorString = "";
                                            vNameField.errorString = "";
                                            vAddressField.errorString = "";
                                            cPersonField.errorString = "";
                                            cAddressField.errorString = "";
                                            formIsEmpty = true;
                                            formIsValid = false;
                                            resetFocus();
                                  private function init():void {
                                  webCam = new WebCam(97,97);
                                  var ref:UIComponent = new UIComponent();
                                  preview.removeAllChildren();
                                  preview.addChild(ref);
                                  ref.addChild(webCam);
                                  private function takeSnapshot():void {
                                  imageViewer.visible = true;
                                  imageViewer.width = preview.width;
                                  imageViewer.height = preview.height;
                                  var uiComponent : UIComponent = new UIComponent();
                                  uiComponent.width = webCam.width;
                                  uiComponent.height = webCam.height;
                                  var photoData:Bitmap = webCam.getSnapshot();
                                  var photoBitmap:BitmapData = photoData.bitmapData;
                                  uiComponent.addChild(photoData);
                                  imageViewer.removeAllChildren();
                                  imageViewer.addChild(uiComponent);
                                  private function uploadSnapshot():void
                                            if (imageViewer.getChildren().length > 0)
                                                      var uic:UIComponent = imageViewer.getChildAt(0) as UIComponent;
                                                      var bitmap:Bitmap = uic.getChildAt(0) as Bitmap;
                                                      var jpgEncoder:JPEGEncoder = new JPEGEncoder(75);
                                                      var jpgBytes:ByteArray = jpgEncoder.encode(bitmap.bitmapData);
                                  private function deleteSnapshot():void
                                            imageViewer.removeAllChildren();
                        ]]>
                        </mx:Script>
              <mx:StringValidator id="vTypeValidator"          source="{vTypeField}"          property="text" minLength="2" required="true" />
              <mx:StringValidator id="vPurposeValidator" source="{vPurposeField}"          property="text" minLength="2" required="true" />
              <mx:StringValidator id="vNameValidator"          source="{vNameField}"          property="text" minLength="2" required="true" />
              <mx:StringValidator id="vAddressValidator"          source="{vAddressField}"          property="text" minLength="5" required="true" />
              <mx:StringValidator id="cPersonValidator" source="{cPersonField}"          property="text" minLength="2" required="true" />
              <mx:StringValidator id="cAddressValidator"          source="{cAddressField}"          property="text" minLength="5" required="true" />
              <mx:Grid width="575" height="211">
                        <mx:GridRow width="575" height="211">
                                  <mx:GridItem width="301" height="235">
                                            <mx:Form width="301" height="208">
                                                      <mx:FormItem label="Visitor's Type">
                                                                <mx:ComboBox id="vTypeField" text="{visitor.vType}" change="validateForm(event);" editable="true">
                                                                          <mx:Array>
                                                                                    <mx:String></mx:String>
                                                                                    <mx:String>Contractor</mx:String>
                                                                                    <mx:String>Supplier</mx:String>
                                                                                    <mx:String>Transporter</mx:String>
                                                                                    <mx:String>Plant</mx:String>
                                                                                    <mx:String>Non-Plant</mx:String>
                                                                          </mx:Array>
                                                                </mx:ComboBox>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Visit Purpose">
                                                                <mx:ComboBox id="vPurposeField" text="{visitor.vPurpose}" change="validateForm(event);" editable="true">
                                                                          <mx:Array>
                                                                                    <mx:String></mx:String>
                                                                                    <mx:String>Official</mx:String>
                                                                                    <mx:String>Personal</mx:String>
                                                                          </mx:Array>
                                                                </mx:ComboBox>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Visitor's Name">
                                                                <mx:TextInput id="vNameField"  text="{visitor.vName}" change="validateForm(event);"/>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Address">
                                                                <mx:TextInput id="vAddressField"   text="{visitor.vAddress}" change="validateForm(event);"/>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Contact Person">
                                                                <mx:TextInput id="cPersonField"  text="{visitor.cPerson}" change="validateForm(event);"/>
                                                      </mx:FormItem>
                                                      <mx:FormItem label="Address">
                                                                <mx:TextInput id="cAddressField"  text="{visitor.cAddress}" change="validateForm(event);"/>
                                                      </mx:FormItem>
                                                      </mx:Form>
                                  </mx:GridItem>
                                  <mx:GridItem width="264" height="193">
                                            <mx:Grid width="241" height="206">
                                                      <mx:GridRow width="100%" height="100%">
                                                                <mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
                                                                          <mx:Panel width="100" height="132" title="Snap" id="preview" layout="absolute"/>
                                                                </mx:GridItem>
                                                                <mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
                                                                          <mx:Panel width="100" height="132" title="Preview" id="imageViewer"  layout="absolute"/>
                                                                </mx:GridItem>
                                                      </mx:GridRow>
                                                      <mx:GridRow width="100%" height="27" >
                                                                <mx:GridItem width="100%" height="100%" horizontalAlign="center">
                                                                          <mx:Button id="snapshot" x="2" width="106" height="27" label="Snap"
                                                                                                  click="takeSnapshot();"/>
                                                                </mx:GridItem>
                                                                <mx:GridItem width="100%" height="100%" horizontalAlign="center">
                                                                          <mx:Button id="deleteButton" x="1" width="106" height="27" label="Delete"
                                                                                                  click="deleteSnapshot();"/>
                                                                </mx:GridItem>
                                                      </mx:GridRow>
                                            </mx:Grid>
                                  </mx:GridItem>
                        </mx:GridRow>
              </mx:Grid>
              <mx:ControlBar height="40" horizontalAlign="center">
                        <mx:Button label="Save Visitor"          id="submitButton" enabled="{formIsValid}" click="saveVisitor();" />
                        <mx:Button label="Clear form" enabled="{!formIsEmpty}"          click="clearFormHandler();" />
                        <mx:Button label="Cancel" click="PopUpManager.removePopUp(this);"/>
                        <mx:Label width="211" id="state"/>
              </mx:ControlBar>
              <mx:Text text="{message}" fontWeight="bold" width="300"/>
    </mx:TitleWindow>
    ListVisitors.mxml
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Panel
              xmlns:mx="http://www.adobe.com/2006/mxml"
              xmlns:view="com.visitor.view.*"
              width="100%"
              height="100%"
              title="Visitor Management System - Found {visitorRecords} visitors."
              creationComplete="loadVisitors();">
              <mx:RemoteObject id="loaderService" destination="visitorService" result="handleLoadResult(event)"          fault="handleFault(event)" showBusyCursor="true" />
              <mx:RemoteObject id="deleteService" destination="visitorService" result="handleDeleteResult(event)"          fault="handleFault(event)" showBusyCursor="true" />
              <mx:Script>
                        <![CDATA[
                                  import com.visitor.vo.Visitor;
                                  import mx.controls.Alert;
                                  import mx.managers.PopUpManager;
                                  import mx.containers.TitleWindow;
                                  import mx.collections.ArrayCollection;
                                  import mx.rpc.events.ResultEvent;
                                  import mx.rpc.events.FaultEvent;
                                  [Bindable]
                                  private var message:String;
                                  [Bindable]
                                  private var visitors:ArrayCollection = new ArrayCollection();
                                  [Bindable]
                                  private var visitorRecords:int = 0;
                                  public function loadVisitors():void {
                                            loaderService.getVisitors();
                                  private function deleteVisitor():void {
                                            if(dataGrid.selectedItem != null) {
                                                      var selectedItem:Visitor = dataGrid.selectedItem as Visitor;
                                                      deleteService.deleteVisitor(selectedItem.visitorId);
                                  private function createVisitor():void {
                                            var titleWindow:VisitorEntryForm = VisitorEntryForm(PopUpManager.createPopUp(this, VisitorEntryForm, true));
                                            titleWindow.setStyle("borderAlpha", 0.9);
                                            titleWindow.formIsEmpty = true;
                                  private function updateVisitor():void {
                                            var titleWindow:VisitorEntryForm = VisitorEntryForm(PopUpManager.createPopUp(this, VisitorEntryForm, true));
                                            titleWindow.setStyle("borderAlpha", 0.9);
                                            titleWindow.visitor = dataGrid.selectedItem as Visitor;
                                            titleWindow.formIsEmpty = false;
                                  private function handleLoadResult(ev:ResultEvent):void {
                                            visitors = ev.result as ArrayCollection;
                                            visitorRecords = visitors.length;
                                  private function handleDeleteResult(ev:ResultEvent):void {
                                            Alert.show("The visitor has been deleted.", "Information", Alert.OK, null, null, null, Alert.OK);
                                            loadVisitors();
                                  private function handleFault(ev:FaultEvent):void {
                                            message = "Error: "
                                                      + ev.fault.faultCode + " - "
                                                      + ev.fault.faultDetail + " - "
                                                      + ev.fault.faultString;
                        ]]>
              </mx:Script>
              <mx:VBox width="100%" height="100%">
                        <mx:Label text="{message}" fontWeight="bold" includeInLayout="false" />
                        <mx:DataGrid
                                  id="dataGrid"
                                  width="100%"
                                  height="100%"
                                  dataProvider="{visitors}"
                                  doubleClickEnabled="true"
                                  doubleClick="updateVisitor()" >
                                  <mx:columns>
                                            <mx:DataGridColumn dataField="visitorId"          headerText="Visitor ID" width="100"/>
                                            <mx:DataGridColumn dataField="vType"                    headerText="Visitor's Type" />
                                            <mx:DataGridColumn dataField="vPurpose"           headerText="Visit Purpose" />
                                            <mx:DataGridColumn dataField="vName"                     headerText="Visitor's Name" />
                                            <mx:DataGridColumn dataField="vAddress"                    headerText="Visitor's Address" />
                                            <mx:DataGridColumn dataField="cPerson"                     headerText="Contact Person" />
                                            <mx:DataGridColumn dataField="cAddress"                    headerText="Contact Address" />
                                            <mx:DataGridColumn dataField="timeIn"                     headerText="Time-In" />
                                            <mx:DataGridColumn dataField="timeOut"                     headerText="Time-Out" />
                                            <mx:DataGridColumn dataField="vPhoto"                     headerText="Visitor's Photo" />
                                  </mx:columns>
                        </mx:DataGrid>
                        <mx:ControlBar horizontalAlign="center">
                                  <mx:Button label="Create Visitor"          click="createVisitor()"          toolTip="Create a new visitor and store it in the database." />
                                  <mx:Button label="Update Visitor"          click="updateVisitor()"           enabled="{dataGrid.selectedItem}" toolTip="Update an existing database visitor." />
                                  <mx:Button label="Delete Visitor"          click="deleteVisitor()"          enabled="{dataGrid.selectedItem}" toolTip="Delete the visitor from the database." />
                                  <mx:Button label="Reload Data"                    click="loadVisitors()"           toolTip="Reload the visitor list from the database." />
                        </mx:ControlBar>
              </mx:VBox>
    </mx:Panel>
    Visitor.as
    package com.visitor.vo
              import mx.controls.Image;
              import spark.primitives.BitmapImage;
              [Bindable]
              [RemoteClass(alias="com.visitor.Visitor")]
              public class Visitor
                        public function Visitor()
                        public var visitorId:Number;
                        public var vType:String;
                        public var vPurpose:String;
                        public var vName:String;
                        public var vAddress:String;
                        public var cPerson:String;
                        public var cAddress:String;
                        public var timeIn:Date;
                        public var timeOut:Date;
                       public var vPhoto: Image;
    Visitor.java
    package com.visitor;
    import java.sql.Blob;
    import java.sql.Timestamp;
    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;
    import org.hibernate.annotations.Index;
    @Entity
    @Table(name = "visitors")
    @NamedQueries( {
                        @NamedQuery(name = "visitors.findAll", query = "from Visitor"),
                        @NamedQuery(name = "visitors.byId", query = "select v from Visitor v where v.visitorId= :visitorId") })
    public class Visitor {
              @Id
              @GeneratedValue(strategy = GenerationType.AUTO)
              @Column(name = "visitorId", nullable = false)
              private Long visitorId;
              @Basic
              @Index(name = "vType_idx_1")
              @Column(name = "vType", nullable = true, unique = false)
              private String vType;
              @Basic
              @Column(name = "vPurpose", nullable = true, unique = false)
              private String vPurpose;
              @Basic
              @Column(name = "vName", nullable = true, unique = false)
              private String vName;
              @Basic
              @Column(name = "vAddress", nullable = true, unique = false)
              private String vAddress;
              @Basic
              @Column(name = "cPerson", nullable = true, unique = false)
              private String cPerson;
              @Basic
              @Column(name = "cAddress", nullable = true, unique = false)
              private String cAddress;
              @Basic
              @Column(name = "timeIn", nullable = false, unique = false)
              private Timestamp timeIn;
              @Basic
              @Column(name = "timeOut", nullable = true, unique = false)
              private Timestamp timeOut;
              @Basic
              @Column(name = "vPhoto", nullable = true, unique = false)
              private Blob vPhoto;
              public Visitor() {
                        super();
              public Long getVisitorId() {
                        return visitorId;
              public void setVisitorId(Long visitorId) {
                        this.visitorId = visitorId;
              public String getvType() {
                        return vType;
              public void setvType(String vType) {
                        this.vType = vType;
              public String getvPurpose() {
                        return vPurpose;
              public void setvPurpose(String vPurpose) {
                        this.vPurpose = vPurpose;
              public String getvName() {
                        return vName;
              public void setvName(String vName) {
                        this.vName = vName;
              public String getvAddress() {
                        return vAddress;
              public void setvAddress(String vAddress) {
                        this.vAddress = vAddress;
              public String getcPerson() {
                        return cPerson;
              public void setcPerson(String cPerson) {
                        this.cPerson = cPerson;
              public String getcAddress() {
                        return cAddress;
              public void setcAddress(String cAddress) {
                        this.cAddress = cAddress;
              public Timestamp getTimeIn() {
                        return timeIn;
              public void setTimeIn(Timestamp timeIn) {
                        this.timeIn = timeIn;
              public Timestamp getTimeOut() {
                        return timeOut;
              public void setTimeOut(Timestamp timeOut) {
                        this.timeOut = timeOut;
              public Blob getvPhoto() {
                        return vPhoto;
              public void setvPhoto(Blob vPhoto) {
                        this.vPhoto = vPhoto;
    VisitorService.java
    package com.visitor;
    import java.sql.Timestamp;
    import java.util.Date;
    import java.util.List;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.EntityTransaction;
    import javax.persistence.Persistence;
    import javax.persistence.Query;
    import org.apache.log4j.Logger;
    public class VisitorService {
              private static final String PERSISTENCE_UNIT = "visitor_db";
              private static Logger logger = Logger.getLogger(VisitorService.class);
              public VisitorService() {
                        super();
              public List<Visitor> getvisitors() {
                        logger.debug("** getVisitors called...");
                        EntityManagerFactory entityManagerFactory = Persistence
                                            .createEntityManagerFactory(PERSISTENCE_UNIT);
                        EntityManager em = entityManagerFactory.createEntityManager();
                        Query findAllQuery = em.createNamedQuery("visitors.findAll");
                        List<Visitor> visitors = findAllQuery.getResultList();
                        if (visitors != null)
                                  logger.debug("** Found " + visitors.size() + " records:");
                        return visitors;
              public void addUpdateVisitor(Visitor visitor) throws Exception {
                        logger.debug("** addUpdateVisitor called...");
                        EntityManagerFactory emf = Persistence
                                            .createEntityManagerFactory(PERSISTENCE_UNIT);
                        EntityManager em = emf.createEntityManager();
                        // When passing Boolean and Number values from the Flash client to a
                        // Java object, Java interprets null values as the default values for
                        // primitive types; for example, 0 for double, float, long, int, short,
                        // byte.
                        if (visitor.getVisitorId() == null          || visitor.getVisitorId() == 0) {
                                  // New consultant is created
                                  visitor.setVisitorId(null);
                                  visitor.setTimeIn(new Timestamp(new Date().getTime()));
                        } else {
                                  visitor.setTimeOut(new Timestamp(new Date().getTime()));
                                  // Existing consultant is updated - do nothing.
                        EntityTransaction tx = em.getTransaction();
                        tx.begin();
                        try {
                                  em.merge(visitor);
                                  tx.commit();
                        } catch (Exception e) {
                                  logger.error("** Error: " + e.getMessage());
                                  tx.rollback();
                                  throw new Exception(e.getMessage());
                        } finally {
                                  logger.info("** Closing Entity Manager.");
                                  em.close();
              public void deleteVisitor(Long visitorId) {
                        logger.debug("** deleteVisitor called...");
                        EntityManagerFactory emf = Persistence
                                            .createEntityManagerFactory(PERSISTENCE_UNIT);
                        EntityManager em = emf.createEntityManager();
                        Query q = em.createNamedQuery("visitors.byId");
                        q.setParameter("visitorId", visitorId);
                        Visitor visitor = (Visitor) q.getSingleResult();
                        if (visitor != null) {
                                  EntityTransaction tx = em.getTransaction();
                                  tx.begin();
                                  try {
                                            em.remove(visitor);
                                            tx.commit();
                                  } catch (Exception e) {
                                            logger.error("** Error: " + e.getMessage());
                                            tx.rollback();
                                  } finally {
                                            logger.info("** Closing Entity Manager.");
                                            em.close();
    remoting-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <service id="remoting-service" class="flex.messaging.services.RemotingService">
              <adapters>
                        <adapter-definition id="java-object"
                                  class="flex.messaging.services.remoting.adapters.JavaAdapter"
                                  default="true" />
              </adapters>
              <default-channels>
                        <channel ref="my-amf" />
              </default-channels>
              <!-- ADC Demo application -->
              <destination id="visitorService">
                        <properties>
                                  <source>com.visitor.VisitorService</source>
                        </properties>
              </destination>
    </service>

  • TS5376 I'm having a problem with downloading and installing the new version of itunes for windows (11.1.4)  I have done everything the troubleshooting article has said and it is still not working properly.

    'm having a problem with downloading and installing the new version of itunes for windows (11.1.4)  I have done everything the troubleshooting article has said and it is still not working properly.  I have even done a repair to see if that works and it has not.  Has anyone else found a new way to get it working?

    Try Troubleshooting issues with iTunes for Windows updates.
    tt2

  • Transfer Object in JSF, Spring, and Hibernate

    The application on which I am working deploys the JavaServer Faces, Spring and Hibernate frameworks.
    We are going to use the "transfer object" to move data between J2EE tiers from the front end to the back end and vice versa. In addition, data "types" may need to be converted --
    At the front end, the "type" of the data that are entered by users may not match that in the database table. For example, checkboxes may be marked or left blank by users. The "type" of the checkboxes is "boolean" in the JSF backing bean. However, we have either "Y" or "N" for the corresponding field in the database table.
    The JSF backing bean holds data as well as controller functionality. Of course, the transfer object holds data only.
    With regard to class properties, Is the transfer object an exact copy of the JSF backing bean? And at which tier the data are converted to match their correspoding "types" in the database tables?
    We also have the "data objects" which are exact representation of database tables.
    Thanks for your advices.

    Small example: you can decide in the business layer
    whether to convert it to boolean or Boolean (which
    has a 3rd state: null).But it all goes back to your data model. If your data model supports null for that property, then of course boolean is a poor choice. If that case one could use Boolean. None of this has anything to do with re-usability, which was your objection.
    I think the re-usability question goes back to the data model as well. Suppose your data model says this property is boolean valued. However if your database does not support booleans natively, then you need to map the value for storage in the database. But that is the data persistence layers problem.
    OTOH, suppose your data model says that this property may be 'Y' or 'N'. Then the Java class represent the business object should not have a boolean property, we should make it match the data model.
    However, I think that most cases where people are storing 'Y' or 'N' in a field in the database fall into the first case, where the data model is a boolean and they are working around limitations in the database. There is no reason in that case to perpetuate the same limitations in the Java code.

  • [SOLVED] Poweroff, suspend and hibernate don't work

    I installed Archlinux on my work desktop on Monday and can't get poweroff, suspend and hibernate to work. The command `systemctl poweroff` sort of works, except it doesn't actually turn off the computer. Suspend and hibernate don't work at all, the computer hangs on the terminal with a cursor on the top left corner of the screen. Here is the log from `journalctl`. There doesn't seem to be any error messages in it, as far as I can see.
    Apr 16 10:02:55 carolfs-ifusp sudo[1127]: carolfs : TTY=pts/0 ; PWD=/home/carolfs ; USER=root ; COMMAND=/usr/bin/systemctl poweroff
    Apr 16 10:02:55 carolfs-ifusp sudo[1127]: pam_unix(sudo:session): session opened for user root by carolfs(uid=0)
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping Session c2 of user carolfs.
    Apr 16 10:02:55 carolfs-ifusp gnome-session[576]: Received signal:15->'Terminated'
    Apr 16 10:02:55 carolfs-ifusp org.gnome.evolution.dataserver.Sources3[591]: Received terminate signal.
    Apr 16 10:02:55 carolfs-ifusp colord[453]: Automatic remove of icc-9cb50954c1872204852075bef0599dec from xrandr-Goldstar Company Ltd-W2043-16843009
    Apr 16 10:02:55 carolfs-ifusp colord[453]: Profile removed: icc-9cb50954c1872204852075bef0599dec
    Apr 16 10:02:55 carolfs-ifusp colord[453]: device removed: xrandr-Goldstar Company Ltd-W2043-16843009
    Apr 16 10:02:55 carolfs-ifusp polkitd[358]: Unregistered Authentication Agent for unix-session:c2 (system bus name :1.37, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
    Apr 16 10:02:55 carolfs-ifusp ntpd[300]: ntpd exiting on signal 15
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped Session c2 of user carolfs.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping Session c1 of user gdm.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped Session c1 of user gdm.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping Sound Card.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped target Sound Card.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping system-systemd\x2dfsck.slice.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Removed slice system-systemd\x2dfsck.slice.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping system-getty.slice.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Removed slice system-getty.slice.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping User Manager for UID 1000...
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping Disk Manager...
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping Login Service...
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopping Default.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopping Default.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping Login Prompts.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopped target Default.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopped target Default.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped target Login Prompts.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopping Basic System.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopping Basic System.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping GNOME Display Manager...
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopped target Basic System.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopped target Basic System.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Starting Generate shutdown-ramfs...
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopping Paths.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopping Paths.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopped target Paths.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopped target Paths.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopping Timers.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopping Timers.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopped target Timers.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped RealtimeKit Scheduling Policy Service.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopped target Timers.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopping Sockets.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopping Sockets.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped Locale Service.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Stopped target Sockets.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Stopped target Sockets.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Starting Shutdown.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped Disk Manager.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Starting Shutdown.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Reached target Shutdown.
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Reached target Shutdown.
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Starting Exit the Session...
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Starting Exit the Session...
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping Network.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped target Network.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping dhcpcd on all interfaces...
    Apr 16 10:02:55 carolfs-ifusp systemd[567]: Received SIGRTMIN+24 from PID 1159 (kill).
    Apr 16 10:02:55 carolfs-ifusp systemd[386]: Received SIGRTMIN+24 from PID 1160 (kill).
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped User Manager for UID 120.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped User Manager for UID 1000.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping user-1000.slice.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Removed slice user-1000.slice.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopping user-120.slice.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Removed slice user-120.slice.
    Apr 16 10:02:55 carolfs-ifusp dhcpcd[1161]: sending signal TERM to pid 264
    Apr 16 10:02:55 carolfs-ifusp dhcpcd[1161]: waiting for pid 264 to exit
    Apr 16 10:02:55 carolfs-ifusp dhcpcd[264]: received signal TERM from PID 1161, stopping
    Apr 16 10:02:55 carolfs-ifusp dhcpcd[264]: eno1: removing interface
    Apr 16 10:02:55 carolfs-ifusp systemd[387]: pam_unix(systemd-user:session): session closed for user gdm
    Apr 16 10:02:55 carolfs-ifusp systemd[568]: pam_unix(systemd-user:session): session closed for user carolfs
    Apr 16 10:02:55 carolfs-ifusp gnome-session[576]: Received signal:15->'Terminated'
    Apr 16 10:02:55 carolfs-ifusp gdm-session-worker[383]: <3>GLib: Source ID 71 was not found when attempting to remove it
    Apr 16 10:02:55 carolfs-ifusp gdm-Xorg-:0[336]: (II) evdev: AT Translated Set 2 keyboard: Close
    Apr 16 10:02:55 carolfs-ifusp gdm-Xorg-:0[336]: (II) UnloadModule: "evdev"
    Apr 16 10:02:55 carolfs-ifusp gdm-Xorg-:0[336]: (II) evdev: Microsoft Microsoft Basic Optical Mouse : Close
    Apr 16 10:02:55 carolfs-ifusp gdm-Xorg-:0[336]: (II) UnloadModule: "evdev"
    Apr 16 10:02:55 carolfs-ifusp gdm-Xorg-:0[336]: (II) evdev: Power Button: Close
    Apr 16 10:02:55 carolfs-ifusp gdm-Xorg-:0[336]: (II) UnloadModule: "evdev"
    Apr 16 10:02:55 carolfs-ifusp gdm-Xorg-:0[336]: (II) evdev: Power Button: Close
    Apr 16 10:02:55 carolfs-ifusp gdm-Xorg-:0[336]: (II) UnloadModule: "evdev"
    Apr 16 10:02:55 carolfs-ifusp org.freedesktop.Tracker1[591]: Received signal:15->'Terminated'
    Apr 16 10:02:55 carolfs-ifusp dhcpcd[1161]: dhcpcd[1161]: sending signal TERM to pid 264
    Apr 16 10:02:55 carolfs-ifusp dhcpcd[1161]: dhcpcd[1161]: waiting for pid 264 to exit
    Apr 16 10:02:55 carolfs-ifusp dhcpcd[264]: exited
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: Stopped Login Service.
    Apr 16 10:02:55 carolfs-ifusp systemd[1]: dhcpcd.service: main process exited, code=exited, status=1/FAILURE
    Apr 16 10:02:55 carolfs-ifusp mkinitcpio[1145]: ==> Starting build: none
    Apr 16 10:02:56 carolfs-ifusp mkinitcpio[1145]: -> Running build hook: [sd-shutdown]
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped dhcpcd on all interfaces.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unit dhcpcd.service entered failed state.
    Apr 16 10:02:56 carolfs-ifusp gdm-Xorg-:0[336]: (II) NVIDIA(GPU-0): Deleting GPU-0
    Apr 16 10:02:56 carolfs-ifusp gdm-Xorg-:0[336]: (EE) Server terminated successfully (0). Closing log file.
    Apr 16 10:02:56 carolfs-ifusp gdm[295]: Freeing conversation 'gdm-password' with active job
    Apr 16 10:02:56 carolfs-ifusp gdm[295]: Freeing conversation 'gdm-launch-environment' with active job
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped GNOME Display Manager.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Permit User Sessions...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Permit User Sessions.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Basic System.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Basic System.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Slices.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Slices.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping User and Session Slice.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Removed slice User and Session Slice.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Paths.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Paths.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Forward Password Requests to Wall Directory Watch.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Forward Password Requests to Wall Directory Watch.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Dispatch Password Requests to Console Directory Watch.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Dispatch Password Requests to Console Directory Watch.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Timers.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Timers.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Daily man-db cache update.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Daily man-db cache update.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Daily verification of password and group files.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Daily verification of password and group files.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Daily rotation of log files.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Daily rotation of log files.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Daily Cleanup of Temporary Directories.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Daily Cleanup of Temporary Directories.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Sockets.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Sockets.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Device-mapper event daemon FIFOs.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Closed Device-mapper event daemon FIFOs.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping LVM2 metadata daemon socket.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Closed LVM2 metadata daemon socket.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping D-Bus System Message Bus Socket.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Closed D-Bus System Message Bus Socket.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping System Initialization.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target System Initialization.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Apply Kernel Variables...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Apply Kernel Variables.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Setup Virtual Console...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Setup Virtual Console.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Encrypted Volumes.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Encrypted Volumes.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Load/Save Random Seed...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Update UTMP about System Boot/Shutdown...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Swap.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Swap.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivating swap Swap Partition...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivating swap Swap Partition...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivating swap Swap Partition...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivating swap Swap Partition...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivating swap Swap Partition...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivating swap Swap Partition...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Remote File Systems.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Remote File Systems.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Load/Save Random Seed.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Update UTMP about System Boot/Shutdown.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Create Volatile Files and Directories...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Create Volatile Files and Directories.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Local File Systems.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Local File Systems.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounting /run/user/1000/gvfs...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounting /run/user/120...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounting /boot...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounting /home...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounting Temporary Directory...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivated swap /dev/disk/by-partuuid/748828e6-d06b-4dc9-a1ee-94e2bf6e2d41.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivated swap /dev/disk/by-partlabel/swap.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivated swap /dev/disk/by-id/wwn-0x5000c500242cde85-part2.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivated swap /dev/disk/by-id/ata-ST3500418AS_5VM96G8V-part2.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivated swap /dev/disk/by-uuid/59c506eb-3a40-4eae-8048-317bcc3d00fb.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Deactivated swap Swap Partition.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounted /run/user/1000/gvfs.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounted Temporary Directory.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounting /run/user/1000...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounted /run/user/120.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounted /boot.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping EFI System Partition Automount.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unset automount EFI System Partition Automount.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounted /run/user/1000.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Unmounted /home.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Starting Unmount All Filesystems.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Reached target Unmount All Filesystems.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Local File Systems (Pre).
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped target Local File Systems (Pre).
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopping Remount Root and Kernel File Systems...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Stopped Remount Root and Kernel File Systems.
    Apr 16 10:02:56 carolfs-ifusp mkinitcpio[1145]: ==> Build complete.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Started Generate shutdown-ramfs.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Starting Shutdown.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Reached target Shutdown.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Starting Final Step.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Reached target Final Step.
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Starting Power-Off...
    Apr 16 10:02:56 carolfs-ifusp systemd[1]: Shutting down.
    Apr 16 10:02:56 carolfs-ifusp systemd-shutdown[1]: Sending SIGTERM to remaining processes...
    Apr 16 10:02:56 carolfs-ifusp systemd-journal[166]: Journal stopped
    Last edited by CFS (2014-05-08 12:57:13)

    Thank you for your replies. Shutdown now doesn't turn the computer off either. About the type of system, I think it was custom built. This is a new install from Monday, so I didn't update the kernel. Poweroff, suspend and hibernate have never worked. The requested output:
    $ uname -a
    Linux carolfs-ifusp 3.14.1-1-ARCH #1 SMP PREEMPT Mon Apr 14 20:40:47 CEST 2014 x86_64 GNU/Linux
    $ pacman -Qi linux
    Name : linux
    Version : 3.14.1-1
    Description : The Linux kernel and modules
    Architecture : x86_64
    URL : http://www.kernel.org/
    Licenses : GPL2
    Groups : base
    Provides : kernel26=3.14.1
    Depends On : coreutils linux-firmware kmod mkinitcpio>=0.7
    Optional Deps : crda: to set the correct wireless channels of your country
    Required By : nvidia
    Optional For : None
    Conflicts With : kernel26
    Replaces : kernel26
    Installed Size : 71136.00 KiB
    Packager : Tobias Powalowski <[email protected]>
    Build Date : Mon 14 Apr 2014 03:42:52 PM BRT
    Install Date : Mon 14 Apr 2014 07:50:11 PM BRT
    Install Reason : Explicitly installed
    Install Script : Yes
    Validated By : Signature

  • Windows explorer + other windows applications crashing regularly at resume from sleep and hibernate

    Good evening,
    I have a Thinkpad W510 (4319-29G) running Windows 7 Pro 64bit. The system is loaded with the latest software and drives from Lenovo including BIOS 6NET74WW (1.34), upgrade was done Dec 7th (windows update performed Dec 15th).
    The machine has
    - 8Gb RAM
    - nVidia Quadro FX880M, driver version is 8.17.12.5896, 7-9-2010 and video card BIOS is 70.16.5f.0.b
    - dual harddrives,
       - one Seagate Momentus XT 500Gb (ST95005620AS) FW rev SD23 in the main location with C: and some other partitions
       - one Hitatchi 320 Gb (HTS723232L9SA60) FW rev FC4ZC50B in the bay.
    - Intel Centrino Advanced-N 6200 AGN, driver version 13.3.0.24, 7-14-2010
    - Intel 82577LM Gigabit Network Connection, driver version 11.5.10.1030, 7-22-2010
    Recently I have experienced crashes of multiple windows components at resume from sleep and hibernate.
    It seems to happen when swithing location (from work to home) and thus switching from docking station with wired network connection to no dock and wireless network connection (dont know if this has any bearing but anyway).
    In the event viewer I typically have some 6-12 application errors logged. Sample output from event viewer is:
    Log Name: Application
    Source:Application Error
    EventID:1000
    Level:Error
    Logged:2010-12-15 20:30:02
    Task category100)
    Keywords: Classic
    Computer: xxxxxxx (my computername)
    Then for each application the following detailed data is written in event viewer in the general tab:
    #1
    Faulting application name: rundll32.exe_nview64.dll, version: 6.1.7600.16385, time stamp: 0x4a5bc9e0
    Faulting module name: nview64.dll, version: 6.14.10.13527, time stamp: 0x4c35752f
    Exception code: 0xc0000005
    Fault offset: 0x00000000000f0786
    Faulting process id: 0x115c
    Faulting application start time: 0x01cb9bd59882f1f6
    Faulting application path: C:\Windows\system32\rundll32.exe
    Faulting module path: C:\Program Files\NVIDIA Corporation\nView\nview64.dll
    Report Id: b606b17d-0881-11e0-be39-00a0c6000000
    #2
    Faulting application name: taskhost.exe, version: 6.1.7600.16385, time stamp: 0x4a5bc3c1
    Faulting module name: nview64.dll_unloaded, version: 0.0.0.0, time stamp: 0x4c35752f
    Exception code: 0xc000041d
    Fault offset: 0x00000001800bb350
    Faulting process id: 0x10c0
    Faulting application start time: 0x01cb9bd5694caebe
    Faulting application path: C:\Windows\system32\taskhost.exe
    Faulting module path: nview64.dll
    Report Id: b6ae8cb2-0881-11e0-be39-00a0c6000000
    #3
    Faulting application name: sidebar.exe, version: 6.1.7600.16385, time stamp: 0x4a5bc9e1
    Faulting module name: nview64.dll_unloaded, version: 0.0.0.0, time stamp: 0x4c35752f
    Exception code: 0xc000041d
    Fault offset: 0x00000001800bb350
    Faulting process id: 0x6f0
    Faulting application start time: 0x01cb9bd5986a397a
    Faulting application path: C:\Program Files\Windows Sidebar\sidebar.exe
    Faulting module path: nview64.dll
    Report Id: b6bd0bd9-0881-11e0-be39-00a0c6000000
    #4
    Faulting application name: Explorer.EXE, version: 6.1.7600.16450, time stamp: 0x4aebab8d
    Faulting module name: nview64.dll_unloaded, version: 0.0.0.0, time stamp: 0x4c35752f
    Exception code: 0xc000041d
    Fault offset: 0x0000000008c3b350
    Faulting process id: 0x1210
    Faulting application start time: 0x01cb9bd569d9ae8e
    Faulting application path: C:\Windows\Explorer.EXE
    Faulting module path: nview64.dll
    Report Id: b6d21ac7-0881-11e0-be39-00a0c6000000
    #5
    Faulting application name: Dwm.exe, version: 6.1.7600.16385, time stamp: 0x4a5bc541
    Faulting module name: nview64.dll_unloaded, version: 0.0.0.0, time stamp: 0x4c35752f
    Exception code: 0xc000041d
    Fault offset: 0x00000001800ba570
    Faulting process id: 0x11c4
    Faulting application start time: 0x01cb9bd569aa125c
    Faulting application path: C:\Windows\system32\Dwm.exe
    Faulting module path: nview64.dll
    Report Id: b72bfbe8-0881-11e0-be39-00a0c6000000
    #6
    Faulting application name: rundll32.exe_PWMTR64V.DLL, version: 6.1.7600.16385, time stamp: 0x4a5bc9e0
    Faulting module name: nview64.dll_unloaded, version: 0.0.0.0, time stamp: 0x4c35752f
    Exception code: 0xc000041d
    Fault offset: 0x00000001800bb350
    Faulting process id: 0x1450
    Faulting application start time: 0x01cb9bd59995023a
    Faulting application path: C:\Windows\system32\rundll32.exe
    Faulting module path: nview64.dll
    Report Id: b7e4521b-0881-11e0-be39-00a0c6000000
    It seems that a module "nview64.dll" is always the first application to crash. I suspect this has something with graphics to do.
    I dont know if this event triggers the following crashes or if it is so that the display is initialized before the other programs.
    After all crash diagnostic messages have been shown windows explorer restarts and also other applications restart but a lot of system tools in the system tray are gone so a cold start is needed to restore all tools again.
    I really would appreciate any help and suggestions how to fix this really annoying issue.
    Thanks, Anton

    I had a similar issue, as soon as a described even a little bit of it to warrenty support they sent someone to swap the board
    It seems thats the only fix, its been fine since 

Maybe you are looking for