AUTHOR: Joel TITLE: DATE: 7/12/2005 12:56:00 PM ----- BODY:
What I learned at JavaOne 2005 EJB 3.0 is cool, they are using annotations to do all the repetitive work for you that people thought was cumbersome (I think this was overvblown, but its still cool). It also is using all the spring ideas & hibernate ideas (including IOC, hadnt heard this before javaone). XML Processing and performace - main thing out of this ssession was that if your just parsing some xml to put into an ojbect doing some processing and then turning an object back into some xml, dont use dom or sax, use jaxb or xmlbeans. Probably a big DUH for me, but the lightbulb went off Chasing 9's Modeling & Measuring Availability of J2EE Applications - wasnt the greatest session, but they had some interestign theory on availability. I seem to have lost my notes on this one, Ill try to get the slides. The main point here is they said they proved the Iplanet app server is 5 9's, of course they worked for sun. Glashfish is sun's open source j2ee server, I think it is based on IPlanet, very interesting implications for jboss and geranamo. Achieving Great File I/O performance in java - this session was done by the BEA guy that worked on JMS in weblogic 9. His quest was to get the most robust and best performing file based persistence impl. Key things out of this is buffering up writes for performance and realizing that most filesystems dont commit writes (there are commands that can force a write depending on which type of writer you are using. Also the best performing way to write is called direct i/o which you cant currently do in java, so they wrote a c version for each os and jni. AJAX - is a very cool technology that is built into browsers that allows you to have dynamic content via javascript with serveral calls to the server without the page reloading. Google has made it famous with google maps Grizzly is a java nio connector for Glassfish, its appears at first glance to be a good start at a nio framework, still need to look at it. Six ways to get out of memory error - was a very good session, here are the 6 ways in summary: 1.) memory leak, maybe slow leaks that take days or weeks to show up, in mustang cool feature java -xx +HeapDumpOnOutOfMemoryError 2.) Heap is not big enough - you just dont have enough memory to store what your app needs. 3.) My perm gen is full - I think I ate too many classses - perm gen space (new 1.5) in stack, 1.4 & before not. Jdk 1.5 has jmap perm option. 4.) Hand over your swap space vm aborts, crash, hang, weird behavior, could be jni code cant malloc, basically the idea here is you requested x bytes and the os cant give it to you. 5.) The evil finalizer - finalizers can delay garbage collection, if lots of code being executed on multiprocessor system this is more liekly. dont use finalizers. To diagnose, use jconsole mbean tab/summary # obj pending for finalizer 6.) long lived jni critical section - gc cant happen during jni critical sections. Beyond Bloggingg, Feed Syndication and Publishing with Java - in java there are 2 competing tools ROME from sun and FeedParser from ROME is dom based, FeedParser is sax based, it looks like feedparser is more mature and faster but ROME is being run by sun.