Messaging and EJB timers are stored to the database.
A cluster should use the same database because you will share the informations (e.g. for failover).
Maybe the timer is special because it might happen that a timer will be started on each cluster node and you might avoid that, this is possible by changeing the ejb-timer configuration (the table name must be different for each node).
Also you application must share the data otherwise you have fuzzy results if WEB/EJB calls are loadbalanced.