You have to set EndpointExceptionRedeliveryAttempts property to control redelivery for runtimeexceptions. Redelivery properties are always only for runtime exceptions.
If you do a setRollback then the messages will be delivered until the expiration time of the message. Did you try setting the message expiration time for the message? Did you check the getJMSRedelivered flag when you got the same message again ?
[Message sent by forum member 'rampsarathy' (rampsarathy)]
http://forums.java.net/jive/thread.jspa?messageID=271928