Olga,
If your server is crashing or hanging you might want to
download our ReJuvin8 tool. It's free for the first
15-days. It can keep your site running despite problems.
It's designed to detect problems then restart or reboot.
It can restart ANY programs, services, or processes in
precise order. It doesn't fix bugs but it does give you some
breathing room while you are finding them. ReJuvin8 also
gives you email and telephone alert messages and graphic
status reports.
It can also test, alert, and report on URLs running anywhere
on any server on your net connection. So if you use multiple
servers you can use them to watch each other, too.
ReJuvin8 has both an automatic and a custom mode. In the
auto mode you make all the settings by pointing and
clicking. This will handle most applications.
The custom mode uses heartbeat synch files to get absolute
detection that key processes are working. Tools and
instructions are provided to help you do this. We also offer
customization as a contract service.
Charles
Get ReJuvin8 at: <a style='text-decoration: underline;' href="http://www.rejuvin8.net?ac=ch1" target="_blank">http://www.rejuvin8.net?ac=ch1</a>
"Olga" <anonymous.RemoveThis@discussions.microsoft.com> wrote in message
news:EBD4714E-8206-4513-90EE-F71FC228B8E2@microsoft.com...
> Our IIS, version 4.0, hangs from time to time and we are trying to find
the problem. When the IIS hangs the html pages function but the ASP pages
will not respond. In ASP code we have an ODBC connection to a Btrieve
database that is located on a remote server. I have attached the IISstate
log file for reference. I am having a hard time decoding the information in
the log file. Could anybody please help me understand where the problem is
from iisstate log file and how to decode the log file
>
> Thanks in advance
>
> Olg
>
> Opened log file 'C:\iisstate\output\IISState-191.log
>
> **********************
> Starting new log outpu
> IISState version 3.2
>
> Mon Nov 17 08:07:18 200
>
> OS = NT
> Executable: inetinfo.ex
> PID = 19
>
> Note: Thread times are formatted as HH:MM:SS.m
>
> **********************
>
>
> Thread ID:
> System Thread ID: 6
> Kernel Time: 0:0:0.
> User Time: 0:0:0.
> Thread Type: Other
> # ChildEBP RetAddr
> 00 0006fd44 77f0d291 ntdll!NtReadFile+0x
> 01 0006fdb0 77dd8a35 KERNEL32!ReadFile+0x1a
> 02 0006fde4 77dd8481 ADVAPI32!ScGetPipeInput+0x2
> 03 0006fe48 77dd829e ADVAPI32!ScDispatcherLoop+0x4
> 04 0006fe6c 0100182c ADVAPI32!StartServiceCtrlDispatcherA+0x8
> 05 0006fea4 010015d5 inetinfo!StartDispatchTable+0x6
> 06 0006ff70 01001e7f inetinfo!main+0x2a
> 07 0006ffc0 77f1bb7c inetinfo!mainCRTStartup+0xf
> 08 0006fff0 00000000 KERNEL32!BaseProcessStart+0x4
>
>
> Thread ID:
> System Thread ID: c
> Kernel Time: 0:0:0.4
> User Time: 0:0:0.12
> Thread Status: Thread is in a WAIT state.
> Thread Type: Other
> # ChildEBP RetAddr
> 00 0085fe2c 77f1cf95 ntdll!NtWaitForSingleObject+0x
> 01 0085fe54 77f04f44 KERNEL32!WaitForSingleObjectEx+0x7
> 02 0085fe64 683a18fe KERNEL32!WaitForSingleObject+0x
> 03 0085fe80 0100175d iisadmin!ServiceEntry+0x11
> 04 0085ffa8 77dd8c15 inetinfo!InetinfoStartService+0xf
> 05 0085ffb8 77f04eeb ADVAPI32!ScSvcctrlThreadA+0x
> 06 0085ffec 00000000 KERNEL32!BaseThreadStart+0x5
>
>
> Thread ID:
> System Thread ID: d
> Kernel Time: 0:0:0.7
> User Time: 0:0:0.4
> *** ERROR: Symbol file could not be found. Defaulted to export symbols
for INFOCOMM.dll -
> Thread Type: Other
> # ChildEBP RetAddr
> 00 00dffd28 77f1d15e ntdll!ZwWaitForMultipleObjects+0x
> 01 00dffd80 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xe
> 02 00dffddc 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x12
> 03 00dffdf8 685992a3 USER32!MsgWaitForMultipleObjects+0x1
> WARNING: Stack unwind information not available. Following frames may be
wrong
> 04 0023ea14 00000000 INFOCOMM!IIS_SERVICE::StartServiceOperation+0xd
>
>
> Thread ID:
> System Thread ID: d
> Kernel Time: 0:0:0.18
> User Time: 0:0:0.39
> *** ERROR: Symbol file could not be found. Defaulted to export symbols
for ISATQ.dll -
> Thread Type: HTTP Listener
> # ChildEBP RetAddr
> 00 00e3fe9c 77f1d15e ntdll!ZwWaitForMultipleObjects+0x
> 01 00e3fef4 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xe
> 02 00e3ff50 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x12
> 03 00e3ff6c 68624ab9 USER32!MsgWaitForMultipleObjects+0x1
> WARNING: Stack unwind information not available. Following frames may be
wrong
> 04 00000001 00000000 ISATQ!ScheduleAdjustTime+0x11
>
>
> Thread ID:
> System Thread ID: d
> Kernel Time: 0:0:0.18
> User Time: 0:0:0.16
> Thread Type: HTTP Listener
> # ChildEBP RetAddr
> 00 00e7fe9c 77f1d15e ntdll!ZwWaitForMultipleObjects+0x
> 01 00e7fef4 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xe
> 02 00e7ff50 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x12
> 03 00e7ff6c 68624ab9 USER32!MsgWaitForMultipleObjects+0x1
> WARNING: Stack unwind information not available. Following frames may be
wrong
> 04 00000001 00000000 ISATQ!ScheduleAdjustTime+0x11
>
>
> Thread ID:
> System Thread ID: d
> Kernel Time: 0:0:0.1
> User Time: 0:0:0.4
> Thread Type: HTTP Listener
> # ChildEBP RetAddr
> 00 00ebff54 77f0c2a0 ntdll!NtRemoveIoCompletion+0x
> 01 00ebff84 686272c6 KERNEL32!GetQueuedCompletionStatus+0x2
> WARNING: Stack unwind information not available. Following frames may be
wrong
> 02 00ebffb8 77f04eeb ISATQ!AtqBandwidthGetInfo+0x5e
> 03 00ebffec 00000000 KERNEL32!BaseThreadStart+0x5
>
>
> Thread ID:
> System Thread ID: d
> Kernel Time: 0:0:0.28
> User Time: 0:0:0.54
> Thread Type: HTTP Listener
> # ChildEBP RetAddr
> 00 00efff54 77f0c2a0 ntdll!NtRemoveIoCompletion+0xb
> 01 00efff84 686272c6 KERNEL32!GetQueuedCompletionStatus+0x27
> WARNING: Stack unwind information not available. Following frames may be
wrong.
> 02 00efffb8 77f04eeb ISATQ!AtqBandwidthGetInfo+0x5e6
> 03 00efffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 7
> System Thread ID: dd
> Kernel Time: 0:0:0.10
> User Time: 0:0:0.0
> Thread Type: Other
> # ChildEBP RetAddr
> 00 00f3ff30 77f1d15e ntdll!ZwWaitForMultipleObjects+0xb
> 01 00f3ff88 685a7e98 KERNEL32!WaitForMultipleObjectsEx+0xef
> WARNING: Stack unwind information not available. Following frames may be
wrong.
> 02 685b35a0 000b5830 INFOCOMM!TS_OPEN_FILE_INFO::MakeStrongETag+0x7eb
> 03 00096d78 685b35a0 0xb5830
> 04 00097588 00096d78 INFOCOMM!MB::GetMultisz+0x649c
> 05 00097d60 00097588 0x96d78
> 06 00098538 00097d60 0x97588
> 07 00098d10 00098538 0x97d60
> 08 000994e8 00098d10 0x98538
> 09 00099cc0 000994e8 0x98d10
> 0a 0009a498 00099cc0 0x994e8
> 0b 0009ac70 0009a498 0x99cc0
> 0c 0009b448 0009ac70 0x9a498
> 0d 0009ee58 0009b448 0x9ac70
> 0e 000b4018 0009ee58 0x9b448
> 0f 000b5038 000b4018 0x9ee58
> 10 000b5830 000b5038 0xb4018
> 11 685b35a0 000b5830 0xb5038
> 12 00096d78 685b35a0 0xb5830
> 13 00097588 00096d78 INFOCOMM!MB::GetMultisz+0x649c
> 14 00097d60 00097588 0x96d78
> 15 00098538 00097d60 0x97588
> 16 00098d10 00098538 0x97d60
> 17 000994e8 00098d10 0x98538
> 18 00099cc0 000994e8 0x98d10
> 19 0009a498 00099cc0 0x994e8
> 1a 0009ac70 0009a498 0x99cc0
> 1b 0009b448 0009ac70 0x9a498
> 1c 0009ee58 0009b448 0x9ac70
> 1d 000b4018 0009ee58 0x9b448
> 1e 000b5038 000b4018 0x9ee58
> 1f 000b5830 000b5038 0xb4018
> 20 685b35a0 000b5830 0xb5038
> 21 00096d78 685b35a0 0xb5830
> 22 00097588 00096d78 INFOCOMM!MB::GetMultisz+0x649c
> 23 00097d60 00097588 0x96d78
> 24 00098538 00097d60 0x97588
> 25 00098d10 00098538 0x97d60
> 26 000994e8 00098d10 0x98538
> 27 00099cc0 000994e8 0x98d10
> 28 0009a498 00099cc0 0x994e8
> 29 0009ac70 0009a498 0x99cc0
> 2a 0009b448 0009ac70 0x9a498
> 2b 0009ee58 0009b448 0x9ac70
> 2c 000b4018 0009ee58 0x9b448
> 2d 000b5038 000b4018 0x9ee58
> 2e 000b5830 000b5038 0xb4018
> 2f 685b35a0 000b5830 0xb5038
> 30 00096d78 685b35a0 0xb5830
> 31 00097588 00096d78 INFOCOMM!MB::GetMultisz+0x649c
>
>
>
>
> Thread ID: 8
> System Thread ID: de
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.0
> Thread Type: Possible ASP page. Possible DCOM activity
> Executing Page: *** ERROR: Symbol file could not be found. Defaulted to
export symbols for asp.dll -
> ASP.dll symbols not found. Unable to locate ASP page.
> Continuing with other analysis.
>
> No remote call being made
>
> # ChildEBP RetAddr
> 00 00f7fdec 77e17f96 ntdll!NtReplyWaitReceivePort+0xb
> 01 00f7ff90 77e17f38 RPCRT4!WMSG_ADDRESS::ReceiveLotsaCalls+0x5b
> 02 00f7ff94 77e17b56 RPCRT4!RecvLotsaCallsWrapper+0x9
> 03 00f7ffac 77e17c09 RPCRT4!BaseCachedThreadRoutine+0x22
> 04 00f7ffb8 77f04eeb RPCRT4!ThreadStartRoutine+0x17
> 05 00f7ffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 9
> System Thread ID: df
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.0
> Thread Status: Thread is in a WAIT state.
> Thread Type: Possible ASP page. Possible DCOM activity
> Executing Page: ASP.dll symbols not found. Unable to locate ASP page.
> Continuing with other analysis.
>
> No remote call being made
>
> # ChildEBP RetAddr
> 00 00fbfd20 776689ce ntdll!NtWaitForSingleObject+0xb
> 01 00fbfd78 77664a12 msafd!SockWaitForSingleObject+0x204
> 02 00fbfea0 776b9f5f msafd!WSPSelect+0x28e
> 03 00fbfef0 74fa21e2 WS2_32!select+0xfc
> 04 00fbff2c 77e20fae RpcLtScm!COMMON_ServerReceiveAny+0x2b8
> 05 00fbff60 77e1da44 RPCRT4!TRANS_ADDRESS::TransReceive+0x7c
> 06 00fbff90 77e1f495 RPCRT4!OSF_ADDRESS::ReceiveLotsaCalls+0x1e
> 07 00fbff94 77e17b56 RPCRT4!ReceiveLotsaCallsWrapper+0x9
> 08 00fbffac 77e17c09 RPCRT4!BaseCachedThreadRoutine+0x22
> 09 00fbffb8 77f04eeb RPCRT4!ThreadStartRoutine+0x17
> 0a 00fbffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 10
> System Thread ID: e0
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.0
> Thread Type: Possible ASP page. Possible DCOM activity
> Executing Page: ASP.dll symbols not found. Unable to locate ASP page.
> Continuing with other analysis.
>
> No remote call being made
>
> # ChildEBP RetAddr
> 00 0104fee8 77e01318 ntdll!ZwWaitForMultipleObjects+0xb
> 01 0104ff2c 77e20fae rpclts1!ServerReceiveAny+0xf7
> 02 0104ff60 77e1da44 RPCRT4!TRANS_ADDRESS::TransReceive+0x7c
> 03 0104ff90 77e1f495 RPCRT4!OSF_ADDRESS::ReceiveLotsaCalls+0x1e
> 04 0104ff94 77e17b56 RPCRT4!ReceiveLotsaCallsWrapper+0x9
> 05 0104ffac 77e17c09 RPCRT4!BaseCachedThreadRoutine+0x22
> 06 0104ffb8 77f04eeb RPCRT4!ThreadStartRoutine+0x17
> 07 0104ffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 11
> System Thread ID: e1
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.10
> *** ERROR: Symbol file could not be found. Defaulted to export symbols
for w3svc.dll -
> *** ERROR: Symbol file could not be found. Defaulted to export symbols
for MSVCRT.dll -
> Thread Type: Other
> # ChildEBP RetAddr
> 00 0108fe70 77f1d15e ntdll!ZwWaitForMultipleObjects+0xb
> 01 0108fec8 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xef
> 02 0108ff24 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x127
> 03 0108ff40 68c22d44 USER32!MsgWaitForMultipleObjects+0x1d
> WARNING: Stack unwind information not available. Following frames may be
wrong.
> 04 0108ff84 780099ed w3svc!HTTP_HEADERS::Cleanup+0x2f55
> 05 0108ffb8 77f04eeb MSVCRT!beginthread+0xdd
> 06 0108ffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 12
> System Thread ID: e2
> Kernel Time: 0:0:0.10
> User Time: 0:0:0.0
> Thread Type: Other
> # ChildEBP RetAddr
> 00 010cfea8 77f1d15e ntdll!ZwWaitForMultipleObjects+0xb
> 01 010cff00 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xef
> 02 010cff5c 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x127
> 03 010cff78 68c1acea USER32!MsgWaitForMultipleObjects+0x1d
> WARNING: Stack unwind information not available. Following frames may be
wrong.
> 04 010cffb8 77f04eeb w3svc!ServiceEntry+0x6d7
> 05 010cffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 13
> System Thread ID: e3
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.0
> Thread Type: Other
> # ChildEBP RetAddr
> 00 0110ff44 77f1d1e8 ntdll!NtDelayExecution+0xb
> 01 0110ff64 77f1d1b1 KERNEL32!SleepEx+0x34
> 02 0110ff70 7583a68a KERNEL32!Sleep+0xb
> 03 0110ffb8 77f04eeb nwprovau!SapFunc+0x2c
> 04 0110ffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 14
> System Thread ID: e6
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.0
> Thread Status: Thread is in a WAIT state.
> Thread Type: Other
> # ChildEBP RetAddr
> 00 0114fca0 776689ce ntdll!NtWaitForSingleObject+0xb
> 01 0114fcf8 77664a12 msafd!SockWaitForSingleObject+0x204
> 02 0114fe20 776b9f5f msafd!WSPSelect+0x28e
> 03 0114fe70 68563c07 WS2_32!select+0xfc
> 04 0114ffb8 77f04eeb inetsloc!SocketListenThread+0x51
> 05 0114ffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 15
> System Thread ID: 4f
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.0
> Thread Status: Thread is in a WAIT state.
> Thread Type: Other
> # ChildEBP RetAddr
> 00 01c5ff58 77f1cf95 ntdll!NtWaitForSingleObject+0xb
> 01 01c5ff80 77f04f44 KERNEL32!WaitForSingleObjectEx+0x73
> 02 01c5ff90 69a21998 KERNEL32!WaitForSingleObject+0xf
> 03 01c5ffb8 77f04eeb MtxDm!PingThread+0x98
> 04 01c5ffc4 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 16
> System Thread ID: e4
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.0
> Thread Type: ASP
> Executing Page: ASP.dll symbols not found. Unable to locate ASP page.
> Continuing with other analysis.
>
> # ChildEBP RetAddr
> 00 01ccfe70 77f1d15e ntdll!ZwWaitForMultipleObjects+0xb
> 01 01ccfec8 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xef
> 02 01ccff24 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x127
> 03 01ccff40 680c5fa5 USER32!MsgWaitForMultipleObjects+0x1d
> WARNING: Stack unwind information not available. Following frames may be
wrong.
> 04 01ccff84 780099ed asp!AspStatusHtmlDump+0x276d
> 05 01ccffb8 77f04eeb MSVCRT!beginthread+0xdd
> 06 01ccffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 17
> System Thread ID: 106
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.0
> Thread Type: ASP
> Executing Page: ASP.dll symbols not found. Unable to locate ASP page.
> Continuing with other analysis.
>
> # ChildEBP RetAddr
> 00 01d0fe70 77f1d15e ntdll!ZwWaitForMultipleObjects+0xb
> 01 01d0fec8 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xef
> 02 01d0ff24 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x127
> 03 01d0ff40 680bbf64 USER32!MsgWaitForMultipleObjects+0x1d
> WARNING: Stack unwind information not available. Following frames may be
wrong.
> 04 01d0ff84 780099ed asp!DllCanUnloadNow+0x2ff0
> 05 01d0ffb8 77f04eeb MSVCRT!beginthread+0xdd
> 06 01d0ffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 18
> System Thread ID: 53
> Kernel Time: 0:0:0.10
> User Time: 0:0:0.0
> *** WARNING: Unable to verify checksum for pdm.dll
> *** ERROR: Symbol file could not be found. Defaulted to export symbols
for pdm.dll -
> Thread Type: PDM (Debugger) Thread.
> # ChildEBP RetAddr
> 00 01d4fdd8 77f1d15e ntdll!ZwWaitForMultipleObjects+0xb
> 01 01d4fe30 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xef
> 02 01d4fe8c 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x127
> 03 01d4fea8 4a003b19 USER32!MsgWaitForMultipleObjects+0x1d
> WARNING: Stack unwind information not available. Following frames may be
wrong.
> 04 77e7ae75 0110247c pdm+0x3b19
> 05 83ec8b55 00000000 0x110247c
>
>
>
>
> Thread ID: 19
> System Thread ID: f1
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.10
> Thread Type: Other
> # ChildEBP RetAddr
> 00 01dafe5c 77f1d15e ntdll!ZwWaitForMultipleObjects+0xb
> 01 01dafeb4 77e7ae4d KERNEL32!WaitForMultipleObjectsEx+0xef
> 02 01daff10 77e7ae92 USER32!MsgWaitForMultipleObjectsEx+0x127
> 03 01daff2c 697f1dbe USER32!MsgWaitForMultipleObjects+0x1d
> 04 01daff78 697f22d2 mtxex!CViperThread::MainLoop+0x60
> 05 01daff84 780099ed mtxex!CViperThreadMainProc+0x12
> WARNING: Stack unwind information not available. Following frames may be
wrong.
> 06 01daff90 77b3067a MSVCRT!beginthread+0xdd
> 07 01daffb8 77f04eeb ole32!WriteObjRef+0x5f
> 08 01daffcc 77b3067a KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 20
> System Thread ID: 10c
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.10
> Thread Type: Possible ASP page. Possible DCOM activity
> Executing Page: ASP.dll symbols not found. Unable to locate ASP page.
> Continuing with other analysis.
>
> No remote call being made
>
> # ChildEBP RetAddr
> 00 05affdec 77e17f96 ntdll!NtReplyWaitReceivePort+0xb
> 01 05afff90 77e17f38 RPCRT4!WMSG_ADDRESS::ReceiveLotsaCalls+0x5b
> 02 05afff94 77e17b56 RPCRT4!RecvLotsaCallsWrapper+0x9
> 03 05afffac 77e17c09 RPCRT4!BaseCachedThreadRoutine+0x22
> 04 05afffb8 77f04eeb RPCRT4!ThreadStartRoutine+0x17
> 05 05afffec 00000000 KERNEL32!BaseThreadStart+0x51
>
>
>
>
> Thread ID: 21
> System Thread ID: 119
> Kernel Time: 0:0:0.0
> User Time: 0:0:0.10
> Thread Type: Possible ASP page. Possible DCOM activity
> Executing Page: ASP.dll symbols not found. Unable to locate ASP page.
> Continuing with other analysis.
>
> No remote call being made
>
> # ChildEBP RetAddr
> 00 05bbfdec 77e17f96 ntdll!NtReplyWaitReceivePort+0xb
> 01 05bbff90 77e17f38 RPCRT4!WMSG_ADDRESS::ReceiveLotsaCalls+0x5b
> 02 05bbff94 77e17b56 RPCRT4!RecvLotsaCallsWrapper+0x9
> 03 05bbffac 77e17c09 RPCRT4!BaseCachedThreadRoutine+0x22
> 04 05bbffb8 77f04eeb RPCRT4!ThreadStartRoutine+0x17
> 05 05bbffec 00000000 KERNEL32!BaseThreadStart+0x51
>
> *****
>
> Dump name is formatted as: PID-Timestamp.dmp
>
> Creating C:\iisstate\output\191-1069078045.dmp - mini user dump
>
> *****
>
> Closing open log file C:\iisstate\output\IISState-191.log
><!-- ~MESSAGE_AFTER~ -->
>> Stay informed about: IIS 4.0 hangs - need help with iisstate log file