Reviews: AppServer: Glassfish V2 B15

  1. AppServer: Glassfish V2 B15 (5 messages)

    Glassfish is the reference implementation of Java EE 5, published as an open source project at https://glassfish.dev.java.net. As such, it tracks the latest specifications from Java EE 5 - at the time of writing, the only server to attempt to fulfill the entire specification. It's also the basis for Sun's Application Server 9 Personal Edition. Installing Glassfish is easy, although a little odd: Glassfish is distributed as an executable .jar file, and installation is done through java, but the installation requires a large heap. Thus, java -Xmx256m -jar [glassfish distribution jar] is used to install the server. After a license page, it then installs in ./glassfish, based on the current directory. After this, ant is used to set up configuration for the specific host. There are two setup files, one for clustered mode and one for non-clustered mode. Initially, both will create the same kind of installation with few noticable differences, including a default domain (called "domain1"). Clustered mode allows the creation of multiple server instances on the same physical host, which isn't as useful as an actual cluster, but can still be useful for testing purposes. (In addition, for this version of the server, there's an administration port issue; I had to change the admin port to 4849 from 4848 in the setup configuration files to get a clustered node agent to work.) Clustering is still a work in progress, and the fact that it seems limited to a single host makes it rather limiting, and therefore, it won't factor in to this review any further other than to note that it looks promising for testing purposes at least; once a cluster is set up, it works well, propagating resource changes through the cluster as one would hope and expect. There's a command provided for nearly all administration functions, including starting the packaged Derby installation. The normal process is to start the database (via asadmin start-database) and then the domain (asadmin start-domain domain1). The domain starts a local copy of Derby (called JavaDB by Sun) and IMQ (Sun's message queue) as well as the web console, which can then be accessed by any common browser - as long as that browser isn't Opera 9. (I used FireFox 1.5 with great success.) The web console is very capable, providing log access (although the log access is a little coarse), resource management, application management, and monitoring - including call flow tracing, a very useful feature for seeing what happens inside of a deployed application. For most features, apart from cluster initialization and server startup and shutdown, the command line client isn't necessary. The server itself is fairly stable, despite still having some niggling bugs. I've noticed that constant redeployments - a bugaboo of JavaEE development - have a tendency to lock up PermGen space, which necessitates a complete shutdown of the process (via kill on UNIX). There are also extant bugs related to filehandles being held in Toplink, the reference implementation of JPA, which may be related to the PermGen issue. That said, not deploying constantly seems to avoid the problem for the most part, so as long as your changes aren't miniscule and constant, you should be okay. The server itself runs very well. Deployed applications run as you'd expect, actual runtime flaws (while present) are tolerable, especially considering that this is a product in development as opposed to a final version. (Users of Sun's AS9PE shouldn't be as tolerant of bugs as users of Glassfish V2.) The user community is excellent for Glassfish. Reviews and features are highlighted regularly through the Aquarium, a blog centered around Glassfish, and the development community responds to bug reports quickly, as well as providing workarounds where possible. As a server in development, though, there are still some problems: PermGen (as mentioned) can be problematic, and there are cases where filehandles are held (TopLink, as mentioned above), as well as some resources aren't freed when one would expect (to wit: a JMS exception that isn't accompanied by an explicit closure of the JMS session will leak that session, which is hardly what should be expected. This is a bug that has been accepted, and a fix is likely in the future.) That said, it's important to note that this review applies only to Glassfish V2, and not V1; V1 is far more stable as a development and deployment platform, and some users are reporting that it's very good as a deployment server. All told, Glassfish V2B15 is an excellent development platform, as long as you are aware of its occasional remaining bugs and are willing to shut down the server on occasion. The clustering support is useful currently for testing purposes only, and it's not bad as an actual production deployment platform either, provided your application is well-behaved. Joseph Ottinger is the editor-in-chief of TheServerSide.com, and has extensive experience in server-side technologies ranging from Perl to Cold Fusion to C/C++ and Java.

    Threaded Messages (5)

  2. Thanks for the review, Joe, much appreciated! A couple of comments... Please note that GF V2 is still in the early stages of development. The good news is that we are trying hard to make all milestones usable, and we very much encourage developers to try these milestones, but it is a case of "caveat emptor" (buyer beware!)... The next major milestone is M2; this should correspond to last week's promotion (B19). This milestone has a single installer that can be used to install in developer and cluster profiles. The notion of profiles will be further developed in future V2 milestones. I'd encourage people interested in trying GF V2 to wait just a few more days until when M2 goes out. Milestones, Roadmap and much other information is available at the GlassFish Wiki: http://glassfishwiki.org. Thanks! - eduard/o
  3. still low on memory storage[ Go to top ]

    the memory storage of th programe seems to be very limited..i noticed that it is still in development ut by the amount of data storage that is too small to be used by a programmer that uses C++ or even linux the only programme that can run smoothly without any blockage or problems is what you see is what you get that is easy hacked may i suggest compresing the memory of this specific programme...by doing so..it will enhance the speed of this programme...all the best in developing this programe all the best...keep m posted with the upcomin of your project if it satisfy my needs maybe il take it off your hand with a very handsome price
  4. Clustering is still a work in progress, and the fact that it seems limited to a single host makes it rather limiting, ....
    Actually, GlassFish v2 cluster is not limited to single host. It uses a small process called node-agent to manage the lifecycle of the server instances running in remote hosts. User may create a node-agent using the create-node-agent command. For example, asadmin start-domain --user admin --passwordfile passwordfile domain1 asadmin create-node-agent --host dasHost --port 4848 --user admin --passwordfile passwordfile nodeagent1 Start the node-agent using start-node-agent command. For example, asadmin start-node-agent --user admin --passwordfile passwordfile --startinstances=false nodeagent1 After this, user will be able to create/delete/start/stop server instances in the remote host from Domain Administration Server console. Log in to Admin Console (https://dasHost:4848) and use the cluster wizard to create clusters. Default user/password is admin/adminadmin. -- Nazrul
  5. coarse logging or log access?[ Go to top ]

    Great article, but could you be a bit more specific on the logging? It was stated that it was coarse :-) Thanks! scott
  6. Re: AppServer: Glassfish V2 B15[ Go to top ]

    Hello Joseph, You mentioned a particular issue with file handles not being released, however I was unable to find a corresponding Glassfish issue in the Glassfish issue tracker. Was an issue filed? The TopLink Essentials group strives to be very responsive to the community and is committed to continuing to keep TopLink Essentials robust and stable. Having fringe cases such as this reported only helps to improve the product for other users. With respect to the issue you were experiencing the file access code has undergone some unrelated changes recently (V2 build 20) that should have resolved the issue. --Gordon