Árvore de páginas

Versões comparadas

Chave

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

Índice

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone


Plataforma

Produto: fluigTOTVS Fluig Plataforma

Versão: Todas as versões

Ocorrência

Ao tentar exportar um novo formulário para o fluig, encontramos o seguinte erroa plataforma ou movimentar uma solicitação, os erros são apresentados da seguintes formas:


Bloco de código
languagejava
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

...

Bloco de código
languagejava
ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-25) Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.


Solução

Identificamos que essa situação ocorre em dois cenários, sendo o primeiro na exportação de formulário Identificamos que este incidente ocorreu devido a quantidade de campos contidos no formulário. No caso acima, o formulário possuía mais de 225 campos, sendo a maioria deles do tipo text. Com mesmo, com isto, o banco restringiu restringe a criação da tabela do formulário (metalista) pois o tamanho somado dos campos ultrapassou o limite permitido.. O segundo cenário trata-se da movimentação de solicitações, onde o número de caracteres informados ultrapassa o limite do banco e acaba por restringir o envio das informações.

Há uma medida de contorno, a qual poderá ser adotada, mas não é assegurado em todos os casos que a mesma solucionará o incidente, cabe ressaltar que essa limitação é do próprio banco de dados e não uma limitação do produto. A medida consiste em alterar Encontramos porém um contorno para essa situação alterando os parâmetros de limitações do MySQL. Para realizar o procedimento, basta inserir (ou alterar) as seguintes chaves no arquivo my.ini (em Windows) ou my.cnf (em Linux):

Bloco de código
languagejava
innodb_log_file_size=512M8G 
innodb_log_buffer_size=800M 
innodb_buffer_pool_size=800M 
innodb_strict_mode=0

Em seguida, é necessário reiniciar o serviço do banco de dados para que as alterações entrem em vigor.

...

Por padrão o arquivo my.ini está localizado dentro da raiz da instalação (geralmente na pasta C:\Program Files\MySQL\MySQL Server 5.x'), mas depende de como foi instalado. Em alguns casos pode até não haver esse arquivo.


...

Caso o incidente persista após a alteração dos parâmetros, aconselhamos que seja implementando em seu diagrama o uso de um Subprocesso, visando dividir o formulário, seja para sanar a questão do número de campos inseridos no mesmo ou o número de informações a serem enviadas durante a movimentação de uma solicitação.