หน้าเว็บ

วันอังคารที่ 13 มกราคม พ.ศ. 2558

ถ้าTWXLogหยุดทำงานนานเกินระยะเวลาให้Restartอัตโนมัติ

ตัวอย่างโค้ดสั่งRestart TWXLog Serviceอัตโนมัติถ้าหยุดทำงานนานกว่าระยะเวลาที่กำหนด
ขั้นตอนการสร้างโค้ด
1. เปิด GraphWorX ขึ้นมาในโหมดConfigure
วางTimer 2 ตัวและ TextBox 2 ตัวลงไป
image
2. กดปุ่ม Atl+F11เพื่อเข้าหน้าVBA Editor แล้วคัดลอกโค้ดต่อไปนี้ลงไปในโมดูลThisDisplay

Public Conn As ADODB.Connection, rn As Integer
Private Sub AxTimer1_Timer()
Dim mn As Long


Dim Statement2 As String
Dim rs As ADODB.Recordset
Dim tableName As String

Call StartConn

'----------------------------------------------------------------------------------


    Set rs = New ADODB.Recordset
    Statement2 = "SELECT Top 1 [Table_Name] FROM [MyLog].[dbo].[LG1_Info] Order by [Table_End_Time] DESC"
  
    ThisDisplay.TextBox2.text = Statement2
    
    With rs
    
        .CursorLocation = adUseClient
        .ActiveConnection = Conn
        .LockType = adLockBatchOptimistic
        .Open Statement2
        
    End With

    Do While Not rs.EOF
        
        tableName = rs(0)
        rs.MoveNext
        
    Loop
    
    rs.Close
    
    Statement2 = "SELECT top 1 DATEDIFF(mi,[Latest_TDate],getdate()) FROM [" & tableName & "] order by [Latest_TDate] DESC"
    With rs
        .Open Statement2
        
    End With

    Do While Not rs.EOF
        
        mn = rs(0)
        rs.MoveNext
        
    Loop
    

Set rs = Nothing

TextBox1.text = mn

Call CloseConn


If mn > 10 Then
    Shell "net stop TWXLOG32"
    AxTimer2.Enabled = True
End If
End Sub


Public Sub StartConn()

Set Conn = New ADODB.Connection
Conn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=MyLog;Data Source=(local)\sqlexpress2"

Conn.Open

End Sub

Public Sub CloseConn()

Conn.Close
Set Conn = Nothing

End Sub

Private Sub AxTimer2_Timer()
Shell "net start TWXLOG32"
AxTimer2.Enabled = False
End Sub



3. Replace คำว่า MyLog กับชื่อDatabaseที่ใช้งานจริง (Replace All)

image


Replace คำว่า LG1_ กับชื่อตารางจริงที่ใช้เก็บข้อมูลของTWXLog

image



แก้ชื่อSQL Server Instance ให้ตรงกับที่ใช้งานจริง

image



4. อ้างอิง ADO Object

image

การทดสอบ


ทดสอบหยุดการทำงานของ TWXLog แล้วรันไฟล์gdfนี้ เมื่อเวลาผ่านไป 10 นาทีแล้ว TWXLogยังไม่ทำงาน โปรแกรมจะRestart TWXLogให้ทำงาน

ถ้าต้องการปรับเวลาให้ปรับที่บรรทัด

If mn > 10 Then





ถ้าต้องการให้เริ่มทำงานแบบMinimizeให้กำหดStart MinimizeในDisplay Property ที่แท็ปWindow และปรับขนาดหน้าให้เหมาะสม

image

หมายเหตุ:
บทความนี้เขียนขึ้นเพื่อการประยุกต์ใช้งาน
ทดสอบและเขียนโดย สุทธิพงษ์ เสนาถี

ไม่มีความคิดเห็น:

แสดงความคิดเห็น