Gerenciamento de Encadeamento e o Spring Framework

Use as informações nas seções a seguir para evitar potenciais problemas com encadeamentos não gerenciados.

Encadeamentos Não-Gerenciados

Não use um cenário que possa criar encadeamentos não gerenciados, pelas seguintes razões:
  • O servidor de aplicativos não reconhece encadeamentos não gerenciados.
  • Encadeamentos não gerenciados não têm acesso às informações contextuais do Java™ EE.
  • Encadeamentos não gerenciados podem usar recursos sem ser monitorados pelo servidor de aplicativos.
  • Encadeamentos não gerenciados podem afetar adversamente as funções do servidor de aplicativos como o encerramento organizado ou a recuperação de recursos falhos.
  • Um administrador não pode controlar o número de encadeamentos não gerenciados ou seu uso de recursos.
Os seguintes cenários são exemplos de cenários do Spring Framework a serem evitados:
  • registerShutdownHook

    Evite usar a classe AbstractApplicationContext do Spring Framework e suas subclasses. Essas classes incluem o método público registerShutdownHook, que cria um encadeamento e registra-o com a Java virtual machine (JVM) para execução no encerramento para fechar o contexto de aplicativos. Como alternativa, um aplicativo pode usar os avisos de ciclo de vida recebidos do contêiner de servidor de aplicativos para chamar o método de fechamento explicitamente no contexto de aplicativos.

  • WeakReferenceMonitor

    O Spring Framework fornece classes de conveniência para desenvolvimento simplificado de componentes EJB. Porém, essas classes de conveniência produzem um encadeamento não gerenciado que o objeto WeakReferenceMonitor usa para limpeza.

Conjunto de Encadeamentos

O WebSphere Application Server suporta o uso da classe WorkManagerTaskExecutor do Spring Framework para executar o trabalho assincronicamente.

A classe WorkManagerTaskExecutor usa conjuntos de encadeamentos que são gerenciados pelo servidor de aplicativos, e delega a uma instância WorkManager configurada. Para obter informações sobre a configuração de um gerenciador de trabalho, consulte os tópicos relacionados.

Não use outras classes TaskExecutor que são fornecidas com o Spring Framework, porque elas podem iniciar encadeamentos não gerenciados.

É possível usar o nome Java Naming and Directory Interface (JNDI) do gerenciador de trabalho configurado como uma propriedade workManagerName para definir uma instância WorkManagerTaskExecutor no arquivo de configuração Spring. O exemplo a seguir usa o nome JNDI do DefaultWorkManager no servidor de aplicativos, isto é, wm/default:
<bean id="myTaskExecutor" 
  class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
  <property name="workManagerName" value="wm/default" />
</bean>

Planejamento

É possível usar o pacote de planejamento CommonJ WorkManager no Spring Framework para trabalhar com encadeamentos que são gerenciados pelo servidor de aplicativos. Evite usar outros pacotes, como o planejador Quartz, ou o Timer no Java SE Development Kit (JDK), porque eles podem iniciar encadeamentos não gerenciados.


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cspr_design
Nome do arquivo: cspr_design.html