Menampilkan Informasi Proses pada Server ~ .:: Koding::..

11.2.07

Menampilkan Informasi Proses pada Server

Salah satu kelebihan dari ASP.Net disbandingkan ASP klasik, (menurut saya) adalah pada masalah capability tentang penanganan error handling. Pada ASP.Net dapat melakukan restart otomatis pada IIS jika terjadi error, sedangkan pada ASP klasik para administrator harus merestart web server manual, entah itu karena error atau dikarenakan untuk merefresh semua proses request pada web server yang menyebabkan web server menjadi lambat.
Kelebihan lain dari sisi programmer, adalah programmer dapat menyeting dan mengetahui kondisi website yang sedang berjalan, baik kapan website tersebut uptime, memori yang digunakan dll. Informasi seperti ini mungkin sedikit tidak terlalu diperhitungkan oleh para web programmer, ya mungkin karena website yang dikerjakan dikarenakan hostingan web sitenya pada server orang lain. Tetapi untuk para developer informasi ini sangat diperlukan oleh karena dengan informasi tersebut sang web master dapat mempertanggung jawabkan kenapa website tersebut down, atau restart, atau sebagai laporan kapan website itu up, jumlah konsumsi memori dll.
Lanjut lagi :D, untuk mendapatkan informasi ini kita dapat mengetahui melalui xspwp.exe. xspwp.exe merupakan program yang mengatur pemanggilan halaman ASP.Net, pada ASP klasik mungkin lebih dikenal dengan asp.dll. Untuk dapat mengetahui proses yang berjalan tersebut, pada ASP.Net dapat menggunakan dua buah Class yakni ProcessInfo dan ProcessModelInfo. Skript lengkapnya sebagai berikut


HTML Kode:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="ProcesInfo.aspx.vb" Inherits="ProcesInfor" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table border="0" cellspacing="0" cellpadding="5">
<tr>
<td>
Status View :<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="1">Now</asp:ListItem>
<asp:ListItem Value="2">2 History</asp:ListItem>
<asp:ListItem Value="3">3 History</asp:ListItem>
<asp:ListItem Value="4">4 History</asp:ListItem>
<asp:ListItem Value="5">5 History</asp:ListItem>
<asp:ListItem Value="6">6 History</asp:ListItem>
<asp:ListItem Value="7">7 History</asp:ListItem>
<asp:ListItem Value="8">8 History</asp:ListItem>
</asp:DropDownList><hr/></td>
<td>
<asp:Button ID="btnView" runat="server" Text="View" Width="80px" /></td>
</tr>
<tr>
<td colspan="2">
<asp:Label runat="server" ID="lblInfo" /></td>
</tr>

</table>
</div>
</form>
</body>
</html>

VB Code:

Partial Class ProcesInfor
Inherits System.Web.UI.Page

Protected Sub View(ByVal count As String)
Dim aProcInfos() As ProcessInfo = ProcessModelInfo.GetHistory(count)
Dim objProcInfo As ProcessInfo
For Each objProcInfo In aProcInfos
Dim temp As String = ""
Select Case objProcInfo.Status
Case ProcessStatus.Alive
temp = "Alive"
Case ProcessStatus.ShutDown
temp = "Shut down"
Case ProcessStatus.ShuttingDown
temp = "Currently shutting down"
Case ProcessStatus.Terminated
temp = "Terminated"
End Select
lblInfo.Text &= "" & _
"<b>Process ID:" & objProcInfo.ProcessID & "</b><br/><p>" & _
"<li>Started At: " & objProcInfo.StartTime & "</li><br>" & _
"<li>Shutdown Time: " & objProcInfo.ShutdownReason & "</li><br>" & _
"<li>Shutdown Reason: " & DisplayReason(objProcInfo.ShutdownReason) & "</li><br>" & _
"<li>Age : " & String.Format(objProcInfo.Age.TotalHours, "#.##") & " Hours" & "</li><br>" & _
"<li>Status : " & temp & "</li><br>" & _
"<li>Request Count : " & objProcInfo.RequestCount & "</li><br>" & _
"<li>Peak Memory: " & objProcInfo.PeakMemoryUsed & _
"</li><p/><hr/>"
Next
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
View(DropDownList1.SelectedValue)
End If

End Sub

Protected Function DisplayReason(ByVal enumReason As ProcessShutdownReason) As String
Dim out As String = ""
Select Case enumReason
Case ProcessShutdownReason.IdleTimeout
out = "Idle Timeout"
Case ProcessShutdownReason.MemoryLimitExceeded
out = "Memory Limit Exceeded"
Case ProcessShutdownReason.None
out = "None"
Case ProcessShutdownReason.RequestQueueLimit
out = "Request Queue Limit"
Case ProcessShutdownReason.RequestsLimit
out = "Requests Limit"
Case ProcessShutdownReason.Timeout
out = "Timeout"
Case ProcessShutdownReason.Unexpected
out = "Unknown"
End Select
Return out
End Function

Protected Sub btnView_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnView.Click
View(DropDownList1.SelectedValue)
End Sub
End Class

Gambar:



No comments: