The dot-Net perspective.
- Wow, what an ass whoopin
- Yep and one of those $40,000 app servers crashed!
- Rickard says the benchmarks were a scam
- Who the hell is Rickard, why would you trust a dreambean?
- Rickard is an expert, I would trust him more than The Server Side
- Rickard and The Register and anti-microsoft conspiracy nuts
- Lots of talk about the "appeal to authority" argument
- Lots of talk about whether the nickname "M$" is hate speech or not
- The benchmark was flawed, .Net and J2EE performance are similar
- Price/performance favors .Net because the app server is free with the OS
- Look at that anti-Microsoft stuff on Russell Beattie's site, that guy is sick!
Bloated Development Kit.
Yep, all you have to do is to download the .Net SDK and start hacking away. But wait, the <a href= "http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml">.NetFramework SDK is a 137,363,456 byte download. And that is not all, if you want to redistribute your .Net apps you'll also need to download the <a href= "http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/MSDN-FILES/027/001/829/msdncompositedoc.xml">.Net Framework Redistributable, another 21,827,584 bytes. And you thought the JDK was bloated!
The Andy Oliver report.
In other Andy news, Andy <a href= "http://www.trilug.org/%7Eacoliver/hackinglog.html">mentioned today on his Hacking Log the possibility of a joint venture with the Triangle Dot-Net Users Group and the Triangle Java Users Group: a Dot-Net vs. J2EE shootout. Now, that sounds like a fun meeting.
Theme experiments.
Incompetence and betrayal.
It has been a week now since the TSS published The Petstore Revisited, but
I am just now getting around to reviewing the story.
On Monday Oct. 28, 2002, The Server Side published (TSS) The Petstore Revisited.
This benchmark report compared Sun's example J2EE Petstore application
with some performance revisions added by TSS to a Microsoft written dot-Net
clone of the Petstore. Respected open source Java guru Rickard Oberg
quickly reviewed the report, found many flaws, and published a rebuttal the very
next day. Rickard updated his rebuttal with more information and links to
other's views throughout the week (but he missed Rafe's comments).
On Wednesday he was Slashdotted.
As the week progressed, the outcry continued, and the full story was revealed:
- the benchmark report was seriously flawed in many ways,
- the J2EE Petstore performance revisions done by TSS were inept at best,
- Microsoft paid TSS to do the benchmark,
- TSS is essentially a Microsoft business partner,
- and TSS worked with Microsoft to coordinate the dot-Net victory media spin.
If you are concerned about the relative performance of dot-Net and J2EE, read the Pet Shop Boys write-up at Larry O'Brien's Thinking In Dot Net weblog:
Resolution?
A break.
Tracking down the FreeRoller problem.
We've been having a helluva time tracking down the problem that is causing <a href=
"http://www.freeroller.net">FreeRoller to crash two or three times each
day. By "crash" I mean that FreeRoller gets slow, stops responding to
hits on Roller's Velocity-driven pages, and eventually seems to lock up Tomcat. Once Tomcat is locked up, you will started getting "Document contains no data" errors in your browser.
Here are some of the things I've been working on to resolve this problem:
Ensure that resources are released
Roller uses Castor JDO and the Velocity DataSourceResourceLoader for all database access, so Roller has to trust those components to use and release database connections properly. Every time Roller gets a database connection (a JDO Database object), it uses that connection within a try block and releases the connection within a finally block.
FreeRoller uses Roller on Tomcat with DBCP connection pooling <a href= "http://jakarta.apache.org/tomcat/tomcat-4.0-doc/jndi-resources-howto.html">via JNDI and the MySQL JDBC drivers. We have not be able to figure out how to configure DBCP to get debug informaiton on the number of database connections in use. If you know how to do this please drop me a line.
Ensure that exceptions are being handled properly
There were a number of places where exceptions were being blown out to Tomcat instead of being handled properly by using a response error code. There was also one place where an exception was being thrown from within a catch block. None of these should cause a crash, but I was guessing that perhaps one of them was tickling a Tomcat or Java VM bug.
Look for infinte loops and infinite recursion
I found and fixed an infinite loop in the error.jsp file which used itself as its own error handler. That bug was very easy to find due to the big stack trace and stack overflow exception in the Tomcat logs.
There could be other problems with infinite loops and recursion, but I have not found any evidence of these problems in the FreeRoller logs. Weblog templates and weblog entries are treated as Velocity templates, so it possible that a weblog author could introduce an infinite loop or infinite recursion. Roller tries to protect against this in the Roller macros.includePage() and macros.showWeblogEntries() directives, but we can't offer protection against a truly malicious user.
Test under heavy load
FreeRoller runs on Tomcat 4.0.6 and MySQL on Linux. So, I setup Tomcat 4.0.6 and MySQL on my Redhat 7.1 box and tried some stress tests. I tried using JMeter, but it kept on running out of memory. I eventually found Openload and set it up to hit http://snoopdave/roller/page/test1 (a pretty heavy page) and http://snoopdave/roller/rss/test1 with 5 clients on each. I configured Roller with a session and page-cache timeout of 2 minutes so that the database code gets a workout. I ran for several hours at heavy load with no ill effects and the number of JDO Database objects never exceeded 20.
Even with a new 0.9.6.3-pre1 build of Roller that addresses the issues above, FreeRoller still had a crash today. I'm baffled. If you have any suggestions for testing or debugging tools or approaches, please let me know. Free feel to browse the code ;-)
Roller docs.
MSBlog.
All kidding aside.
Spooky halloween for Roller.
Borland buys Triangle-based TogetherSoft.
Borland has been on a bit of a shopping spree lately. They recently bought StarBase which gained them the StarTeam issue tracker/source code control system and the CodeWright editor.
At the Eclipse meeting last night, I noticed that both TogetherSoft and Borland are on the Eclipse steering committee. Will Borland stop TogetherSoft from rehosting inside Eclipse or is Borland considering rehosting all of it's various IDEs and dev tools inside Eclipse? Will Borland help IBM make Eclipse into the universal multi-language tools platform?
JSP is not Evil .
A frequent criticism that I hear about Java Server Pages (JSP) is that it doesn't strictly separate the presentation logic from the business logic, and there seems to be many solutions developed that aim to force this strict MVC separation. As developers, why should we depend on technology to force adherence to the goals of MVC? It is certainly possible to develop JSP pages that adhere to principles of MVC. If model or controller logic creeps into a JSP page, it our own fault. [Niel Eyde on JSP and MVC]
Greg says the nicest things.
[thanks to] Dave Johnson and Roller contributors: Matt Raible, Lance Lavandowska. I must admit Roller v. 0.9.6.x seriously kicks ass. It's awesome. Great work. I had been tempted to install Roller on my webserver, but finally decided that the simpler application would be more appropriate.
FreeRoller problems.
Triangle Dot-Net Users Group.
Eclipse tour de force.
« Previous page | Main | Next page »