- VERSION 4.11.30

- Se quitaron librerias y permisos que no se usaban.
- Se agregó la opción de monitorear mas de un servidor.
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-12-01 02:28:38 -06:00
parent 4fe5dbd25a
commit 80d6ded85e
8 changed files with 243 additions and 80 deletions

View File

@@ -26,6 +26,7 @@ Sub Process_Globals
Dim DBOk As Boolean = True
Dim logger As Boolean = True
Dim timeout As Int
Dim cs As CSBuilder
End Sub
Sub Service_Create
@@ -46,7 +47,6 @@ Sub Service_Start (StartingIntent As Intent)
Service.StopAutomaticForeground 'Call this when the background task completes (if there is one)
Service.StartForeground(nid, s.CreateNotification("..."))
StartServiceAt(Me, DateTime.Now + 10 * DateTime.TicksPerMinute, True)
reqManager.Initialize(Me, Starter.DBReqServer)
Timer1_Tick
If logger Then LogColor("*************** Monitor Iniciado 👍🏽 **********", Colors.red)
End Sub
@@ -66,12 +66,14 @@ Sub Timer1_Tick
End Sub
Sub probamosConexion
If logger Then Log("probamos probamosConexion")
If logger Then Log("###################### "& CRLF& " probamos probamosConexion"& CRLF& " ############")
B4XPages.MainPage.lv_servidores.Clear
B4XPages.MainPage.lv_dbs.Clear
If B4XPages.IsInitialized Then
B4XPages.MainPage.cb_conexion.Checked = False
B4XPages.MainPage.cb_internet.Checked = False
B4XPages.MainPage.cb_dbreqserver.Checked = False
B4XPages.MainPage.cb_db.Checked = False
' B4XPages.MainPage.cb_dbreqserver.Checked = False
' B4XPages.MainPage.cb_db.Checked = False
End If
If IsConnectedToInternet Then
s.ping
@@ -88,9 +90,28 @@ Sub probamosConexion
s.notiLowReturn("Hay conexion a internet ✅️", "Revisando servidor ...", nid)
If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = "Hay conexion a internet!!"
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_conexion"
reqManager.ExecuteQuery(cmd, 0, "select_conexion", timeout)
For i = 0 To B4XPages.MainPage.servidores.Size - 1
Private esteServidor As Map = B4XPages.MainPage.servidores.Get(i).As(Map)
Log(esteServidor.Get("servidor"))
reqManager.Initialize(Me, esteServidor.Get("servidor"))
cmd.Initialize
cmd.Name = "select_conexion"
reqManager.ExecuteQuery(cmd, 0, "select_conexion_" & i, esteServidor.get("timeout"))
Next
Private sa As Cursor = Starter.skmt.ExecQuery("select * from cat_servidores")
If sa.RowCount > 0 Then
For i = 0 To sa.RowCount - 1
sa.Position = i
reqManager.Initialize(Me, sa.GetString("url"))
cmd.Initialize
cmd.Name = "select_conexion"
reqManager.ExecuteQuery(cmd, 0, "select_conexion_" & sa.GetString("id"), sa.GetString("timeout"))
Next
End If
'Reiniciamos el timer para cuando llamamos el Sub desde "seleccion"
Timer1.Enabled = False
Timer1.Interval = Interval * 1000
@@ -117,8 +138,18 @@ Sub JobDone(Job As HttpJob)
cd1.Initialize(Colors.Red, 10dip)
If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Background = cd1
If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Text = "DBReqServer KO"
s.notiHigh("ERROR ❌", $"El servidor ${Starter.DBReqServer} NO responde!!"$, nid, Main)
Log("Guardamos error en BD")
If Job.Tag.As(String).StartsWith("select_conexion_") Then
Private idServidorX() As String = Regex.Split("_", Job.Tag)
' Log("|" & idServidorX(2) & "|")
Private idServidor As String = idServidorX(2)
Private m As Map = s.traeServidorDesdeBD(idServidor)
s.notiHigh("ERROR ❌", $"El servidor ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
cs.Initialize
B4XPages.MainPage.lv_servidores.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll)
' B4XPages.MainPage.lv_servidores.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$)
End If
Starter.skmt.ExecNonQuery($"insert into error_log(error, fecha) values ('El servidor ${Starter.DBReqServer} NO responde!!', '${s.fechaKMT(DateTime.Now)}')"$)
If Job.ErrorMessage.Contains("failed to connect") Or Job.ErrorMessage.Contains("Failed to connect") Then
' ToastMessageShow("¡Hubo un error contactando al servidor, por favor revise su conexión!", True)
@@ -128,8 +159,13 @@ Sub JobDone(Job As HttpJob)
If logger Then LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag = "select_conexion" Then
If resultado.Tag.As(String).StartsWith("select_conexion_") Then
Log("select_conexion")
Private idServidorX() As String = Regex.Split("_", resultado.Tag)
Private idServidor As String = idServidorX(2)
Private m As Map = s.traeServidorDesdeBD(idServidor)
B4XPages.MainPage.lbl.TextColor = Colors.black
B4XPages.MainPage.lv_servidores.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - OK"$)
For Each records() As Object In resultado.Rows
Private valor As String = records(resultado.Columns.Get("VALOR"))
If valor = "OK" Then
@@ -137,16 +173,22 @@ Sub JobDone(Job As HttpJob)
s.notiLowReturn($"El servidor esta respondiendo ✅"$, "Servidor OK ✅", nid)
If B4XPages.IsInitialized Then
B4XPages.MainPage.l_status.Text = "El servidor esta respondiendo!!"
B4XPages.MainPage.lv_dbs.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - OK"$)
Dim cd1 As ColorDrawable
cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
B4XPages.MainPage.b_ping.Background = cd1
B4XPages.MainPage.b_ping.Text = "Servidor Ok"
End If
Else
s.notiHigh("ERROR ❌", $"El servidor NO esta respondiendo!!"$, nid, Main)
s.notiHigh("ERROR ❌", $"La base de datos ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
If B4XPages.IsInitialized Then
B4XPages.MainPage.l_status.Text = "El servidor NO esta respondiendo!!"
B4XPages.MainPage.l_status.Text = "La base de datos NO esta respondiendo!!"
Log("Guardamos error en BD")
' B4XPages.MainPage.lbl.TextColor = Colors.red
' Sleep(200)
cs.Initialize
B4XPages.MainPage.lv_dbs.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll)
' B4XPages.MainPage.lv_dbs.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$)
Starter.skmt.ExecNonQuery($"insert into error_log(error, fecha) values ('La BD NO esta respondiendo!!', '${s.fechaKMT(DateTime.Now)}')"$)
Dim cd1 As ColorDrawable
cd1.Initialize(Colors.Red, 10dip)
@@ -164,8 +206,8 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.cb_conexion.Checked = InternetOk
B4XPages.MainPage.cb_internet.Checked = Starter.ping
If DBReqServerOk Then B4XPages.MainPage.cb_internet.Checked = True
B4XPages.MainPage.cb_dbreqserver.Checked = DBReqServerOk
B4XPages.MainPage.cb_db.Checked = DBOk
' B4XPages.MainPage.cb_dbreqserver.Checked = DBReqServerOk
' B4XPages.MainPage.cb_db.Checked = DBOk
End If
Job.Release
End If