It turned out that the system admin had setup a script to look for transactions which were taking too long and it killed the session. I presume this was to keep it from appearing that the application was locked up during a long running SQL. What are other ways developers accomplish this? Aren't there timeouts which will just abort the transaction without killing the session (which means the user has to exit the app and re-enter)?