I have one doubt regarding snap shot too old error.

If the oracle server is not able to provide read consistancy image of data the we will get snap shot too old error.

Suppose if user A is updating some rows then old image will be there in roll back segment and new value in datablock.Now if user B tried to select it will take values from roll back that is read consistancy.If user B is unable to get value from roll back he will get snap shot too old error.Now user A gives commit so that old image will be erased and user B will get snap shot too old error.My doubt is if user A commits then that value will be there in data block and now it is consintant so now from where user B will retrieve data ie from data segment or from roll back segment..?.If user B again looking into roll back then why because already user A commited then why again user B looking into roll back.

Please clear this doubt ....