Um erro muito comum que ocorre em Servidores de aplicação WebLogic é o weblogic.socket.MaxMessageSizeExceededException conforme exemplo abaixo:
weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: ‘10000080’ bytes exceeds
the configured maximum of: ‘10000000’ bytes for protocol: ‘t3’
Este erro ocorre por exemplo se o parâmetro MessagesMaximum tem um valor de 10 milhões (10000000) ou 10MB, e o total de Mensagens JMS ou o próprio arquivo JAR é grande demais e passa deste valor, no exemplo acima está recebendo 10000080 bytes.
Porém devemos ficar atentos pois ajustar esse valor para muito alto podemos ter um problema também na utilização da memória do servidor, já que o primeiro client do consumidor para se conectar receberá todas as mensagens que já chegaram ao destino. Esta condição deixa outros consumidores sem qualquer mensagem e cria um backlog desnecessária de mensagens
Você pode precisar configurar Clients WebLogic, além das instâncias WebLogic Server, ao enviar e receber mensagens grandes.
Para a maioria dos protocolos, incluindo T3, WLS limita o tamanho de uma mensagem para 10MB por padrão. Se os tamanhos individuais de mensagens JMS exceder esse limite, ou se um conjunto de mensagens JMS que é agrupadas na mesma chamada de rede exceder esse limite, isso pode levar a um “pacote muito grande de exceções” e/ou consumidores paralisadas.
Para definir o tamanho máximo de mensagem em uma instância do servidor, devemos ajustar o tamanho máximo de mensagem para cada protocolo suportado em uma base por protocolo para cada canal padrão envolvido ou canal personalizado. Neste contexto, a palavra “mensagem” refere-se a todas as chamadas de rede sobre o protocolo determinado, e não apenas as chamadas JMS.
Para definir o tamanho máximo de mensagem em um cliente, use a seguinte propriedade linha de comando:
-Dweblogic.MaxMessageSize
Obs: Esta definição aplica-se a todos os pacotes de rede do WebLogic Server entregues para o cliente, e não apenas pacotes JMS relacionados.
O tamanho máximo de mensagem ajuda a proteger contra um ataque de negação de serviço em que um chamador tenta forçar o servidor para alocar mais memória do que está disponível, assim, ajuda o servidor a responder rapidamente a outros pedidos.
- Valor Mínimo:
4096
- Valor Máximo:
2000000000
- Valor Seguro:
10000000
Para realizarmos esta alteração faça o seguinte:
No seu Browser vá no endereço http://localhost:10000/console
Obs: A porta 10000 é o numero que escolhi ao criar o meu Domínio.
Faça o Login:
Em Environment clique em Servers
Clique em AdminServer(admin)
Clique em Protocols e altere o valor em Maximum Message Size:
Veja acima que estou colocando o valor para 2000000000
Em seguida clique em Save para ativar as alterações.
Abraços e até a Próxima
/:-D