mirror of
https://github.com/KeymonSoft/Monitor-Keymon.git
synced 2026-04-17 21:06:19 +00:00
- VERSION 4.12.11
- Se volvio a incluir la libreria de intercepcion de notificaciones (ReplyAuto) para ayudar a mantener activa la aplicacion. - Su gregaron bloques de try/catch para evitar que se generen errores cuando los servicios modifican la pantalla principal (mainpage) y la aplicacion esta en segundo plano.
This commit is contained in:
205
B4A/monitor.bas
205
B4A/monitor.bas
@@ -68,61 +68,61 @@ End Sub
|
||||
|
||||
Sub probamosConexion
|
||||
If logger Then Log("###################### "& CRLF& " probamos probamosConexion"& CRLF& " ############")
|
||||
If B4XPages.IsInitialized Then
|
||||
B4XPages.MainPage.lv_servidores.Clear
|
||||
B4XPages.MainPage.lv_dbs.Clear
|
||||
B4XPages.MainPage.cb_conexion.Checked = False
|
||||
B4XPages.MainPage.cb_internet.Checked = False
|
||||
Try
|
||||
If B4XPages.IsInitialized Then
|
||||
B4XPages.MainPage.lv_servidores.Clear
|
||||
B4XPages.MainPage.lv_dbs.Clear
|
||||
B4XPages.MainPage.cb_conexion.Checked = False
|
||||
B4XPages.MainPage.cb_internet.Checked = False
|
||||
' B4XPages.MainPage.cb_dbreqserver.Checked = False
|
||||
' B4XPages.MainPage.cb_db.Checked = False
|
||||
End If
|
||||
If IsConnectedToInternet Then
|
||||
s.ping
|
||||
InternetOk = True
|
||||
If B4XPages.IsInitialized Then
|
||||
B4XPages.MainPage.cb_conexion.Checked = True
|
||||
B4XPages.MainPage.cb_internet.Checked = Starter.ping
|
||||
Dim cd1 As ColorDrawable
|
||||
cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
|
||||
B4XPages.MainPage.b_ping.Background = cd1
|
||||
B4XPages.MainPage.b_ping.Text = "Internet Ok"
|
||||
End If
|
||||
Dim cmd As DBCommand
|
||||
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
|
||||
For i = 0 To Starter.servidores.Size - 1
|
||||
Private esteServidor As Map = Starter.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"))
|
||||
If IsConnectedToInternet Then
|
||||
s.ping
|
||||
InternetOk = True
|
||||
If B4XPages.IsInitialized Then
|
||||
B4XPages.MainPage.cb_conexion.Checked = True
|
||||
B4XPages.MainPage.cb_internet.Checked = Starter.ping
|
||||
Dim cd1 As ColorDrawable
|
||||
cd1.Initialize(Colors.RGB(16, 141, 0), 10dip)
|
||||
B4XPages.MainPage.b_ping.Background = cd1
|
||||
B4XPages.MainPage.b_ping.Text = "Internet Ok"
|
||||
End If
|
||||
Dim cmd As DBCommand
|
||||
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
|
||||
For i = 0 To Starter.servidores.Size - 1
|
||||
Private esteServidor As Map = Starter.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_" & sa.GetString("id"), sa.GetString("timeout"))
|
||||
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
|
||||
Timer1.Enabled = True
|
||||
Else
|
||||
If logger Then Log("Sin conexión a internet!!!")
|
||||
s.notiLowReturn("SIN INTERNET ❌", "NO hay conexion a internet.", nid)
|
||||
cs.Initialize
|
||||
If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = cs.Color(Colors.red).append("NO hay conexión a internet!!").PopAll
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'Reiniciamos el timer para cuando llamamos el Sub desde "seleccion"
|
||||
Timer1.Enabled = False
|
||||
Timer1.Interval = Interval * 1000
|
||||
Timer1.Enabled = True
|
||||
Else
|
||||
If logger Then Log("Sin conexión a internet!!!")
|
||||
s.notiLowReturn("SIN INTERNET ❌", "NO hay conexion a internet.", nid)
|
||||
cs.Initialize
|
||||
If B4XPages.IsInitialized Then B4XPages.MainPage.l_status.Text = cs.Color(Colors.red).append("NO hay conexión a internet!!").PopAll
|
||||
End If
|
||||
|
||||
Catch
|
||||
Log(LastException)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Sub reinicializaReqManager 'ignore
|
||||
@@ -137,21 +137,24 @@ Sub JobDone(Job As HttpJob)
|
||||
If Job.JobName = "DBRequest" Then DBReqServerOk = False
|
||||
Dim cd1 As ColorDrawable
|
||||
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"
|
||||
Log("Guardamos error en BD")
|
||||
If Job.Tag.As(String).StartsWith("select_conexion_") Then
|
||||
Private idServidorX() As String = Regex.Split("_", Job.Tag)
|
||||
Try
|
||||
If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Background = cd1
|
||||
If B4XPages.IsInitialized Then B4XPages.MainPage.b_ping.Text = "DBReqServer KO"
|
||||
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.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1)
|
||||
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
|
||||
If B4XPages.IsInitialized Then B4XPages.MainPage.lv_servidores.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll)
|
||||
If B4XPages.IsInitialized Then B4XPages.MainPage.lv_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1)
|
||||
' B4XPages.MainPage.lv_servidores.AddSingleLine($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$)
|
||||
End If
|
||||
|
||||
End If
|
||||
Catch
|
||||
Log(LastException)
|
||||
End Try
|
||||
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)
|
||||
@@ -162,56 +165,64 @@ Sub JobDone(Job As HttpJob)
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim resultado As DBResult = reqManager.HandleJob(Job)
|
||||
If resultado.Tag.As(String).StartsWith("select_conexion_") Then
|
||||
Log("select_conexion")
|
||||
If Starter.logger 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
|
||||
DBOk = True
|
||||
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 ❌", $"La base de datos ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
|
||||
If B4XPages.IsInitialized Then
|
||||
B4XPages.MainPage.l_status.Text = "La base de datos NO esta respondiendo!!"
|
||||
Log("Guardamos error en BD")
|
||||
Try
|
||||
If B4XPages.IsInitialized Then B4XPages.MainPage.lbl.TextColor = Colors.black
|
||||
If B4XPages.IsInitialized Then 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
|
||||
DBOk = True
|
||||
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 ❌", $"La base de datos ${m.Get("url").As(String).Replace("http://", "")} NO responde!!"$, nid, Main)
|
||||
If B4XPages.IsInitialized Then
|
||||
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_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1)
|
||||
cs.Initialize
|
||||
B4XPages.MainPage.lv_dbs.AddSingleLine(cs.Color(Colors.red).append($"${m.Get("url").As(String).Replace("http://", "")} - ERROR"$).PopAll)
|
||||
B4XPages.MainPage.lv_servidores.SetSelection(B4XPages.MainPage.lv_servidores.Size - 1)
|
||||
' 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)
|
||||
B4XPages.MainPage.b_ping.Background = cd1
|
||||
B4XPages.MainPage.b_ping.Text = "Servidor KO"
|
||||
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)
|
||||
B4XPages.MainPage.b_ping.Background = cd1
|
||||
B4XPages.MainPage.b_ping.Text = "Servidor KO"
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Catch
|
||||
Log(LastException)
|
||||
End Try
|
||||
End If
|
||||
' s.logJobDoneResultados(resultado)
|
||||
If resultado.Rows.Size = 0 Then DBOk = False
|
||||
' Log(resultado.Rows.Size)
|
||||
End If
|
||||
If B4XPages.IsInitialized Then
|
||||
B4XPages.MainPage.cb_conexion.Checked = InternetOk
|
||||
B4XPages.MainPage.cb_internet.Checked = Starter.ping
|
||||
If DBReqServerOk Then B4XPages.MainPage.cb_internet.Checked = True
|
||||
Try
|
||||
If B4XPages.IsInitialized Then
|
||||
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
|
||||
End If
|
||||
End If
|
||||
Catch
|
||||
Log(LastException)
|
||||
End Try
|
||||
Job.Release
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Reference in New Issue
Block a user