Find

Article
· Dec 20, 2024 2m read

Monitor database size growth and issue alerts

Monitor incremental changes in the database through scheduled tasks, display change trends through charts, set alarm thresholds, and write information to messages.log

How to use it

You can install it through Docker or ZPM

Deploying with Docker Prerequisites

Make sure you have git and Docker desktop installed.

Discussion (0)1
Log in or sign up to continue
Article
· Dec 20, 2024 1m read

QuinielaML - Predicción de la 31ª jornada de la Quiniela

Pues vamos con la última jornada de la Quiniela de este año, a ver si tenemos más suerte esta vez. Veamos que partidos entran en esta jornada, 18ª de Primera División, 21ª de Segunda División.

Estas son las previsiones para los partidos de Primera División:

Y aquí tenemos para Segunda:

Así quedará la Quiniela de esta jornada:

¡Mucha suerte! Y si no nos toca la Quiniela, que nos toque el Gordo.

Discussion (0)1
Log in or sign up to continue
Article
· Dec 19, 2024 1m read

Classe que cria "Custom Query" para qualquer global, ou seja, qualquer global pode responder a SQL em segundos !!!

Eu criei uma classe que gera código para query customizada a partir de uma global qualquer em um determinado namespace,  fazendo com que a global responda ao padrão SQL imediatamente.

Veja abaixo tela com exemplo de uma Global.

 

Na tela seguinte, como exemplo, executo método passando parâmetros (global e namespace):

Por último, acesso o portal de Administração e executo a query já com a Global respondendo em SQL

​​​​​​​

 

Os campos que são exibidos no SQL são correspondentes aos Pieces e níveis da global.

​​​​​​​Exemplo:

​​​​​​​Index1 -> o índice no primeiro nível da global

​​​​​​​piece1N1 -> o conteúdo do piece 1 do primeiro nível da global

​​​​​​​piece2N1 -> o conteúdo do piece 2 do primeiro nível da global

INdex2 -> o índice do segundo nível da global

​​​​​​​e seguem todos os pieces e níveis da global considerando um delimitador principal..

Para maiores detalhes favor comentar na comunidade.

Márcio Sorvi

Discussion (0)1
Log in or sign up to continue
Article
· Dec 19, 2024 3m read

Robozinho em COS para logar cliente (IP e/ou EXE) que pode estar onerando seu servidor

Nós estávamos com uma ocorrência em um cliente em que todas as licenças estavam sendo consumidas e a CPU bastane onerada.

Consultávamos no portal de administração, na lista de processos, mas como o problema era intermitente, não conseguiamos identificar o "vilão".

Fizemos um programa simples, que coleta os processos e algumas informações destes, tais como : IP, executável etc.​​​​​​, e gravamos em arquivo .csv.

No portal de administração -> Operação do Sistema -> Gerenciador de Tarefas, cadastramos uma nova tarefa que executa este programa a cada 10 minutos.

​​​​​​​Quando o problema voltou a ocorrer, conseguimos verificar essa coleta de informações e vimos um IP e um determinado executável, repetindo em vários processos. Logo matamos a charada. 

​​​​​​​Segue abaixo o programa a fim de auxiliar os que podem passar pela mesma situação.

QGGETIP ; PEGA IPS DOS PROCESSOS
        // Abre o arquivo para escrita
        Set  file  = ##class ( %File ). %New ( "D:\TEMP\logprocips_" _ $zd ( $h ,8)_ "_" _ $tr ( $zt ( $piece ( $h , "," ,2),1), ":" , "_" )_ ".csv" )
        Do  file.Open ( "NW" ) // "W" para escrita         // Escrever cabeçalho no arquivo
        Do  file . WriteLine ( "PID;ClientIPAddress;ClientNodeName;Exe Name;data e Hora" )          

        Set  Rset  = ##class ( %ResultSet ). %New ( "%SYS.ProcessQuery:ListPids" )
        Do  Rset . Execute ()
        While  Rset . Next () {
        
            Set  pid  = Rset . GetData (1)
            Set  ipAddress  = $SYSTEM .Process . ClientIPAddress ( pid )
            Set  nodeName  = $SYSTEM .Process . ClientNodeName ( pid )
            Set  exeName  = $SYSTEM .Process . ClientExecutableName ( pid )
            
            set  dth = $zd ( $h ,4)_ " " _ $zt ( $piece ( $h , "," ,2),1)
            // Escrever as informações no arquivo
            Do  file . WriteLine ( pid _ ";" _ ipAddress _ ";" _ nodeName _ ";" _ exeName _ ";" _ dth )
        }
        
        // Fechar o arquivo
        Do  file . Close ()
        Write  "Exportação concluída com sucesso. Arquivo gerado:" , file.Name ,! 

       ​​​​​​​//Márcio Sorvi

1 Comment
Discussion (1)1
Log in or sign up to continue