Did you try to use Derby?
Can you change javax.sql.ConnectionPoolDataSource to javax.sql.DataSource? Or use XA datasource altogether?
When you use a timer, it comes with the XA datasource access because the timer instances are stored in the database. When you call your method directly, it uses a single (non-XA) connection. And that is a big difference :).
thanks,
-marina
[Message sent by forum member 'mvatkina' (mvatkina)]
http://forums.java.net/jive/thread.jspa?messageID=336961