[chyba] External Exception C0000006

PříspěvekNapsal: 29.03.2007 13:59
od jana.krapkova
Tato chyba operačního systému říká, že nějaký soubor otevřený v režimu memory mapped file (v tom jsou otevřeny všechny EXE/DLL/BPL a pagefile) byl násilně (tedy něčím jiným než samotnou aplikací) uzavřen.

Prakticky:
Microsoft má chybu v designu Terminal Services, kdy soubory spuštěné v režimu Terminál Serveru ze sítě (a je jedno jestli přes UNC-cestu nebo namapovaný disk) se uzavřou, pokud je uzavře jeden uživatel (třeba tím, že aplikaci ukončí), i když jiný uživatel je ještě má otevřené!

Tomu druhému uživateli se to po chvíli vyjeví jako chyba C0000006. Chyba je na straně Microsoftu částečně dokumentována v různých článcích KB (818528, 294816, 299603).

Samozřejmě se chyba může objevovat i z jiných dosud neznámých příčin.
Také je vysledováno že daná chyba C0000006, pokud se objeví, může "zavléci" další chyby, které by jinak nenastaly.

Řešení problému na Terminal serveru:
Přesunout soubory Helios Orange na lokální disky počítače, který slouží jako teminal server.
- toto řešení se opakovaně ukazuje jako jediné spolehlivě funkční
- situace je dobře popsána ve znalostní databázi jiného SW, který ale narazil na stejné problémy
viz http://www.sagehandisoft.com.au/Knowledge_Base_For_IT_Professionals.aspx

PS: Dříve bylo možné použít postup uvedený zde, ale bohužel platí pouze pro Windows 2000:
Problems when more than one user accesses the same file through Terminal Services: http://support.microsoft.com/kb/818528/en-us


ZÁVĚR:
Problém není v samotném Heliosu a v databázích, ty jsou nadále v pořádku. Jedná se nejspíše o momentální výpadek díky nějaké systemové chybě pravděpodobně na serveru a měl by se projevovat ojediněle. Chyba nemusí znamenat nic vážného z pohledu dat a programu jako takového, po restartu PC by mělo být vše funkční. Přesto je vhodné v případě častějších výjimek tohoto typu provést SQL kontrolu databáze. Výjimečně může být externí výjimka způsobena poškozenými daty.

Re: Chyba: External Exception C0000006

PříspěvekNapsal: 10.10.2008 09:54
od michal.stepanek
Objevil se dohad u zákazníka, že by chybu mohla způsobovat i verze antiviru od ESET v případě, že zůstane stanice nějakou dobu v nečinnosti.

Re: Chyba: External Exception C0000006

PříspěvekNapsal: 31.10.2008 14:07
od jan.havranek
Ano, teoreticky může souviset s tím, že ESET Smart Security, za určitých nastavení může samovolně odpojit Helios od SQL a tím vyvolat i tuto a podobné chyby. Co s tím je popsáno zde viewtopic.php?f=2&t=198#p391

Re: [chyba] External Exception C0000006

PříspěvekNapsal: 17.03.2015 16:43
od jan.havranek
Podle novějších informací může problém nastávat tehdy, když je Helios v režimu RDP spouštěn z nějakého SHARE na jiném (ale i na stejném) serveru (tedy v zástupci je např.: \\serverXY\helios\helios.exe). Problémy by měly ustat, pokud se daný adresáře (\\serverXY\helios) přesune nebo zkopíruje na pevný disk terminal serveru a uživatelé RDP nadále spouštějí Helios odsud (tedy v zástupci pak bude např.: C:\Helios\helios.exe).

viz: http://stackoverflow.com/questions/28469246/delphi-errors-on-remote-desktop-server