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

[z/OS]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.

[z/OS]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.

[AIX Solaris HP-UX Linux Windows][IBM i]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.

A seguir há uma lista de restrições que se aplicam à implementação de serviços customizados do produto. A maioria dessas restrições aplica-se apenas ao método de inicialização:
  • 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

  1. Desenvolva uma classe de serviço customizada que implemente a interface com.ibm.websphere.runtime.CustomService.
    A interface com.ibm.websphere.runtime.CustomService inclui métodos de inicialização e encerramento. O servidor de aplicativos utiliza o método de inicialização para transmitir propriedades para o serviço customizado. Essas propriedades podem incluir:
    • Uma propriedade que fornece o nome de um arquivo externo que contém informações de configuração para o serviço. É possível utilizar a propriedade externalConfigURLKey para recuperar essas informações.
    • Propriedades que contêm pares nome-valor que são armazenados para o serviço, juntamente com os outros dados de configuração da administração do sistema para o serviço.

    Tanto o método de inicialização quanto o de encerramento declaram que podem criar uma exceção, embora nenhuma subclasse de exceção específica esteja definida. Se qualquer um dos métodos criar uma exceção, o tempo de execução registra a exceção, desativa o serviço customizado e continua a iniciar o servidor.

  2. Configure o serviço customizado.

    No console administrativo, clique em Servidores > Tipos de servidores > WebSphere Application Servers > server_name e, em seguida, sob Infraestrutura do servidor, clique em Serviços customizados > Novo. Em seguida, na página de configurações para uma instância de serviço personalizado, crie uma configuração de serviço personalizado para um servidor de aplicativos ou agente do nó existente, fornecendo o nome da classe implementada. Se a classe de serviço personalizado precisar de um arquivo de configuração, especifique um nome de caminho completo para o arquivo de configuração no campo externalConfigURL. Este nome de arquivo é transmitido para sua classe de serviço personalizado.

    Para chamar uma biblioteca nativa do serviço customizado, forneça o nome do caminho no campo Caminho de Classe além dos nomes de caminho que são utilizados para localizar as classes e os arquivos JAR para o serviço customizado. Esse procedimento inclui o nome do caminho no carregador de classes da extensão, que permite ao serviço customizado localizar e carregar corretamente a biblioteca nativa.

  3. Pare o servidor de aplicativos e, em seguida, reinicie-o.

    [AIX Solaris HP-UX Linux Windows][IBM i]Se estiver desenvolvendo um serviço customizado para um servidor de aplicativos, pare o servidor de aplicativos e, em seguida, reinicie o servidor.

    [AIX Solaris HP-UX Linux Windows][IBM i]Se você estiver desenvolvendo um serviço personalizado para um agente de nó, pare e, em seguida, reinicie o processamento do agente de nó. No console administrativo, clique em Administração do sistema > Agentes do nó, selecione o agente do nó que deseja parar e, em seguida, clique em Parar. Para reiniciar o agente do nó, selecione o agente do nó que deseja reiniciar e clique em Reiniciar.

    [z/OS]Pare o servidor de aplicativos e, em seguida, reinicie o servidor.

Resultados

Cada serviço customizado define uma classe que é carregada e inicializada sempre que o servidor é iniciado e encerrado.

[AIX Solaris HP-UX Linux Windows][IBM i]O serviço customizado é carregado e inicializado sempre que o servidor ou o agente do nó for iniciado e parado.

[z/OS]O serviço customizado é carregado e inicializado sempre que o servidor for iniciado e parado.

Exemplo

Conforme mencionado anteriormente, a classe de serviços customizados deve implementar a interface com.ibm.websphere.runtime.CustomService. Além disso, sua classe deve implementar os métodos de inicialização e encerramento. O exemplo a seguir mostra o código que declara a classe ServerInit que implementa o serviço customizado. Esse código supõe que a classe de serviço customizado precisa de um arquivo de configuração. Este exemplo também inclui o código que acessa o arquivo de configuração externa. Se sua classe não precisar de um arquivo de configuração, não será necessário incluir a parte configProperties do código.
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

[AIX Solaris HP-UX Linux Windows][IBM i]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.

[z/OS]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.


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



Í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=trun_customservice
Nome do arquivo: trun_customservice.html