Replicação entre servidores
O que fazer quando apresenta erro de nullpointer no SendLogs do replicador?
RTREPLICATOR.FAQ-45327
Existem situações onde o replicador pára de enviar logs, apresentando uma mensagem de nullpointer no SendLogs.
Nestes casos deve-se verificar:
- O servidor slave está conseguindo conectar na URL do master? (a URL é apresentada na tela de status do replicador)
- Os logs no master apresentam apenas o UTL_PUT sem nenhum parâmetro?
O mesmo problema também ocorre com a replicação dos arquivos, apresentando uma mensagem tipo "servidor retornou resposta vazia ao tentar enviar o arquivo ...".
No caso afirmativo, é provável que os 100 registros enviados normalmente estão excedendo o tamanho máximo do POST que o tomcat aceita.
Nestes casos, existem 2 alternativas:
Reduzir o número de registros enviados em cada interação
O número de registros enviados em cada ciclo de interação do replicador é definido pela preferencia RTREPLICATOR.RECORDS_LIMIT.
O valor para esta preferencia pode ser reduzida no SLAVE para um valor menor como 50, 25, ou 10.
Essa é uma solução temporária mas que pode ser realizada sem a necessidade de reiniciar o Tomcat.
Configurar o tamanho máximo do POST do tomcat
Por padrão, o tomcat aceita um post de no máximo 2097152 (2 megabytes).
Este padrão pode ser configurado no MASTER acrescentando o atributo maxPostSize no arquivo server.xml do respectivo conector.
Exemplo:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="-1" />
O valor "-1" desabilita o limite do POST.
Esta solução exige que o tomcat seja reiniciado.
maxPostSize - The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than zero. If not specified, this attribute is set to 2097152 (2 megabytes).
Ver também: