I use this SQLServer database query. the report text is in the rh(report history) table. The date range filters are currently configured to look at reports within the last 60 days, but I'd strongly suggest scanning for much smaller timeframes first, to see what type of database performance you get. THIS QUERY CAN BE EXPENSIVE.
It is currently configured to look for this error message:
"SocketException: Connection reset"
select
oh_name
, ah_idnr as runid
, rt_type
, dateadd(hour, datediff(hour, getutcdate(), getdate()), ah_timestamp2) as started
, dateadd(hour, datediff(hour, getutcdate(), getdate()), ah_timestamp4) as ended
--, rt_content
--, rt_msginsert
from uc4.dbo.rh
, uc4.dbo.rt
, uc4.dbo.ah
, uc4.dbo.oh
where rh_ah_idnr = rt_ah_idnr
and rh_ah_idnr = ah_idnr
and ah_oh_idnr = oh_idnr
--and not oh_name = 'DC.UTIL.FILE.MOVE.RC0001' -- job name filter
--and rt_type = 'REP'
and rt_type = rh_type
and rt_content like '%SocketException: Connection reset%' -- string to search for in the report
--and rt_content like '%sqlcmd -I%'
and dateadd(hour, datediff(hour, getutcdate(), getdate()), ah_timestamp2) < dateadd(day, -0, getdate()) -- job ran reciently
and dateadd(hour, datediff(hour, getutcdate(), getdate()), ah_timestamp2) > dateadd(day, -60, getdate()) -- job ran reciently
order by 5,1