public void SetAll(DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { this._StartTime = startTime; this._Age = age; this._ProcessID = processID; this._RequestCount = requestCount; this._Status = status; this._ShutdownReason = shutdownReason; this._PeakMemoryUsed = peakMemoryUsed; }
public ProcessInfo(DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { this.age = age; this.peakMemoryUsed = peakMemoryUsed; this.processID = processID; this.requestCount = requestCount; this.shutdownReason = shutdownReason; this.startTime = startTime; this.status = status; }
public ProcessInfo (DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { this.age = age; this.peakMemoryUsed = peakMemoryUsed; this.processID = processID; this.requestCount = requestCount; this.shutdownReason = shutdownReason; this.startTime = startTime; this.status = status; }
/// <devdoc> /// <para>Initializes a new instance of the <see langword='ProcessInfo'/> class and sets internal information /// indicating the status of the process.</para> /// </devdoc> public ProcessInfo(DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { _StartTime = startTime; _Age = age; _ProcessID = processID; _RequestCount = requestCount; _Status = status; _ShutdownReason = shutdownReason; _PeakMemoryUsed = peakMemoryUsed; }
public static ProcessInfo GetCurrentProcessInfo() { DateTime startTime = DateTime.Now; TimeSpan age = TimeSpan.Zero; int processID = 0; int requestCount = 0; ProcessStatus status = ProcessStatus.Terminated; ProcessShutdownReason shutdownReason = ProcessShutdownReason.None; int peakMemoryUsed = 0; return(new ProcessInfo(startTime, age, processID, requestCount, status, shutdownReason, peakMemoryUsed)); }
// Methods public void SetAll(System.DateTime startTime, System.TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) {}
// Constructors public ProcessInfo(System.DateTime startTime, System.TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { }
/// <devdoc> /// <para>Initializes a new instance of the <see langword='ProcessInfo'/> class and sets internal information /// indicating the status of the process.</para> /// </devdoc> public ProcessInfo (DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { _StartTime = startTime; _Age = age; _ProcessID = processID; _RequestCount = requestCount; _Status = status; _ShutdownReason = shutdownReason; _PeakMemoryUsed = peakMemoryUsed; }
public ProcessInfo(DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { }
public static ProcessInfo[] GetHistory(int numRecords) { HttpContext current = HttpContext.Current; if (((current == null) || (current.WorkerRequest == null)) || !(current.WorkerRequest is ISAPIWorkerRequestOutOfProc)) { throw new HttpException(System.Web.SR.GetString("Process_information_not_available")); } if (numRecords < 1) { return(null); } int[] dwPIDArr = new int[numRecords]; int[] dwReqExecuted = new int[numRecords]; int[] dwReqExecuting = new int[numRecords]; int[] dwReqPending = new int[numRecords]; int[] dwReasonForDeath = new int[numRecords]; long[] tmCreateTime = new long[numRecords]; long[] tmDeathTime = new long[numRecords]; int[] dwPeakMemoryUsed = new int[numRecords]; int num = System.Web.UnsafeNativeMethods.PMGetHistoryTable(numRecords, dwPIDArr, dwReqExecuted, dwReqPending, dwReqExecuting, dwReasonForDeath, dwPeakMemoryUsed, tmCreateTime, tmDeathTime); if (num < 0) { throw new HttpException(System.Web.SR.GetString("Process_information_not_available")); } ProcessInfo[] infoArray = new ProcessInfo[num]; for (int i = 0; i < num; i++) { DateTime time = DateTime.FromFileTime(tmCreateTime[i]); TimeSpan age = DateTime.Now.Subtract(time); ProcessStatus alive = ProcessStatus.Alive; ProcessShutdownReason none = ProcessShutdownReason.None; if (dwReasonForDeath[i] != 0) { if (tmDeathTime[i] > 0L) { age = DateTime.FromFileTime(tmDeathTime[i]).Subtract(time); } if ((dwReasonForDeath[i] & 4) != 0) { alive = ProcessStatus.Terminated; } else if ((dwReasonForDeath[i] & 2) != 0) { alive = ProcessStatus.ShutDown; } else { alive = ProcessStatus.ShuttingDown; } if ((0x40 & dwReasonForDeath[i]) != 0) { none = ProcessShutdownReason.IdleTimeout; } else if ((0x80 & dwReasonForDeath[i]) != 0) { none = ProcessShutdownReason.RequestsLimit; } else if ((0x100 & dwReasonForDeath[i]) != 0) { none = ProcessShutdownReason.RequestQueueLimit; } else if ((0x20 & dwReasonForDeath[i]) != 0) { none = ProcessShutdownReason.Timeout; } else if ((0x200 & dwReasonForDeath[i]) != 0) { none = ProcessShutdownReason.MemoryLimitExceeded; } else if ((0x400 & dwReasonForDeath[i]) != 0) { none = ProcessShutdownReason.PingFailed; } else if ((0x800 & dwReasonForDeath[i]) != 0) { none = ProcessShutdownReason.DeadlockSuspected; } else { none = ProcessShutdownReason.Unexpected; } } infoArray[i] = new ProcessInfo(time, age, dwPIDArr[i], dwReqExecuted[i], alive, none, dwPeakMemoryUsed[i]); } return(infoArray); }
static public ProcessInfo[] GetHistory(int numRecords) { HttpContext context = HttpContext.Current; if (context == null || context.WorkerRequest == null || !(context.WorkerRequest is System.Web.Hosting.ISAPIWorkerRequestOutOfProc)) { throw new HttpException(SR.GetString(SR.Process_information_not_available)); } if (numRecords < 1) { return(null); } int [] dwPID = new int [numRecords]; int [] dwExed = new int [numRecords]; int [] dwExei = new int [numRecords]; int [] dwPend = new int [numRecords]; int [] dwReas = new int [numRecords]; long [] tmCrea = new long [numRecords]; long [] tmDeat = new long [numRecords]; int [] mem = new int [numRecords]; int iRows = UnsafeNativeMethods.PMGetHistoryTable(numRecords, dwPID, dwExed, dwPend, dwExei, dwReas, mem, tmCrea, tmDeat); if (iRows < 0) { throw new HttpException(SR.GetString(SR.Process_information_not_available)); } ProcessInfo[] ret = new ProcessInfo[iRows]; for (int iter = 0; iter < iRows; iter++) { DateTime startTime = DateTime.FromFileTime(tmCrea[iter]); TimeSpan age = DateTime.Now.Subtract(startTime); ProcessStatus status = ProcessStatus.Alive; ProcessShutdownReason rea = ProcessShutdownReason.None; if (dwReas[iter] != 0) { if (tmDeat[iter] > 0) { age = DateTime.FromFileTime(tmDeat[iter]).Subtract(startTime); } if ((dwReas[iter] & 0x0004) != 0) { status = ProcessStatus.Terminated; } else if ((dwReas[iter] & 0x0002) != 0) { status = ProcessStatus.ShutDown; } else { status = ProcessStatus.ShuttingDown; } if ((0x0040 & dwReas[iter]) != 0) { rea = ProcessShutdownReason.IdleTimeout; } else if ((0x0080 & dwReas[iter]) != 0) { rea = ProcessShutdownReason.RequestsLimit; } else if ((0x0100 & dwReas[iter]) != 0) { rea = ProcessShutdownReason.RequestQueueLimit; } else if ((0x0020 & dwReas[iter]) != 0) { rea = ProcessShutdownReason.Timeout; } else if ((0x0200 & dwReas[iter]) != 0) { rea = ProcessShutdownReason.MemoryLimitExceeded; } else if ((0x0400 & dwReas[iter]) != 0) { rea = ProcessShutdownReason.PingFailed; } else if ((0x0800 & dwReas[iter]) != 0) { rea = ProcessShutdownReason.DeadlockSuspected; } else { rea = ProcessShutdownReason.Unexpected; } } ret[iter] = new ProcessInfo(startTime, age, dwPID[iter], dwExed[iter], status, rea, mem[iter]); } return(ret); }
public void SetAll(DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { }