Configurando o Armazenamento no Cache do Comando

Os comandos que podem ser armazenados em cache são armazenados em cache para reutilização em um mecanismo semelhante para servlets e arquivos JSP (JavaServer Pages).

Sobre Esta Tarefa

Entretanto, nesse caso, os IDs de cache exclusivos são gerados com base nos métodos e campos presentes no comando como parâmetros de entrada. Por exemplo, um comando GetStockQuote pode ter um símbolo como seu parâmetro de entrada.

Um ID de cache exclusivo pode ser gerado a partir do nome do comando mais o valor do símbolo.

Para utilizar o armazenamento em cache do comando, você deve:

Procedimento

Criar um comando.
  1. Definir uma interface. A interface Command especifica os aspectos mais básicos de um comando.

    Você deve definir a interface que estende uma ou mais das interfaces no pacote de comandos. O pacote de comandos consiste em três interfaces:

    • TargetableCommand
    • CompensableCommand
    • CacheableCommand
    Na prática, a maioria dos comandos implementa a interface TargetableCommand, que permite que o comando seja executado remotamente. Segue a estrutura do código de uma interface command para um comando que pode ser alvo:
    ...
    import com.ibm.websphere.command.*;
    public interface MyCommand extends TargetableCommand { 
          // Declarar métodos do aplicativo aqui
    }
  2. Forneça uma classe de implementação para a interface. Grave uma interface que estenda a classe CacheableCommandImpl e implemente sua interface command. Esta classe contém o código para os métodos em sua interface, os métodos herdados das interfaces estendidas, como a interface CacheableCommand, e os métodos requeridos ou abstratos da classe CacheableCommandImpl.

    É possível também substituir as implementações padrão de outros métodos fornecidos na classe CacheableCommandImpl.

Evitar Problemas Evitar Problemas: Para o armazenamento em cache de comandos operar corretamente, você deverá ativar o armazenamento em cache do servlet.gotcha

Exemplo

Os comandos que podem ser armazenados em cache são armazenados em cache para reutilização em um mecanismo semelhante para servlets e arquivos JSP (JavaServer Pages).

Os exemplos de código a seguir ilustram como usar o armazenamento em cache de comando para um comando simples de quota de ações.

Este exemplo de código ilustra um bean de comando de quota de ações. Aceita um ticker como um parâmetro de entrada e produz um preço como seu parâmetro de saída:

public class QuoteCommand extends CacheableCommandImpl
{
    private String ticker;
    private double price;
    // chamado para validar que os parâmetros de entrada do comando foram definidos
    public boolean isReadyToCallExecute() {
      return (ticker!=null);
    }
    // chamado por uma acerto de cache para copiar propriedades de saída para este objeto
    public void setOutputProperties(TargetableCommand fromCommand) {
        QuoteCommand f = (QuoteCommand)fromCommand;
        this.price = f.price;
    }

   // método de lógica de negócio chamado quando o preço da ação precisa ser retornado
    public void performExecute()throws Exception {...}

    //parâmetros de entrada para o comando
    public void setTicker(String ticker) { this.ticker=ticker;}
    public String getTicker() { return ticker;}

    //parâmetros de saída para o comando
    public double getPrice()  { return price;};
}

Este exemplo de código ilustra como usar a política de cache para armazenar em cache o objeto de comando de quota de ações usando um ticker de ações como a chave de cache e um tempo para atividade de 60 segundos:

<cache>
	<cache-entry>
		<class>command</class>
		<sharing-policy>not-shared</sharing-policy>
		<name>QuoteCommand</name>
		<cache-id>
			<component type="method" id="getTicker">
				<required>true</required>
			</component>
			<priority>3</priority>
			<timeout>60</timeout>
		</cache-id>
	</cache-entry>
</cache>

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