Monthly Archives: November 2007


Don’t like people leeching your wireless?

Don’t just block them, get a little more creative….


By | November 30th, 2007|Security|0 Comments

How to identify the process listening on a port

This is mostly for own use, but: If you’ve ever had a server which netstat showed was listening on one or more ports you weren’t expecting, you can use this command to find out which process is listening there:

fuser -vn tcp 4444

Which in this case happens to be owned by JBoss, and not some […]

By | November 27th, 2007|Linux, Security|2 Comments

Update on 10 Minute Mail problems

As you know if you’ve been following my blog, 10MinuteMail starting dying with OutOfMemory errors seemly randomly. Sometimes it would happen after 2 days of uptime, sometimes after a week. I ran load tests and profilers but could not reproduce the issue. On the upside I can say that the 10 Minute […]

By | November 5th, 2007|10MinuteMail|28 Comments

10MinuteMail upgraded again

Moved up to Seam 2.0 CR3, and JBoss 4.2.2. I also optimized some code, got rid of some useless error logging, etc…

Hopefully it will perform a little better:) So far it seems to process incoming e-mail much faster, which was a bottleneck under load.


By | November 3rd, 2007|10MinuteMail, JBoss, Seam|4 Comments

Quartz Scheduling and Seam (part 1)

I am working on a new application, which will require some scheduled jobs. I used EJB3 Timers in 10MinuteMail, but now Seam includes and uses Quartz, an open source scheduling system. So I figured I’d try the new hotness.

So far, it’s been a rough road, and I’m not 100% up and running yet (hence the part 1 in the title), but I wanted to share what I’ve learned along the way as the Seam documentation is lacking a lot of information (although some of what’s below mirrors the Seam documentation).

First you have to enable the Quartz engine for handling @Asynchronous methods. Add this line to your components.xml file:

<async:quartz -dispatcher></async:quartz>

I also found that I had to define the async namespace in my component.xml (generated by seam-gen from Seam 2.0 CR1):


Then I set up my method:

public QuartzTriggerHandle scheduleSiteCheck(@Expiration
Date pWhen, @IntervalDuration
Long pInterval, Long pSiteId) {
Site site = (Site) entityManager.createQuery("from Site where id = :id").setParameter("id", pSiteId)
return null;


By | November 2nd, 2007|Seam|11 Comments