Criando Serviços Customizados
É possível criar um ou mais serviços customizados para um servidor de aplicativos. Cada serviço customizado define uma classe que é carregada e inicializada sempre que o servidor é iniciado e encerrado. Cada uma dessas classes deve implementar a interface com.ibm.websphere.runtime.CustomService. Após a criação de um serviço customizado, utilize o console administrativo para configurar o serviço customizado para os servidores de aplicativos.
Sobre Esta Tarefa
Os serviços customizados são executados em servidores, não em controladores. Por exemplo, como pode haver mais de um servidor iniciado na vida
de um servidor e esses servidores podem ser iniciados bem depois do servidor (controlador)
estar ativo, conforme necessário pelo WLM, um serviço customizado é executado durante o início de cada servidor.
Se precisar definir um ponto de gancho que é executado quando um servidor é iniciado e encerrado, crie uma classe de serviço customizado e, em seguida, utilize o console administrativo para configurar uma instância do serviço customizado. Quando o servidor de aplicativos é iniciado, o serviço customizado é iniciado e inicializa.
Para definir uma rotina a ser executada quando um servidor ou agente do nó for iniciado e encerrado, desenvolva uma classe de serviço customizado
e, em seguida, configure uma instância de serviço customizado. Quando o servidor de aplicativos ou o agente de nó é iniciado, o serviço personalizado é iniciado e inicializa.
- Os métodos de inicialização e encerramento devem retornar o controle ao tempo de execução.
- Nenhum trabalho é enviado para a instância do servidor até que todos os métodos initialize do serviço personalizado sejam retornados.
- Os métodos de inicialização e encerramento são chamados somente uma vez em cada serviço, uma vez para cada processo do sistema operacional que compõe a instância do servidor.
- É suportada a inicialização de dados estáticos do nível do processo, sem sair do processo.
- Apenas as operações do JDBC RMLT (Resource Manager Local Transaction) são suportadas. Cada UOW (Unit Of Work) deve ser concluída antes que os métodos retornem.
- A criação de encadeamentos não é suportada.
- A criação de soquetes e E/S diferente da E/S do arquivo não é suportada.
- A execução do código padrão do Java EE (Java™ Platform, Enterprise Edition), como o código de cliente, servlets e enterprise beans, não é suportada.
- A interface de JTA (Java Transaction API) não está disponível.
- Esse recurso está disponível nos processos do servidor Java EE e é distribuído apenas para os processos de servidor genérico.
- Enquanto o tempo de execução faz o possível para chamar o encerramento, não há garantia de que o encerramento será chamado antes do término do processo.
- As operações JNDI que requerem os recursos não são suportados.
Procedimento
Resultados
O serviço customizado é carregado e inicializado sempre que o servidor ou o agente do nó for iniciado e parado.
O serviço customizado é carregado e inicializado sempre que o servidor for iniciado e parado.
Exemplo
public class ServerInit implements com.ibm.websphere.runtime.CustomService
{
/**
* O método de inicialização é chamado pelo tempo de execução do servidor de aplicativos quando o
* servidor é iniciado. O objeto Propriedades que o servidor de aplicativos transmite
* para esse método deve conter todas as informações de configuração que esse
* serviço precisa para inicializar corretamente.
*
* @param configProperties java.util.Properties
*/
static final java.lang.String externalConfigURLKey =
"com.ibm.websphere.runtime.CustomService.externalConfigURLKey";
static String ConfigFileName="";
public void initialize(java.util.Properties configProperties) throws Exception
{
if (configProperties.getProperty(externalConfigURLKey) != null)
{
ConfigFileName = configProperties.getProperty(externalConfigURLKey);
}
// Implementar o restante do método de inicialização
}
/**
* O método shutdown é chamado pelo tempo de execução do servidor de aplicativos quando
* servidor começa seu processamento de encerramento.
*
public void shutdown() throws Exception
{
// Implementar o método de encerramento
}
O que Fazer Depois
Verifique o servidor de aplicativos ou o agente do nó para verificar se os métodos de inicialização e de encerramento do serviço customizado são executados conforme sua preferência.
Verifique o servidor de aplicativos para verificar se os métodos de inicialização e de encerramento do serviço customizado são executados conforme sua preferência.