Há dois tipos de beans de inicialização: beans de inicialização do aplicativo e beans de inicialização do módulo.
Sobre Esta Tarefa
Recurso Reprovado: Os recursos fornecidos com os beans de sessão singleton de
inicialização (especificação EJB 3.1) fazem com que a função dos beans de inicialização de propriedade do
WebSphere Application Server sejam reprovados.
depfeat
Um bean de inicialização de módulos é um bean de sessão que é carregado quando um arquivo Jar EJB é iniciado. Os beans de inicialização de módulo permitem que aplicativos
Java™ Platform Enterprise Edition (Java
EE) executem a lógica de negócios automaticamente sempre que um módulo EJB
for iniciado ou parado normalmente. Um bean de inicialização de aplicativo é um bean de sessão que é carregado quando um aplicativo é iniciado. Os
beans de inicialização de aplicativos permitem que os aplicativos Java
EE executem a lógica de negócios automaticamente, sempre que um aplicativo é iniciado ou
parado normalmente.
Os beans de inicialização são especialmente úteis quando utilizados com recursos de beans
assíncronos. Por exemplo, um bean de inicialização pode criar um
objeto de alarme que utilize Java Message Service (JMS) para
publicar periodicamente mensagens de pulsação sobre um tópico conhecido. Isso permite que os clientes e outros aplicativos de servidor determinem se o aplicativo está disponível. Consulte Ativando um aplicativo para aguardar que um mecanismo do sistema de mensagens inicie o
artigo se estiver usando o provedor JMS padrão.
- Para os beans de inicialização de aplicativos, utilize a interface home, com.ibm.websphere.startupservice.AppStartUpHome,
para designar um bean como um bean de inicialização de aplicativo.
Para os beans de inicialização de módulos, utilize a interface home, com.ibm.websphere.startupservice.ModStartUpHome,
para designar um bean como um bean de inicialização de módulo.
- Para beans de inicialização de aplicativos, utilize a interface remota, com.ibm.websphere.startupservice.AppStartUp,
para definir os métodos start() e stop() no bean. Para beans de inicialização de módulos, utilize a interface remota, com.ibm.websphere.startupservice.ModStartUp, para definir os métodos start() e stop() no bean.
O método start()
do bean de inicialização é chamado quando o módulo ou o aplicativo é iniciado e contém
a lógica de negócios a ser executada no tempo de inicialização do módulo ou do aplicativo.
O método start() retorna um valor booleano. True indica que a lógica de negócios no método
start() foi executada com êxito. No entanto, False indica que a lógica de negócios
no método start() não foi totalmente executada. Um valor de retorno de False também
indica ao Application Server que a inicialização do aplicativo foi
interrompida.
Os métodos stop()
do bean de inicialização são chamados quando o módulo ou o aplicativo é parado e contém
a lógica de negócios a ser executada no tempo de parada do módulo ou do aplicativo. Qualquer
exceção emitida por um método stop() é apenas registrada. Nenhuma outra ação é executada.
Os métodos start() e stop() nunca devem utilizar o atributo de transação TX_MANDATORY. Uma transação global não existe no encadeamento quando os métodos start() ou stop()
são chamados. Qualquer outro atributo TX_* pode ser utilizado. Se TX_MANDATORY for
utilizado, será registrada uma exceção e o início do aplicativo será interrompido.
Os métodos
start() e stop() da interface remota utilizam o modo Executar Como.
O modo Executar Como especifica as informações de credenciais a serem utilizadas pelo serviço de segurança para determinar as permissões que um proprietário tem em vários recursos. Se a segurança estiver ativada, o modo
Executar Como precisa ser definido em todos os métodos chamados. A identidade do bean sem essa definição não é definida.
Não há restrições
sobre qual código os métodos start() e stop() podem executar, porque o modelo de
programação completo do Application Server está disponível para estes métodos.
- Utilize um inteiro da propriedade de ambiente opcional,
wasStartupPriority, para especificar a ordem de início de diversos
beans de inicialização no mesmo arquivo
Java
Archive (JAR). Se a propriedade de ambiente for localizada e for do tipo errado, a inicialização do aplicativo será interrompida. Se nenhum valor de prioridade for especificado,
a prioridade padrão 0 será utilizada. Recomenda-se especificar a propriedade de prioridade. Os beans que especificaram uma prioridade são classificados utilizando essa propriedade.
Os beans com prioridades numericamente mais baixas são executados primeiro. Os beans com a mesma
prioridade são executados em uma ordem indefinida. Todas as prioridades devem ser inteiros positivos. Os beans são parados na ordem oposta à da prioridade de início. Os valores de prioridade para os beans de inicialização do módulo e os beans de inicialização do aplicativo são mutuamente exclusivos. Todos os módulos serão iniciados antes de o aplicativo ser declarado como
iniciado e, portanto, os métodos start() para beans de inicialização do módulo em um aplicativo
serão chamados antes dos métodos start() para beans de inicialização de aplicativo. Da mesma forma, todos os métodos stop() dos beans de inicialização de aplicativos
para um arquivo Java Archive (JAR) específico serão
chamados antes de quaisquer métodos stop() de beans de inicialização
de módulos para esse JAR.
Nota: O número inteiro da propriedade do ambiente
wasStartupPriority
não pode ser configurado por meio de um comando ou do console
administrativo. Este número inteiro da propriedade do ambiente é uma entrada de ambiente EJB
que deve ser configurada por um desenvolvedor de aplicativos, não um administrador. Configure o valor de número inteiro no arquivo
ejb-jar.xml,
conforme mostrado no exemplo a seguir:
<env-entry>
<env-entry-name>wasStartupPriority</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>3</env-entry-value>
</env-entry>
Como com qualquer outra entrada de ambiente EJB,
configure um valor de
wasStartupPriority separado para cada EJB.
- Para beans de inicialização de módulo, a ordem na qual os módulos EJB são iniciados pode ser ajustada
por meio do valor Ponderação inicial associado a cada módulo
- Para controlar quem pode chamar métodos de bean de inicialização via WebSphere Security, faça o
seguinte:
- Defina as permissões de método para os métodos Start() e Stop(),
como o faria para qualquer módulo EJB. (Consulte Definindo permissões de método para módulos EJB.)
- Certifique-se de que o usuário mapeado para a Função de Segurança
definida para os métodos de bean de inicialização seja o mesmo usuário definido
como ID do Usuário do Servidor no Registro do Usuário.