Configuración de almacenamiento en memoria caché de mandatos

Los mandatos que se pueden almacenar en memoria caché se almacenan en ésta para poder volver a utilizarlos con un mecanismo para servlets y archivos JSP (JavaServer Server Pages).

Acerca de esta tarea

No obstante, en este caso los únicos ID de memoria caché exclusivos se generan basándose en métodos y campos que están presentes en el mandato como parámetros de entrada. Por ejemplo, un mandato GetStockQuote puede tener un símbolo como parámetro de entrada.

Se puede generar un ID de memoria caché exclusivo a partir del nombre del mandato más el valor del símbolo.

Para utilizar el almacenamiento en memoria caché de mandatos debe:

Procedimiento

Cree un mandato.
  1. Defina una interfaz. La interfaz Command especifica los aspectos más básicos de un mandato.

    Debe definir la interfaz que amplíe una o más interfaces del paquete de mandatos. El paquete de mandatos consta de tres interfaces:

    • TargetableCommand
    • CompensableCommand
    • CacheableCommand
    En la práctica, la mayoría de mandatos implementan la interfaz TargetableCommand, que permite que el mandato se pueda ejecutar remotamente. A continuación se detalla la estructura de código de una interfaz de mandatos para un mandato targetable:
    ...
    import com.ibm.websphere.command.*;
    public interface MyCommand extends TargetableCommand { 
          // Declarar aquí los métodos de aplicación
    }
  2. Proporcione una clase de implementación para la interfaz. Escriba una interfaz que amplía la clase CacheableCommandImpl e implementa la interfaz de mandatos. Esta clase contiene el código para los métodos de la interfaz, los métodos heredados de interfaces ampliadas como la interfaz CacheableCommand y los métodos necesarios o abstract de la clase CacheableCommandImpl.

    También puede modificar las implementaciones predeterminadas de otros métodos proporcionados en la clase CacheableCommandImpl.

Avoid trouble Avoid trouble: Para que el almacenamiento en memoria caché de mandatos funcione correctamente, debe habilitar la colocación en memoria caché de servlets.gotcha

Ejemplo

Los mandatos que se pueden almacenar en memoria caché se almacenan en ésta para poder volver a utilizarlos con un mecanismo para servlets y archivos JSP (JavaServer Server Pages).

En los ejemplos de código siguientes se muestra cómo utilizar el mandato en memoria caché para un mandato de cotización bursátil simple.

Este ejemplo de código ilustra un bean del mandato de cotización bursátil. Acepta un ticker de bolsa como parámetro de entrada y genera un precio como parámetro de salida:

public class QuoteCommand extends CacheableCommandImpl
{
    private String ticker;
    private double price;
    // called to validate that command input parameters have been set
    public boolean isReadyToCallExecute() {
      return (ticker!=null);
    }
    // called by a cache-hit to copy output properties to this object
    public void setOutputProperties(TargetableCommand fromCommand) {
        QuoteCommand f = (QuoteCommand)fromCommand;
        this.price = f.price;
    }

   //bbusiness logic method called when the stock price must be retrieved
    public void performExecute()throws Exception {...}

    //input parameters for the command
    public void setTicker(String ticker) { this.ticker=ticker;}
    public String getTicker() { return ticker;}

    //output parameters for the command
    public double getPrice()  { return price;};
}

Este código de ejemplo muestra cómo utilizar la política de memoria caché para almacenar en la memoria caché el objeto del mandato de cotización bursátil utilizando el ticker de bolsa como clave de memoria caché y un tiempo de vida 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>

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdyn_cachecommands
File name: tdyn_cachecommands.html