Turned out to be user error. WebSphere specific CMP to RDB mappings were incorrect. I did the mapping by taking a look at jbosscmp-jdbc.xml. Now the timer works fine. But I see another scheduler related error in WebSphere logs though it does not seem to affect the processing.
[10/1/10 11:06:12:820 EDT] FFDC Exception:com.ibm.websphere.scheduler.TaskPending SourceId:com.ibm.ws.scheduler.AlarmListener.handleUpdateException ProbeId:700 Reporter:com.ibm.ws.scheduler.AlarmListener@75a375a3
com.ibm.websphere.scheduler.TaskPending: SCHD0059W: The task information for task ID 52 for scheduler WebSphere_EJB_Timer_Service (WebSphere_EJB_Timer_Service) cannot be removed from the database because the task does not exist or the task information has already been removed by another Scheduler.
at com.ibm.ws.scheduler.TaskStoreImpl.remove(TaskStoreImpl.java:831)
at com.ibm.ws.scheduler.AlarmListener.updateTask(AlarmListener.java:1047)
at com.ibm.ws.scheduler.AlarmListener.access$300(AlarmListener.java:121)
at com.ibm.ws.scheduler.AlarmListener$TaskWork.doWork(AlarmListener.java:502)
at com.ibm.ws.scheduler.AlarmListener$TaskWork.run(AlarmListener.java:213)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:268)
at java.security.AccessController.doPrivileged(AccessController.java:224)
at javax.security.auth.Subject.doAs(Subject.java:495)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:131)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:89)
at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:335)
at java.security.AccessController.doPrivileged(AccessController.java:251)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:777)
at com.ibm.ws.asynchbeans.ExecutionContextImpl.go(ExecutionContextImpl.java:86)
at com.ibm.ws.scheduler.AlarmListener.fireTask(AlarmListener.java:1401)
at com.ibm.ws.scheduler.AlarmListener.fired(AlarmListener.java:1319)
at com.ibm.ws.asynchbeans.AlarmImpl.callListenerMethod(AlarmImpl.java:340)
at com.ibm.ws.asynchbeans.timer.GenericTimer.run(GenericTimer.java:216)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:264)
at java.security.AccessController.doPrivileged(AccessController.java:224)
at javax.security.auth.Subject.doAs(Subject.java:495)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:131)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:89)
at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:335)
at java.security.AccessController.doPrivileged(AccessController.java:251)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:1146)
at com.ibm.ws.asynchbeans.AlarmImpl.runListenerAsCJWork(AlarmImpl.java:175)
at com.ibm.ws.asynchbeans.am._Alarm.fireAlarm(_Alarm.java:333)
at com.ibm.ws.asynchbeans.am._Alarm.run(_Alarm.java:230)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
[10/1/10 11:06:12:820 EDT] FFDC Exception:com.ibm.websphere.scheduler.TaskPending SourceId:com.ibm.ws.scheduler.AlarmListener.handleUpdateException ProbeId:700 Reporter:com.ibm.ws.scheduler.AlarmListener@75a375a3
com.ibm.websphere.scheduler.TaskPending: SCHD0059W: The task information for task ID 52 for scheduler WebSphere_EJB_Timer_Service (WebSphere_EJB_Timer_Service) cannot be removed from the database because the task does not exist or the task information has already been removed by another Scheduler.
at com.ibm.ws.scheduler.TaskStoreImpl.remove(TaskStoreImpl.java:831)
at com.ibm.ws.scheduler.AlarmListener.updateTask(AlarmListener.java:1047)
at com.ibm.ws.scheduler.AlarmListener.access$300(AlarmListener.java:121)
at com.ibm.ws.scheduler.AlarmListener$TaskWork.doWork(AlarmListener.java:502)
at com.ibm.ws.scheduler.AlarmListener$TaskWork.run(AlarmListener.java:213)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:268)
at java.security.AccessController.doPrivileged(AccessController.java:224)
at javax.security.auth.Subject.doAs(Subject.java:495)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:131)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:89)
at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:335)
at java.security.AccessController.doPrivileged(AccessController.java:251)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:777)
at com.ibm.ws.asynchbeans.ExecutionContextImpl.go(ExecutionContextImpl.java:86)
at com.ibm.ws.scheduler.AlarmListener.fireTask(AlarmListener.java:1401)
at com.ibm.ws.scheduler.AlarmListener.fired(AlarmListener.java:1319)
at com.ibm.ws.asynchbeans.AlarmImpl.callListenerMethod(AlarmImpl.java:340)
at com.ibm.ws.asynchbeans.timer.GenericTimer.run(GenericTimer.java:216)
at com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.java:264)
at java.security.AccessController.doPrivileged(AccessController.java:224)
at javax.security.auth.Subject.doAs(Subject.java:495)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:131)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:89)
at com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext.java:335)
at java.security.AccessController.doPrivileged(AccessController.java:251)
at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:1146)
at com.ibm.ws.asynchbeans.AlarmImpl.runListenerAsCJWork(AlarmImpl.java:175)
at com.ibm.ws.asynchbeans.am._Alarm.fireAlarm(_Alarm.java:333)
at com.ibm.ws.asynchbeans.am._Alarm.run(_Alarm.java:230)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)