Posts Tagged ‘resin’
Thursday, October 9th, 2008
I’ve been working on the section in the training course dealing with mod_caucho, Resin’s Apache plugin. This is one of the last things I’m working on and for good reason. Dealing with Apache is a pain and usually unnecessary. If you can avoid using Apache with Resin, we recommend it. There are lots of good reasons not to use Apache:
- Apache isn’t any faster than Resin for serving static files (unless they’re really big)
- Resin has had rewrite-rules which obviate the need for Apache as a rewrite engine
- Resin Professional has a much better load balancer which takes into account number of connections, CPU load, and other factors in assigning new connections
I think a lot people who upgrade from Tomcat to Resin are used to using Apache with their Java Servlet engine because Tomcat had a reputation of operating better with Apache. I’m not sure if that’s even true in Tomcat’s case, but it’s certainly not in Resin’s.
So should you ever use Apache? Maybe. If you’ve got a highly heterogeneous site with lots of different applications using a variety of modules like mod_perl or mod_python, you might be better off with Apache on the front end.
Finally, one quick note: We just had a support request come in about using Apache 1.3. We have deprecated support for Apache 1.3 and I just verified that Resin 3.1.7a doesn’t work with it. Resin 3.2.0 does, but don’t rely on this in the future. Either upgrade to Apache 2 or get off of Apache entirely. You’ll thank yourself later.
Monday, September 29th, 2008
You might have noticed that posts slowed down here after my talk at JavaZone, which is because I took some time off to see Scandinavia. But I’m back now and getting ready for even more upcoming events! Just a quick review:
- San Francisco Java Meetup - I’ll be speaking here again, this time about Resin’s OSGi container implementation, as well as general OSGi issues along with fellow Java Meetup regular, Andrew Headrick. This is just one week away on Monday, Oct 6 at 6:30. The signups are full right now, but keep an eye on the page in case anyone drops out…
- Resin Administration Training - There are still a couple of spots left for this course, so sign up ASAP to guarantee your seat. I’ll be teaching this at Marakana’s facility in San Francisco on October 22-24. It should be an action packed 3 days!
- Silicon Valley Code Camp - This informal, but highly technical conference is growing by leaps and bounds. With already over 500 signups, I expect the Code Camp to be a ton of fun and very successful. I’ll be speaking on Quercus and BAM, so stop by for those and the other speakers’ talks on Nov 8 & 9 at Foothill College.
- Devoxx - You might know this as JavaPolis or briefly JaVoxx, but the newly renamed Devoxx is still the same great conference that attracts developers from all over the world. It will be held Dec 8-12 in Antwerp, Belgium. I’ll be giving a talk there and Caucho is a plugin partner, so look for us on the convention floor as well.
Thursday, September 11th, 2008
If you’re a Resin Pro user, you might have noticed that since Resin 3.1, we’ve had a heap dump available in the /resin-admin administration application. It’s a great tool to help you figure out which objects are taking up the most memory, but you might have trouble parsing the data the first time you see it. I’ll go over the heap dump here to make it a little easier…
Wednesday, September 3rd, 2008
Today, I had a call about Quercus and I’ve been working on my presentation for JavaZone and these two things made me realize that we still have some confusion around the various Caucho products and licenses. We’ve got some people working on real literature explaining all of this, but in the meantime, I thought I’d try to clear up some of the confusion with a quick post.
Thursday, August 28th, 2008
I’ve been working on finishing up the Resin administration training course and one of the subjects is “When and why to use PHP on a Java server”. Of course, I’m referring to Quercus and as I wrote this section, I realized some things about the PHP and Java open source communities.
Java’s open source community is most well known for producing great libraries and frameworks, while PHP’s is most well known for producing great applications. In Java, it’s often assumed that you’re paying someone to produce the application while in PHP it’s often that you’re not paying anyone or you simply don’t have time to write a custom application. With these things in mind, Java and PHP really can be viewed as complementary technologies. So when would you use them together?
- When you need to get an application ready right away and there’s a popular PHP application available, but you’re a Java shop
- You want to unify existing but separate PHP and Java deployments into one
- Moving a PHP-only site to Resin for improved performance, reliability, and monitoring
- You need PHP for the frontend and and Java libraries on the backend and you want them to be able to talk to each other easily
These are just a few of the examples that I came up with, but I’m sure there are more. What has your experience been?
Monday, August 25th, 2008
I’m pleased to announce that we’ve teamed up with Marakana to do a training course on the administration of Resin. I’ll be teaching the course on October 22-24 at Marakana’s San Francisco offices and writing the course materials with the guidance of other Caucho engineers and the Marakana guys, who really know their stuff when it comes to training. If you sign up for the course this week, you get a significant discount. I’d jump on it sooner than later since we’re limited to 10 students (we wanted a really good student:teacher ratio). Here’s the link: Caucho Resin Administration sign up
Wednesday, August 6th, 2008
If you missed Monday’s talk by hi5’s Paul Lindner, you missed a great presentation. Fortunately, the slides are available on the meetup group’s page. Paul talked about the true ins and outs of running a hugely scalable, high performing social networking site. A lot of the architectural points he made are applicable to more than just social networking though. Basically, they do a ton of caching, a ton of monitoring/profiling, and just generally really clever use of resources, both hardware and software. Oh, and they also use Resin. Paul claimed hi5 to be one of the largest users of Resin.
Tuesday, July 22nd, 2008
I got a nice note from Frank E. Banks yesterday about his cool new music search engine, musedot. It’s running on Resin and Quercus open source. Here’s a quote from Frank about why he chose Caucho for his platform:
Musedot (http://musedot.com) is a music search engine I created that is built with java for the core logic and uses resin/quercus for java integration and presentation logic (php). Once I determined that I would need to write a search engine from scratch, and one that needed to be robust and fast, I started doing a lot of research on the best architecture and settled on resin/quercus because I wanted to avoid the overhead of the Java web services model and doing something as complex as writing it all in C was totally out of the question. The fact that it is open source was also important. Despite having to learn two new program languages, java and php, the development process has gone smoothly (for software development) and I my choice has proven to be an excellent one.
Wednesday, June 25th, 2008
Resin is one of the easiest application servers to develop with because of a number of developer-oriented features, but not a lot of people know about them! Let me mention a few of my favorites here:
- Automatic, in place compilation and recompilation of Java source. This feature lets you develop Java with the same ease as PHP. Just save your .java file in your webapp’s WEB-INF/classes directory (with the appropriate package path) and Resin will compile it for you. Changes are picked up as well and redeployed without restarting the whole server. Forget the hassle of building a .war for every little change, much less restarting the server.
- Versioned webapps. Say you’ve deployed your application, but found a bug. There are a few users who still have live sessions, so you don’t want to boot them off, but at the same time, you don’t want to allow new users to start new sessions with the buggy webapp. Versioned webapps let you deploy a new version that runs in parallel with the old version. The new version gets all the new sessions, while the old version stays live until the last old session expires. It allows a nice, soft rollout of new code. To use the feature, all you have to do is name your .war files with a version number. For example, foo-1.0.war would be superceded by foo-1.1.war, automatically.
- Live profiling. The /resin-admin application that’s provided with Resin has a number of great features for developers, one of which is the live profiler that shows how much time is spent in any given method and gives a stack trace to show how that method was reached. This should help you find the bottlenecks in your application.
- Heap dumps. This is another feature in the /resin-admin that gives you a sorted heap dump showing which objects take up the most memory.
There are a ton of other features, but hopefully that gives you a reason to try Resin or check out some of the features you’re missing if you’re already using Resin.
Existing users: are there any features that you’re using that you find helpful as a developer?
Wednesday, May 14th, 2008
The May Netcraft web server survey shows Resin is the top Java web server! Last month, Jetty managed to get on top for a moment to much fanfare, but if you look back over the past Netcraft surveys, Resin consistently tops Jetty and now it even tops every other Java web server.
We’re very proud of this achievement, but I’d like to note exactly what this means: It should mean nothing to you in terms of which technology you’re choosing for your project. However if you find that Resin fits the bill, you can be assured that you’ve got a large community of users who know and use Resin.