Recebendo Exceções OutOfMemoryError

Uma exceção OutOfMemoryError pode resultar da falta de espaço no heap Java™ ou da falta de espaço em qualquer uma das áreas privadas do MVS.

Se o heap do Java estiver esgotado, será recebida uma mensagem de erro indicando uma condição OutOfMemoryError com o heap do Java. Se o espaço de endereço do processo (ou seja, o heap nativo) for esgotado, uma mensagem de erro será recebida, explicando que uma alocação nativa falhou. Em qualquer caso, o problema pode não ser uma fuga de memória, apenas que o estado estável de uso da memória necessário é maior que o disponível. Portanto, a primeira etapa é determinar qual heap está sendo esgotado e aumentar o tamanho desse heap.

Se o problema estiver ocorrendo devido a uma fuga de memória real, aumentar o tamanho de heap não resolve o problema, mas atrasa o começo da exceção ou das condições de erro OutOfMemoryError. Esse atraso pode ser útil em sistemas de produção.

O tamanho máximo de um objeto que pode ser alocado é limitado apenas pela memória disponível. O número máximo de elementos de matriz suportados é 2 ^ 31-1, o máximo permitido pela especificação Java Virtual Machine. Na prática, você pode não conseguir alocar matrizes grandes devido à memória disponível. Configure a quantidade total de memória disponível para os objetos usando a opção da linha de comandos -Xmx. Esses limites se aplicam a JVMs de 31 bits e 64 bits.

Se ocorrer uma exceção de falta de memória e nenhuma mensagem de erro for produzida, o heap Java provavelmente estará esgotado Para localizar o problema é possível tentar rastrear ou examinar dumps do heap. Para obter mais informações, consulte Fugas de rastreioou Usando Heapdumps na J9 Referência da MV

Se uma exceção OutOfMemoryError for lançada devido ao esgotamento da área de armazenamento privado sob a JVM de 31 bits, verifique se a variável de ambiente _BPX_SHAREAS está configurada como NO. Se _BPX_SHAREAS for configurado como YES , diversos processos poderão compartilhar o mesmo armazenamento virtual (espaço de endereço). O resultado é a depleção muito mais rápida da área de armazenamento privada. Para obter mais informações sobre _BPX_SHAREAS, consulte Configurando _BPX_SHAREAS e _BPX_SPAWN_SCRIPT na documentação do produto z/OS® ..

Algumas configurações do BPXPRMxx, por exemplo, MAXTHREADS, também podem causar exceções no site OutOfMemoryError. Para obter mais informações, consulte Configuração do sistema na documentação do usuário do site OpenJ9.