Discover SQL Time on Oracle10g
It sounds like the transaction is being committed (perhaps automatically) even when the application times out.  Changing the COMMIT behavior would be the best option.  

If you can't do that, you could put the database action in a package and then have the package check after it runs the action to see how much time has elapsed.  If the step took more than 45 seconds then it should ROLLBACK, otherwise COMMIT.  

Although this answers your question, it is a fragile solution and you really should look into changing the COMMIT behavior or causing a database disconnect when a timeout occurs.