Ok three things seem odd here:
1. You dont need a transaction when you are reading from a db (i.e; using select queries). Transaction is required only when an update is done. So remove the transaction related code from your code.
2. Try setting a scroll mode in the query. i,e; instaed of query.scroll() try using something like query.scroll(ScrollMode.SCROLL_INSENSITIVE)
3. I guess scrollable resultset support in hibernate is dependent on the jdbc driver support. So i donno check your jdbc driver if it supports scrollable resultset.
I feel it may be a session related problem so try removing transaction related code and see how it goes. Let me know if it works ... or it doesnt
-Prashanth.