Profiling .NET Windows Service
Posted: Mon Jan 15, 2007 10:45 am
I'm a total newbie to profiling. We are examining a .NET (2.0) Windows Service which on each timer_elapsed event selects data sets from an Oracle database (via System.Data.OracleClient) and then checks each row to determine if any any time specific values require an action. Much of the code has been generated automatically using the DataSet designer to create a DAL.
The service runs fine for about 7 hours and then simply stops processing (service status is that it is still running). The effect is as though the timer has been disabled and so no more processing iterations occur.
While the service executes there is a steady build up in the number of System.WeakReference instances, to the point where there are many millions of them hanging around. They never seem to get cleared out. We have manually placed DataTable dispose calls wherever appropriate to try to ensure they are GC'd as soon as possible, but we are not sure what to do about these WeakReferences. If indeed we need to. I don't know if it is this that is causing the appliaction to fail or not, but they look suspicious to me. Has anyone else experieced anything similar? Do you have any pointers?
The service runs fine for about 7 hours and then simply stops processing (service status is that it is still running). The effect is as though the timer has been disabled and so no more processing iterations occur.
While the service executes there is a steady build up in the number of System.WeakReference instances, to the point where there are many millions of them hanging around. They never seem to get cleared out. We have manually placed DataTable dispose calls wherever appropriate to try to ensure they are GC'd as soon as possible, but we are not sure what to do about these WeakReferences. If indeed we need to. I don't know if it is this that is causing the appliaction to fail or not, but they look suspicious to me. Has anyone else experieced anything similar? Do you have any pointers?