Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.



Informações
titlePlataforma TOTVS Fluig em Cloud

Clientes Cloud, é necessário entrar em contato com o time de Cloud para que os procedimentos sejam realizados.

Índice

Índice
excludeÍndice
classtoc-item-body


Objetivos

...

Problemas de lentidão no TOTVS Fluig Plataforma podem acontecer por diversos motivos, por isso, reunimos alguns métodos e ações que podem auxiliar o usuário administrador do ambiente a reduzir ou sanar a lentidão.


Pré-requisitos

...

...

01. Executar as consultas abaixo no banco de dados e enviar os resultados em prints ou formato .csv para a equipe de Suporte Fluig. Para isso, é necessária a abertura de um ticket no Portal do Cliente: na Central de Atendimento, através das opções: Nova Solicitação  Suporte Técnico.

Bloco de código
languagesql
select COD_DATASET from serv_dataset where DSL_DATASET like '%FluigDS%'; 

select nr_documento, COD_EVENT from event_ficha where DSL_EVENT like '%FluigDS%'; 

select COD_EVENT from event_geral where DSL_EVENT like '%FluigDS%'; 

select event_proces.COD_DEF_PROCES, COD_EVENT from event_proces where DSL_EVENT like '%FluigDS%';

...

01. Os arquivos de instalação abaixo são os mais solicitados pela equipe Suporte Fluig. Caso seja necessário, realize a abertura de um ticket no Portal do Cliente, na Central de Atendimento, através das opções: Nova Solicitação  Suporte Técnico e anexe esses arquivos ao chamado, pois agilizará bastante . Essa ação agilizará todo o processo de atendimento:

...

  • ERROR;
  • ja esta sendo executado por;
  • executou por;
  • invokeFunction.servicetask64;
  • invokeFunction.createDataset;
  • Thread em execução (ex.: default task-1974839).


04. Principais achados no server.log:

a) Sincronização de datasets levando mais tempo que o tolerável para finalizar as sincronizações. No exemplo, os datasets estão sincronizando por mais de 2500 segundos:

Bloco de código
languagejava
titleserver.log
2023-05-29 10:42:00,740 WARN com.fluig.monitoring.jschronos.JSChronos DatasetMetaListServiceBean.datasetSync executou por 2520 segundos

2023-05-29 10:42:00,740 INFO com.fluig.bpm.service.DatasetMetaListServiceBean Fim da sincronização do Dataset : dsFuncionario

2023-05-29 11:08:39,167 WARN com.fluig.monitoring.jschronos.JSChronos DatasetMetaListServiceBean.datasetSync executou por 2318 segundos

2023-05-29 11:08:39,168 INFO com.fluig.bpm.service.DatasetMetaListServiceBean Fim da sincronização do Dataset : dsEmpresas

...

Bloco de código
languagejava
titleserver.log
2022-11-23 15:59:03,511 WARN  [com.fluig.monitoring.jschronos.JSChronos] (JSChronos.CustomizationManagerImpl.invokeFunction.createDataset) CustomizationManagerImpl.invokeFunction.createDataset ja esta sendo executado por 2211 segundos params: [[[Ljava.lang.String;@268d1e17, null, null], Thread = default task-6727, datasetId = dsDatabase]
2.211 segundos

2022-11-24 08:51:22,088 WARN  [com.fluig.monitoring.jschronos.JSChronos] (JSChronos.CustomizationManagerImpl.invokeFunction.createDataset) CustomizationManagerImpl.invokeFunction.createDataset ja esta sendo executado por 60 segundos params: [[[Ljava.lang.String;@7cec0760, [Lcom.totvs.technology.foundation.dataset.SearchConstraint;@64de871c, null], Thread = default task-35, datasetId = dsChecklistCRUD]

2023-02-14 09:17:47,722 WARN  [com.fluig.monitoring.jschronos.JSChronos] (JSChronos.CustomizationManagerImpl.invokeFunction.createDataset) CustomizationManagerImpl.invokeFunction.createDataset ja esta sendo executado por 300 segundos params: [[null, [Lcom.totvs.technology.foundation.dataset.SearchConstraint;@67eb8082, null], Thread = default task-389, datasetId = ds_sql_update]

2023-02-14 09:17:56,587 WARN  [com.fluig.monitoring.jschronos.JSChronos] (JSChronos.CustomizationManagerImpl.invokeFunction.servicetask64) CustomizationManagerImpl.invokeFunction.servicetask64 ja esta sendo executado por 120 segundos params: [[Process id =  alteracao_de_preco, Process Version = 23, Process Current UserId = brunousuario.vieirauser], Thread = default task-413, datasetId = workflowColleagueRole]

...

c) Os termos "invokeFunction.servicetask64"e "invokeFunction.createDataset",geralmente, possuem relação com datasets de Workflow (Processos):

Bloco de código
languagejava
titleinvokeFunctionserver.servicetask64log
2023-02-14 08:39:38,114 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-323) CustomizationManagerImpl.invokeFunction.servicetask64 executou por 565 segundos

2023-02-14 08:39:38,114 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-323) params: [[Process id =  alteracao_de_preco, Process Version = 23, Process Current UserId = brunousuario.vieirauser], Thread = default task-323, datasetId = workflowColleagueRole]

domain.xml

01. O domain.xml pode ser consultado em: <diretório de instalação do Fluig>\appserver\domain\configuration\domain.xml.

02. O <max-pool-size> pode ser ajustado entre 50-200 nos datasources. É possível utilizar um <max-pool-size> menor, quando houver mais de um banco de dados no mesmo servidor.


d) Busca pela thread em execução (default task-39):

