Re: Getting an out of memory error

From: Tom Shelton (tom_at_mtogden.com)
Date: 03/04/04


Date: Wed, 03 Mar 2004 22:01:27 -0800

On 2004-03-04, RD <nospam@nospam.net> wrote:
> I have a VBV.NET application that runs on a timer to do a job at one hour
> intervals.
> Basically the sequence is as follows
> the timer event fires
> 1- the timer get turned off
> 2- the code then checks to see if we're just changed hour from when the
> previous transfer session took place
> IF yes
> the code executes an FTP transfer from an FTP site.
> When the transfer is completed the file received is parsed (it's a comma
> separated ASCII file) line by line and the dat is transferred to SQL server
> files.
> Remember the hour part of the current transfer session time
> end if
> Turn the timer on again
>
> All the code can execute faultlessly for a week doing a transfer every hour
> on the hour or it can try the first one and stop dead in it's tracks with an
> out of memory error message. Never at the same place but always the same
> code 80004008. We had logs running tracing the program execution and writing
> every procedure to text files and nothing gives us an inkling that it's
> going to fail.
>
> All through the code we've been very carefull to close every ADO .Net
> connection every time we open one and tried to always set unused objects to
> nothing explicitly. All I can come up with as a cause is the new garbage
> collector is going out on an illegal strike <GGGG>.
>
> This has been bugging me for over two months in an operational test phase
> and I'm wondering if there is a practical way to trace what is happening
> with memory useage over time, keeping a record that we can correlate to when
> the errors and trying to figure out exactly why an app that runs alone
> usoing about 15% of the available RAM on a machine suddenly and unexpectedly
> runs out of memory and does so in a totally unpredictable way.
>
> Any help would be immensely appreciated.
>
> MS if you're monitoring this thread, do you think there might be <shudder> a
><NO NO DON'T SAY IT> bug in the garbage collector < SORRY, SORRY MOST ABJECT
> APOLOGIES>. What can I do to make this relaible. This is a vital busines
> process that must run unattended 24 7 365.
>
> Bob

Bob...

There was a bug in the 1.0 GC. It failed to deal with the large object
heap correctly (objects over about 80K in size). So, if you had large
arrays, you could end up running into memory problems. Are you using
1.0 or 1.1? As for a problem with the 1.1 GC, I haven't heard of one
and I have a windows service that has been running flawlessly for quite
some time that talks to an sql server database...

By the way, explicitly setting objects to nothing on the local scope
isn't really going to do anything for you :). Are you sure you are
calling Close/Dispose on all your objects that implement these methods?

Another place to look is if your using any COM components or P/Invoke
calls. Those are good places for memory leaks. You might want to look
into the Performance counter classes. They would probably give you a
much better means of monitoring your applications memory useage...

-- 
Tom Shelton [MVP]
Powered By Gentoo Linux 1.4
Help me, I'm a prisoner in a Fortune cookie file!


Relevant Pages

  • Getting an out of memory error
    ... I have a VBV.NET application that runs on a timer to do a job at one hour ... the code executes an FTP transfer from an FTP site. ... out of memory error message. ... bug in the garbage collector < SORRY, ...
    (microsoft.public.dotnet.languages.vb)
  • RE: Data caching question
    ... All this stuff is built in to ASP.NET ... I was thinking about making another caching singleton that would cache ... the CacheDB object would have a timer ... My primary concerns are the memory usages of in memory tables ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Creating Modeless Dialogs continually causing application to grow
    ... Adding the timer to give the main application a moment of rest seems to remove the modelss dialog memory growth. ... MFC's definition of "idle time" is checking the message queue and finding no messages to dispatch. ... So if you are keeping the message queue continually busy, or the processor continually busy, the temporary objects will tend to build up, awaiting idle time. ...
    (microsoft.public.vc.mfc)
  • Re: Software protection
    ... > 1) Encryption ... Timer which has to be active for the program to function., ... had many e-mails informing me known hackers hard at work to break it. ... i use the Virtual Memory functions to change things in memory. ...
    (comp.lang.pascal.delphi.misc)
  • Re: VFP9 timer weirdness and 24/7 apps
    ... increasing memory. ... and this is the first time I've seen a timer just up and stop after a while. ... "Zootal" <Don't send me any freaking spam at zootal dot com remove the ... I've run apps in VFP7 that ran 24/7 and had timers that fired ...
    (microsoft.public.fox.programmer.exchange)