# Parametrização do Serviço NR36

## Visão Geral

Este trecho descreve os parâmetros técnicos contidos no arquivo de propriedades da aplicação, abrangendo o comportamento do monitoramento de processos, limites de processamento paralelo por threads, regras de jornada e strings de conectividade e otimização de pool de banco de dados.

### Parametrizar a Aplicação

A aplicação é parametrizada pelo arquivo `application.properties`.

{% stepper %}
{% step %}
**Modo de Debug no Log:** Para ativar (`true`) ou desativar (`false`) o modo de debug no log.

```
debug=TRUE
```

{% endstep %}

{% step %}
**Ciclo de Monitoramento:** Tempo em milissegundos (60000 = 60 segundos) que o sistema aguarda para executar o ciclo de monitoramento dos processos (*threads*).

```
monitor.timeout=60000
```

{% endstep %}

{% step %}
**Pool de Coleta de Marcação:** Tamanho máximo do Pool de *Thread* para processamento paralelo de coleta de marcação da tabela `TELESSVR.DAM00NR36`.

```
marcacao.nr36.max.worker.thread=100
```

{% endstep %}

{% step %}
**Limite de Registros de Marcação:** Quantidade máxima de registros da tabela `TELESSVR.DAM00NR36` processado a cada ciclo.

```
marcacao.nr36.record.limit=200
```

{% endstep %}

{% step %}
**Tolerância de Jornada:** Tolerância em minutos para determinar que uma marcação está fora da jornada de trabalho do colaborador.

```
marcacao.nr36.tolerancia=30
```

{% endstep %}

{% step %}
**Pool da Pausa Térmica:** Tamanho máximo do Pool de *Thread* para processamento paralelo da Pausa Térmica.

```
pausa.termica.max.worker.thread=100
```

{% endstep %}

{% step %}
**Limite de Registros da Pausa Térmica:** Quantidade máxima de registros da tabela `SURICATO.TBMARCACAONR36` processado a cada ciclo.

```
pausa.termica.record.limit=200
```

{% endstep %}

{% step %}
**Dados da Conexão MSSQL:**

```
spring.profiles.active=MSSQL
spring.datasource.driverclassname=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://172.16.14.239;databaseName=suricato;encrypt=false
spring.datasource.username=suricato
spring.datasource.password=559c77858b83858d95
```

{% endstep %}

{% step %}
**Dados da Conexão ORACLE:**

```
#spring.profiles.active=ORACLE
#spring.datasource.driverclassname=oracle.jdbc.OracleDriver
#spring.datasource.url=jdbc:oracle:thin:@( DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.14.239)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )
#spring.datasource.username=suricato
#spring.datasource.password=559c77858b83858d95
```

{% endstep %}

{% step %}
**Pool de Conexão ao Banco de Dados:**

```
#maximum number of milliseconds that a client will wait for a connection
spring.datasource.hikari.connection-timeout=60000 
spring.datasource.hikari.connection-test-query=SELECT 1 FROM SURICATO.SURI
#minimum number of idle connections maintained by HikariCP in a connection pool
spring.datasource.hikari.minimum-idle=100          
#maximum pool size
spring.datasource.hikari.maximum-pool-size=3000
#maximum idle time for connection
spring.datasource.hikari.idle-timeout=10000
#maximum lifetime in milliseconds of a connection in the pool after it is closed.
spring.datasource.hikari.max-lifetime=600000
#default auto-commit behavior.
spring.datasource.hikari.auto-commit=true
```

{% endstep %}
{% endstepper %}

## FAQ - Perguntas Frequentes

<details>

<summary>Qual arquivo realiza a parametrização das configurações operacionais da aplicação?</summary>

A parametrização é feita por meio do arquivo `application.properties`.

</details>

<details>

<summary>Onde são ajustados os limites máximos de threads de processamento paralelo para a Pausa Térmica e Coleta de Marcação? </summary>

Nas propriedades `pausa.termica.max.worker.thread` e `marcacao.nr36.max.worker.thread`, ambas configuradas com o valor padrão de 100.

</details>

<details>

<summary>Quais bancos de dados possuem estruturas de conexão mapeadas no arquivo de propriedades? </summary>

O arquivo traz as estruturas de conexão prontas para os bancos MSSQL (SQL Server) e ORACLE.

</details>

<details>

<summary>Qual é a query utilizada pelo HikariCP para testar a integridade da conexão com o banco de dados? </summary>

A consulta executada pelo driver é a `SELECT 1 FROM SURICATO.SURI` .

</details>

<details>

<summary>Quais são os limites mínimo de conexões ociosas (idle) e o tamanho máximo do pool configurados para o HikariCP? </summary>

O pool está configurado para manter um mínimo de 100 conexões ociosas (`spring.datasource.hikari.minimum-idle=100`) e um tamanho máximo de 3000 conexões ativas (`spring.datasource.hikari.maximum-pool-size=3000`) .

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://software-telematica-com.gitbook.io/suricato-docs/central-tecnica/instalacao-e-configuracao-de-servicos-do-suricato/instalacao-e-configuracao-do-servico-nr36/parametrizacao-do-servico-nr36.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