Bloco de código
languagejava
titleserver.log
2023-05-29 09:30:53,414 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-39) CustomizationManagerImpl.invokeFunction.createDataset executou por 32 segundos
2023-05-29 09:30:53,414 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-39) params: [[[Ljava.lang.String;@6c45e716, [Lcom.totvs.technology.foundation.dataset.SearchConstraint;@a1b6a73, null], Thread = default task-39, datasetId = ds_RMConsulta]
2023-05-29 09:30:53,437 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-39) DatasetFactory.getDataset.ds_RMConsulta executou por 32 segundos
2023-05-29 09:30:53,437 WARN  [com.fluig.monitoring.jschronos.JSChronos] (default task-39) params: [[TBC012.05, 1, T], [FIELD_NAME=COLIGADA; INITIAL_VALUE=1; FINAL_VALUE=1; CONSTRAINT_TYPE=MUST; IS_LIKE_SEARCH=false; ], null]
2023-05-29 09:31:24,672 INFO  [com.datasul.technology.webdesk.dataset.business.DatasetBO] (default task-39) Executando Dataset com ID ds_RMConsulta do tipo Avançado.
2023-05-29 09:31:24,672 INFO  [com.datasul.technology.webdesk.dataset.business.DatasetBO] (default task-39) Builder rodando sem o mobile 
2023-05-29 09:31:24,719 INFO  [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | Chamada do DataSet ds_RMConsulta
2023-05-29 09:31:24,734 INFO  [com.datasul.technology.webdesk.dataset.business.DatasetBO] (default task-39) Executando Dataset com ID ds_RMConecta do tipo Avançado.
2023-05-29 09:31:24,735 INFO  [com.datasul.technology.webdesk.dataset.business.DatasetBO] (default task-39) Builder rodando sem o mobile 
2023-05-29 09:31:24,786 INFO  [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (default task-39) Creating Service {http://www.totvs.com/}wsConsultaSQL from WSDL: http://peg54p-prd-ws.totvscloud.com.br:8083/wsConsultaSQL/MEX?wsdl
2023-05-29 09:31:24,800 WARNING [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (default task-39) No method was found for the WSDL operation {http://www.totvs.com/}RealizarConsultaSQLContexto.
2023-05-29 09:31:24,805 INFO  [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (default task-39) Creating Service {http://www.totvs.com/}IwsConsultaSQLService from class com.totvs.IwsConsultaSQL
2023-05-29 09:31:24,812 INFO  [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | Dados da chamada ao serviço wsConsultaSQL:
2023-05-29 09:31:24,812 INFO  [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | CODSENTECA: TBC012.03
2023-05-29 09:31:24,812 INFO  [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | CODCOLIGADA: 1
2023-05-29 09:31:24,812 INFO  [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | APLICACAO: T
2023-05-29 09:31:24,812 INFO  [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | PARAMETRO: 
2023-05-29 09:31:24,922 INFO  [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | Chamada realizada com sucesso.
2023-05-29 09:31:24,923 INFO  [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-39) uf-log | Quantidade de registros retornados: 57


domain.xml

...

01. O domain.xml pode ser consultado em: <diretório de instalação do Fluig>\appserver\domain\configuration\domain.xml.

02. O <max-pool-size> pode ser ajustado entre 50-200 nos datasources. É possível utilizar um <max-pool-size> menor, quando houver mais de um banco de dados no mesmo servidor.

Bloco de código
languagexml
titledomain.xml
<datasources>
	<datasource jta="true" jndi-name="java:/jdbc/FluigDS" pool-name="FluigDS" enabled="true" use-java-context="false">
		<connection-url>jdbc:mysql://localhost:3306/fluig_mysql?useSSL=false&nullDatabaseMeansCurrent=true</connection-url>
		<driver>mysqlDriver</driver>
		<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
		<pool>
			<min-pool-
Bloco de código
languagexml
<datasources>
	<datasource jta="true" jndi-name="java:/jdbc/FluigDS" pool-name="FluigDS" enabled="true" use-java-context="false">
		<connection-url>jdbc:mysql://localhost:3306/fluig_mysql?useSSL=false&nullDatabaseMeansCurrent=true</connection-url>
		<driver>mysqlDriver</driver>
		<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
		<pool>
			<min-pool-size>10</min-pool-size>
			<max-pool-size>100</max-pool-size>
		</pool>
		<security>
			<user-name>admin</user-name>
			<password>admin</password>
		</security>
		<validation>
			<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
			<validate-on-match>true</validate-on-match>
			<background-validation>false</background-validation>
		</validation>
		<statement>
			<share-prepared-statements>false</share-prepared-statements>
		</statement>
	</datasource>
	<datasource jta="false" jndi-name="java:/jdbc/FluigDSRO" pool-name="FluigDSRO" enabled="true" use-java-context="false">
		<connection-url>jdbc:mysql://localhost:3306/fluig_mysql?useSSL=false&nullDatabaseMeansCurrent=true</connection-url>
		<driver>mysqlDriver</driver>
		<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
		<pool>
			<min-pool-size>5</min-pool-size>
			<max-pool-size>50</max-pool-size>
		</pool>
		<security>
			<user-name>admin</user-name>
			<password>admin</password>
		</security>
		<validation>
			<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
			<validate-on-match>true</validate-on-match>
			<background-validation>false</background-validation>
		</validation>
		<timeout>
			<blocking-timeout-millis>30000</blocking-timeout-millis>
		</timeout>
		<statement>
			<share-prepared-statements>false</share-prepared-statements>
		</statement>
	</datasource>
	<datasource jta="false" jndi-name="java:/jdbc/AppDS" pool-name="AppDS" enabled="true" use-java-context="false">
		<connection-url>jdbc:mysql://localhost:3306/fluig_mysql?useSSL=false&nullDatabaseMeansCurrent=true</connection-url>
		<driver>mysqlDriver</driver>
		<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
		<pool>
			<min-pool-size>5</min-pool-size>
			<max-pool-size>150</max-pool-size>
		</pool>
		<security>
			<user-name>admin</user-name>
			<password>admin</password>
		</security>
		<validation>
			<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
			<validate-on-match>true</validate-on-match>
			<background-validation>false</background-validation>
		</validation>
		<timeout>
			<blocking-timeout-millis>30000</blocking-timeout-millis>
		</timeout>
		<statement>
			<share-prepared-statements>false</share-prepared-statements>
		</statement>
	</datasource>
	<drivers>
		<driver name="mysqlDriver" module="com.mysql">
			<driver-class>com.mysql.jdbc.Driver</driver-class>
		</driver>
	</drivers>
</datasources>

...

01. O host.xml pode ser consultado em: <diretório de instalação do Fluig>\appserver\domain\configuration\host.xml.

02. O Por padrão. o tamanho de memória que o servidor consome pode ser alterado. Recomendamos utilizar os valores: vem ajustado em: max-size em ="4g " e  size em 2g.="2g, porém, é possível alterar esses valores:

Bloco de código
languagexmlxml
titlehost.xml
	<jvm name="default">
		<heap max-size="8g" size="3g"/>
		<jvm-options>
			<option value="-Dfile.encoding=utf8"/>
			<option value="-XX:MaxMetaspaceSize=1024m"/>
			<option value="-Djavamelody.disabled=true"/>
			<!-- Debug
				<option value="-Xdebug"/>
	<server auto-start="true" group="fluig" name="fluig1">
	<jvm name="default">
		<heap max-size="4g" size="2g"/>
		<jvm-options>
			<option value="-Dfile.encoding=utf8"/Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"/>
			-->
			<option value="-XX:MaxMetaspaceSize=1024m"/>
			<option value="-Djavamelody.disabled=true"/>
			<!-- Debug
				<option value="-Xdebug"/>
				<option value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"/>
			-->
		</jvm-options>
	</jvm>
</server>

03. O Fluig suporta até 16 GB de memória, sendo essa, uma limitação do JBoss. Caso o seu servidor de aplicação tenha mais de 16 GB de memória, recomendamos o uso de um cluster para distribuir os recursos.

04. Não é preciso alterar a quantidade inicial (mínima) de memória alocada (size="2g"), pois a plataforma alocará memória de acordo com a necessidade.

Saiba mais em: Modelo de dimensionamento

Outras questões

</jvm-options>
	</jvm>
</server>

03. O Fluig suporta até 16 GB de memória, sendo essa, uma limitação do JBoss. Caso o seu servidor de aplicação tenha mais de 16 GB de memória, recomendamos o uso de um cluster para distribuir os recursos.

Saiba mais em: Alta disponibilidade e Balanceamento de carga

04. Não é preciso alterar a quantidade inicial (mínima) de memória alocada (size="2g"), pois a plataforma alocará memória de acordo com a necessidade.

Saiba mais em: Modelo de dimensionamento


Outros interferentes na performance da plataforma

...

01. Execução de backups da aplicação e/ou banco de dados em horários de maior utilização da plataforma.

02. Customizações onerosas no diretório: <diretório de instalação do Fluig>\appserver\apps.

03. Plataforma desatualizada.

04. Problemas na Configuração HTTPS da plataforma.

05. Problemas na Configuração de Proxy Reverso.

06. Excesso de consultas em datasets, pois podem gerar estresse desnecessário ao banco de dados. 01. Recomendamos a configuração da limpeza de notificações e da limpeza arquivos temporários de documentos através do agendador de tarefas do Fluig.