Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Internal Operating System error

Status
Not open for further replies.

mca63

Programmer
Mar 5, 2009
4
0
0
MU
The full error message is:
Unknown internal operating system error
File: file path and file name

system information:
Delphi 7, BDE 5.01, Paradox 7
2 Win Vista Business

BDE <Net Dir> is in a shared folder C:\PdoxNet
The program is in a shared folder C:\Prog
Permission are given to the users as full control on those two folders.

The above error pops up intermittently at very different places in the program. It may not happen for hours, it may happen within minutes of entering the program.
After the error, the program freeze.
File path and file name always shows a pdox 7 table that is relevant in the program context. Since the error can occur in any context, any table of the application, small or large, has shown up at one time or another.
There is never any damage to any table. The error cannot be acknowledged, the program is stopped by end process. It can be reentered right away, and it will be impossible to recreate the error. It will happen again, but in another place in another context.
with just one user their no problem in the system. when the second user open the program for sure the message will appear on one station and the other station need a reboot not even the end process works.
Help is greatly appreciated.

 
mca63 - I had all kinds of problems with paradox. 3 files that can get corrupted are: PDOXUSRS.NET, PDOXUSRS.LCK and PARADOX.LCK (You should find all 3 depending on your configuration.) Duplicates of any of these can cause problems so be sure there are only the 3.

Make a backup of them somewhere and try deleting them after a clean boot. (They should get re-created after you program starts.)

I managed to solve all of my problems by adding the following to my app INI file unit: (My <Net Dir> and program folders are differnet than yours so you have to substitute your paths for mine.) BTW: I'm using Delphi 7, BDE 5.01, Paradox 7 also. I don't recall where I found this code, but like I said, it solved the problems I was having with several users running the same app.

NOTE: You will have to add 'BDE' to the uses clause of the unit you add this to.

Code:
procedure SetBdeDir;
var
  hCur : hDBICur;
  Config : CFGDesc;
  ContinueIt: boolean;
begin
  if DbiInit(nil) = DBIERR_NONE then begin
    hCur := nil;
    if DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPersistent, '\DRIVERS\PARADOX\INIT', hCur) = DBIERR_NONE then
    begin
      if DbiSetToBegin(hCur) = DBIERR_NONE then begin
        ContinueIt := true;
        while ContinueIt do begin
          if(DbiGetNextRecord(hCur, dbiWRITELOCK, @Config, nil) <> DBIERR_NONE) then
            ContinueIt := false
          else if StrIComp(Config.szNodeName, 'NET DIR') = 0 then begin
            StrCopy(Config.szValue, 'F:\QcMenu');
            DbiModifyRecord(hCur, @Config, true);
            ContinueIt := false
          end;
        end;
      end;
    end;
    DbiExit();
  end;
end; //SetBdeDir

initialization
begin
  if DirectoryExists('F:\QCMenu') then begin
    DefaultDb:= 'F:\QCMenu\@Data';
    SetBdeDir;
  end
end;

finalization
begin
end;

end.

BTW:
My program is in 'F:\QCMenu\'
BDE Administrator.Configuration.Drivers.Native.PARADOX.NET DIR = 'F:\QCMenu'
PDOXUSRS.NET was found in 'F:\QCMenu\'
My data for the program is in 'F:\QCMenu\@Data\'
PDOXUSRS.LCK and PARADOX.LCK were found in 'F:\QCMenu\@Data\'
'F:\' is a mapped drive to 'MS-Server 2003'

Good luck!

Roo
Delphi Rules!
 
thanks for your reply,
i see that your application is running on an MS server 2003,
i have no problems with the 2003 server or XP or any other windows flavors; my only problems happen with vista and only when multiple users access the data simultaneously.

regards
 
Well that explains it. Yet another VISTA shortcoming. I'm fortunate for not having to deal with that P.O.S. of an OS.

Am I correct in assuming that cleaning up any stray lock-files (on all machines) and my code snippet did not help either?

Roo
Delphi Rules!
 
yes roo0047 i think it is a VISTA shortcoming.

I left Procmon running and i captured once it crashed.
I received those messages first
C:\Windows\CSC\v2.0.6\namespace\Server-PC NAME NOT FOUND
C:\Windows\CSC\v2.0.6\namespace\SERVER-PC NAME NOT FOUND
C:\Windows\CSC\v2.0.6\namespace\Server-PC NAME NOT FOUND
\\Server-PC\ComWay32\ SUCCESS
C:\Windows\CSC\v2.0.6\namespace\Server-PC NAME NOT FOUND
C:\Windows\CSC\v2.0.6\namespace\SERVER-PC NAME NOT FOUND
C:\Windows\CSC\v2.0.6\namespace\Server-PC NAME NOT FOUND
C:\Windows\CSC\v2.0.6\namespace\Server-PC NAME NOT FOUND

then
\\Server-PC\ComWay32\Data01\PDOXUSRS.LCK FAST IO DISALLOWED
\\Server-PC\ComWay32\Data01\PDOXUSRS.LCK DISCONNECTED

i think that VISTA has a problem with shared folder that multiuser may access
 
mca - Forgive me for shooting from the hip here, since I am not vista wise. Perhaps if the Vista client PCs had been installed from MS-Server 2007 the path permissions would have been auto-assigned. Maybe the path permissions need to be manually configured to get the locks working.

There are other forum members in here that know a lot more than I do on this. Hopefully someone else will jump in.

There is also a Server 2003 forum group that may be able to help configure Vista clients.

It looks like you are on the right track to identify the problem though.

Thanks for the Procmon tip. Didn't have it but do now.

Good luck with it!

Roo
Delphi Rules!
 
thanks roo for your help and for your time

best regards
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top