[AIX HP-UX Linux Solaris Windows]

Métodos do Orientador e Chamadas de Funções Customizados

Use os seguintes métodos do orientador e chamadas de funções nos seus orientadores customizados.

Certifique-se de que orientadores customizados precisem possuir todas as rotinas necessárias. Os orientadores devem possuir os seguintes métodos de classe base:

Construtor (fornecido pelo orientador base)

public <advisor_name> { 
  String sName; 
  String sVersion; 
  int iDefaultPort; 
  int iInterval; 
  String sDefaultLogFileName; 
  boolean replace 
) 
sName
O nome do orientador customizado
sVersion
A versão do orientador customizado
iDefaultPort
O número da porta no qual entrar em contato com o servidor se o número da porta for especificado na chamada.
iInterval
O intervalo no qual o orientador consultará os servidores.
sDefaultLogFileName
Esse parâmetro é necessário mas não é usado. O único valor aceitável é uma cadeia nula, ""
replace
Especifica se as funções desse orientador estão ou não no modo de substituição. Os valores possíveis são:
  • true – Substitui o carregamento calculado pelo código do orientador base pelo valor relatado pelo orientador customizado.
  • false – Inclui o valor de carregamento relatado pelo orientador customizado no valor de carregamento calculado pelo código do orientador base.

Método ADV_AdvisorInitialize()

void ADV_AdvisorInitialize()

Esse método é fornecido para executar qualquer inicialização que possa ser necessária para o orientador customizado. Esse método é chamado depois que o módulo do orientador base ser iniciado. Em muitos casos, incluindo os orientadores padrão, esse método não é usado e o código consiste apenas de uma instrução de retorno. Esse método pode ser usado para chamar o método suppressBaseOpeningSocket(), que é válido apenas para a partir desse método.

Em muitos casos, incluindo os orientadores padrão, esse método não é usado e o código consiste apenas de uma instrução de retorno. Esse método pode ser usado para chamar o método suppressBaseOpeningSocket, que é válido apenas para a partir do método ADV_AdvisorInitialize.

Método ADVLOG()

A função ADVLOG permite que um orientador customizado grave uma mensagem de texto no arquivo de log do orientador base. O formato é o seguinte:
void ADVLOG (int logLevel, String message) 
Esse comando possui os seguintes parâmetros:
logLevel
O nível de status no qual a mensagem é gravada no arquivo de log. O arquivo de log do orientador é organizado em estágios; a maioria das mensagens urgentes recebe um nível de status 0 e mensagens menos urgentes recebem números maiores. A maioria do tipo detalhado de mensagem recebe o nível de status 5. Esses níveis são usados para controlar os tipos de mensagens que o usuário recebe em tempo real (o comando dscontrol é usado para configurar a verbosidade). Erros catastróficos devem sempre ser registrados no nível 0.
Mensagem
O tipo de mensagem a ser gravado no arquivo de log. O valor para esse parâmetro é uma cadeia Java padrão.

Função getAdvisorName

A função getAdvisorName retorna uma cadeia Java com a parte do sufixo do seu nome de orientador customizado. Por exemplo, para um orientador chamado ADV_cdload.java, essa função retorna o valor cdload.

Essa função não usa parâmetros.
Evitar Problemas Evitar Problemas: Não é possível esse valor ser alterado durante uma instanciação de um orientador.gotcha

caller.getCurrentServerId()

A função getCurrentServerId retorna uma cadeia Java que é uma representação exclusiva para o servidor atual. Normalmente, esse valor é alterado sempre que você chama seu orientador customizado, porque o código base do orientador consulta todas as máquinas servidores em série.

Essa função não usa parâmetros.

caller.getCurrentClusterId()

A função getCurrentClusterId retorna uma cadeia Java que é uma representação exclusiva para o cluster atual. Normalmente, esse valor é alterado sempre que você chama seu orientador customizado, porque o código base do orientador consulta todos os clusters em série.

Essa função não usa parâmetros.

caller.getSocket()

A chamada da função getSocket retorna um soquete Java que representa o soquete aberto para o servidor atual para a comunicação.

Essa função não usa parâmetros.

caller.getLatestLoad()

A função getLatestLoad chama um orientador customizado para obter o valor de carregamento mais recente para um determinado objeto do servidor. Os valores de carregamento são mantidos em tabelas internas pelo código do orientador base e pelo daemon do gerenciador. Essa chamada de função é útil se você desejar tornar o comportamento de protocolo ou de porta dependente do comportamento de outro. Por exemplo, você pode usar essa chamada de função em um orientador customizado que desativou um determinado servidor de aplicativos se o servidor Telnet nessa mesma máquina foi desativado.

