P
Philippe
Hi,
I have a problem with error mesage 'Not enough space on temporary disk'
I want to edit a field in a table, that is a source in relations with 5
other tables. Editing this field changes its value in about 7 millions
records included in the 5 dependant tables.
With MaxLocksPerFile = 9500 (default value), I get an error:
'Too many locks. Increase the MaxLocksPerFile parameter.'
Until there, nothing wrong. I set this parameter to a high value (e.g. 10
000 000) in the registry, as indicated in the Microsoft knowledge base.
The edition goes further than before, but then I get the error:
'Not enough space on temporary disk'
When I do the same operation by program, I get the same problem:
DoCmd.RunSQL " UPDATE Field FROM Table SET Field='X' ", false
gives the error 'Not enough space on temporary disk'
CurrentDb.Execute " UPDATE Field FROM Table SET Field='X' ", false
gives the error 'System resources exceeded.
I can't figure why I get this error. Microsoft tells in the knowledge base
that there was a limit of about 268 Mo on the temporary files Jet????.Tmp in
Access 95, but that since Access 97, this problem has been solved.
I've monitored the Jet????.Tmp file that is created during the edit, and I
get the error when the file reaches a size of about 220 Mo. And I have about
24 Go of free space on my disk used for temporary files (C:\Windows\Temp).
I thought maybe that the problem had to do with the system memory, and not
with the system disk space, so I went to investigate the MaxBuffersize
parameter of Jet, and I tried to monitor the memory use.
With MaxBufferSize set to 0 (default), the memory use increases slowly to 30
Mo before giving the error. Its is rather stange, my PC has 1 Go RAM
installed. Why a value so low ? According to the automatic setting given in
the knowledge base, the MaxBufferSize should be able to reach about 750 Mo.
If I manually set the MaxBufferSize in the registry to 500 Mo, I finally can
execute my edit without error message ! So the error that I get is not linked
to the temporary disk space, but to the amount of memory required by Jet. It
seems there is a bug in the automatic setting of the MaxBufferSize parameter.
I've reproduced this problem both in Access 2000 and Access 2003.
Apparently, I am not the only one to experience this problem. A search in
Google for 'Not enough space on temporary disk' gives many pages of people
with the same problem. But the Microsoft knowledge base has no information
about that specific problem !
I have apparently found a solution, but I don't know if it is safe to set
arbitrary values in my code for MaxLocksPerFile through the
DBEngine.SetOption instruction. What value should I set so that my code works
for any database size and for any RAM available ? Is there more to this
problem ? Is it a Microsoft bug or not ?
Thanks for your answers.
I have a problem with error mesage 'Not enough space on temporary disk'
I want to edit a field in a table, that is a source in relations with 5
other tables. Editing this field changes its value in about 7 millions
records included in the 5 dependant tables.
With MaxLocksPerFile = 9500 (default value), I get an error:
'Too many locks. Increase the MaxLocksPerFile parameter.'
Until there, nothing wrong. I set this parameter to a high value (e.g. 10
000 000) in the registry, as indicated in the Microsoft knowledge base.
The edition goes further than before, but then I get the error:
'Not enough space on temporary disk'
When I do the same operation by program, I get the same problem:
DoCmd.RunSQL " UPDATE Field FROM Table SET Field='X' ", false
gives the error 'Not enough space on temporary disk'
CurrentDb.Execute " UPDATE Field FROM Table SET Field='X' ", false
gives the error 'System resources exceeded.
I can't figure why I get this error. Microsoft tells in the knowledge base
that there was a limit of about 268 Mo on the temporary files Jet????.Tmp in
Access 95, but that since Access 97, this problem has been solved.
I've monitored the Jet????.Tmp file that is created during the edit, and I
get the error when the file reaches a size of about 220 Mo. And I have about
24 Go of free space on my disk used for temporary files (C:\Windows\Temp).
I thought maybe that the problem had to do with the system memory, and not
with the system disk space, so I went to investigate the MaxBuffersize
parameter of Jet, and I tried to monitor the memory use.
With MaxBufferSize set to 0 (default), the memory use increases slowly to 30
Mo before giving the error. Its is rather stange, my PC has 1 Go RAM
installed. Why a value so low ? According to the automatic setting given in
the knowledge base, the MaxBufferSize should be able to reach about 750 Mo.
If I manually set the MaxBufferSize in the registry to 500 Mo, I finally can
execute my edit without error message ! So the error that I get is not linked
to the temporary disk space, but to the amount of memory required by Jet. It
seems there is a bug in the automatic setting of the MaxBufferSize parameter.
I've reproduced this problem both in Access 2000 and Access 2003.
Apparently, I am not the only one to experience this problem. A search in
Google for 'Not enough space on temporary disk' gives many pages of people
with the same problem. But the Microsoft knowledge base has no information
about that specific problem !
I have apparently found a solution, but I don't know if it is safe to set
arbitrary values in my code for MaxLocksPerFile through the
DBEngine.SetOption instruction. What value should I set so that my code works
for any database size and for any RAM available ? Is there more to this
problem ? Is it a Microsoft bug or not ?
Thanks for your answers.