If a block in the database is corrupted "Bad", it should appear in the warning logs as error ORA-01578. I would look for the archive log for the ORA error, and then compare this with the timestamp on the reported client error. This suggests the definition of "bad." It would be better if accurate error messages were sent.
Tracing a blanket in a database is a difficult task, as it will affect the performance of your entire application. And leave it for a whole week, perhaps impossible. I also found in one case (I donβt remember the exact circumstance) where the inclusion of tracing fixed an error.
One of the methods I've used in the past is to add a sql statement to change the session and enable sqltrace. This is due to the possibility of changing the code in any way. Depending on the application, this may or may not be possible.
Another method would be to work with the database administrator to identify the session and enable SQL tracing for that session. In addition, if you can identify offensive sql statements and parameter values, you can replicate the problem outside of the service.
I found that most ORMs avoid transmitting an ORA error. However, it is usually registered at the application server level with a corresponding ORM error.
I used this method and variations of this method to fix errors when starting the application. Hope this is helpful.
source share