A sintaxe é:
int caller.getLatestLoad (String clusterId, int port, String serverId)
Os três argumentos juntos definem um objeto do servidor.
Esse comando possui os seguintes parâmetros:
clusterId
O identificador de cluster no objeto do servidor para o qual o valor de carregamento atual é obtido. Esse argumento deve ser uma cadeia Java.
port
O número da porta do objeto do servidor para o qual o valor de carregamento atual é obtido.
serverId
O identificador de servidor do objeto do servidor para o qual o valor de carregamento atual é obtido. Esse argumento deve ser uma cadeia Java. O valor de retorno é um número inteiro.
  • Um valor de retorno positivo representa o valor de carregamento real designado para o objeto que foi consultado.
  • O valor -1 indica que o servidor solicitado está inativo.
  • O valor -2 indica que o status do servidor solicitado é desconhecido.

caller.receive()

A função de recebimento obtém informações a partir da conexão de soquete. A sintaxe é:
caller.receive(StringBuffer *response) 
Esse comando possui os seguintes parâmetros:
response
Esse é um buffer de cadeia no qual os dados recuperados são colocados. Além disso, a função retorna um valor de número inteiro com o seguinte significado:
  • 0 indica que os dados foram enviados com êxito.
  • Um número negativo indica um erro.

caller.send()

A função de envio usa a conexão de soquete estabelecida para enviar um pacote de dados para o servidor usando a porta especificada. A sintaxe é a seguinte:
caller.send(String command) 
Esse comando possui os seguintes parâmetros:
command
Essa é uma cadeia que contém os dados a serem enviados para o servidor. A função retorna um valor de número inteiro com o seguinte significado:
  • 0 indica que os dados foram enviados com êxito.
  • Um número negativo indica um erro.

getLoad()

int getLoad( int iConnectTime; ADV_Thread *caller )
Essa função possui os seguintes parâmetros:
iConnectTime
A quantia de tempo, em milissegundos, que é necessária para que a conexão seja concluída. Essa medida de carregamento é executada pelo código do orientador base e transmitida para o código do orientador customizado, que pode usar ou ignorar a medida quando retornar o valor de carregamento. Se a conexão falhar, esse valor é configurado para -1.
caller
A instância da classe do orientador base onde os métodos do orientador base são fornecidos. Chamadas de função disponíveis para os orientadores customizados: Os métodos ou funções descritos nas seguintes seções podem ser chamados a partir de orientadores customizados. Esses métodos são suportados pelo código do orientador base. Algumas dessas chamadas de funções podem ser feitas diretamente, por exemplo, function_name(), mas outras requerem o responsável pela chamada do prefixo. O responsável pela chamada representa a instância do orientador base que suporta o orientador customizado que está sendo executado.

getAdviseOnPort()

A função getAdviseOnPort retorna o número da porta no qual o orientador customizado de chamada está em execução.

O valor de retorno é um número inteiro Java (int) e a função não usa parâmetros.
Nota: Não é possível esse valor ser alterado durante uma instanciação de um orientador.

getAdvisorName()

A função getAdvisorName retorna uma cadeia Java com a parte do sufixo do seu nome de orientador customizado. Por exemplo, para um orientador chamado ADV_cdload.java, essa função retorna o valor cdload. Essa função não usa parâmetros. Note que não é possível alterar esse valor durante uma instanciação de um orientador.

getInterval()

A função getInterval retorna o intervalo do orientador, ou seja, o número de segundos entre os ciclos do orientador. Esse valor é igual ao valor padrão configurado no construtor do orientador customizado, a menos que o valor seja modificado no tempo de execução usando o comando dscontrol. O valor de retorno é um número inteiro Java (int).

A função não usa parâmetros.

suppressBaseOpeningSocket()

A função suppressBaseOpeningSocket permite que um orientador customizado especifique se o código do orientador base abre um soquete TCP para o servidor em nome do orientador customizado. Se o orientador não usar comunicação direta com o servidor para determinar seu status, pode não ser necessário abrir esse soquete. A chamada da função pode ser emitida apenas uma vez e deve ser emitida a partir da rotina Método ADV_AdvisorInitialize().

A função não usa parâmetros.




Tarefas relacionadas
Criando um Orientador Customizado
Referências relacionadas
Exemplo: Orientador de Amostra
Tópico de Referência Tópico de Referência    

Termos de Uso | Feedback

Última atualizaçãoÚltima atualização: Jun 28, 2011 4:11:22 PM EDT
Nome do arquivo: rprf_advcustmeth.html