Añadir escuchas de escalado personalizado

Puede crear un paquete de escuchas de escalado personalizado utilizando WebSphere Application Server Developer Tools for Eclipse. Un escucha de escalado personalizado recibe notificaciones con respecto a todas las acciones de escalado pendientes. Después, el escucha puede permitir o rechazar la acción de escalado. También puede decidir manejar la acción, lo que proporciona una personalización completa del comportamiento de escalado.

Antes de empezar

Asegúrese de que la instalación de Liberty tiene la característica scalingController-1.0. Si desea más información sobre los controladores de escalado, consulte Configuración del escalado automático para colectivos de Liberty y Controlador de escalado.

Acerca de esta tarea

Debe implementar la interfaz de escucha y registrar la clase de implementación en el registro de servicio. El escucha de escalado puede permitir o rechazar y manejar acciones de escalado.

La documentación de la API Java para cada SPI de Liberty está disponible en un archivo comprimido independiente en uno de los subdirectorios de documentación de API del directorio ${wlp.install.dir}/dev.

Procedimiento

  1. Pulse Archivo > Nuevo > Otros y, a continuación, expanda OSGi.
  2. Pulse Proyecto de paquete OSGi y pulse Siguiente. Se abre la ventana Nuevo proyecto de paquete OSGi.
  3. Especifique ScalingSPISampleBundle como nombre del proyecto. En la lista de tiempo de ejecución de destino, seleccione WebSphere Application Server Liberty. Si no existe ningún tiempo de ejecución, pulse Nuevo tiempo de ejecución para crear un tiempo de ejecución de WebSphere Application Server Liberty.
  4. Desmarque el botón de opción Añadir paquete a la aplicación.
  5. Pulse Siguiente dos veces y vaya a la página Paquete OSGi.
  6. En la página Paquete OSGi, seleccione Generar un activador, una clase Java que controle el ciclo de vida del paquete. Deje el Nombre de activador como scalingspisamplebundle.Activator y pulse Finalizar.
  7. Pulse Archivo > Nuevo > Otros y, a continuación, expanda OSGi.
  8. Pulse Proyecto de características de Liberty y, a continuación, pulse Siguiente. Se abre la ventana Proyecto de características de Liberty.
  9. Especifique ScalingSPISampleFeature como nombre del proyecto.
  10. En la lista de tiempo de ejecución de destino, seleccione WebSphere Application Server Liberty y pulse Siguiente. Se abre la página Selección de paquetes OSGi.
  11. En la página de selección de paquetes OSGi, seleccione ScalingSPISampleBundle 1.0.0 como Paquetes incluidos y pulse Finalizar.
  12. Pulse Ventana > Preferencias > Desarrollo de plug-ins > Plataforma de destino y seleccione Liberty de WebSphere Application Server con SPI.
  13. Pulse Aplicar y Aceptar.
  14. Expanda ScalingSPISampleBundle > BundleContent > META-INF y abra el archivo MANIFEST.MF utilizando el Editor de manifiesto de plug-in.
  15. Seleccione la pestaña Dependencias y añada los paquetes com.ibm.wsspi.scaling.action.consumer y com.ibm.wsspi.scaling.action.controller al panel Paquetes importados. Es posible que tenga que pulsar Ctrl+S para guardar los cambios.
  16. En el proyecto ScalingSPISampleBundle, añada una clase de implementación llamada ScalingSPISamplePlugin. Esta nueva clase implementa la interfaz com.ibm.wsspi.scaling.action.consumer.ScalingActionPlugin.
    package scalingspisamplebundle;
    
    import com.ibm.wsspi.scaling.action.consumer.ScalingActionPlugin;
    import com.ibm.wsspi.scaling.action.controller.ScalingActionContext;
    import com.ibm.wsspi.scaling.action.controller.ScalingActionContext.ActionType;
    import com.ibm.wsspi.scaling.action.controller.ScalingActionContext.ActionDecision;;
    
    /**
     * Esto es un ejemplo de plug-in de SPI de escalado de Liberty que actúa como una plantilla para desarrollar un
     * plug-in de SPI personalizado. En este plug-in, no se realiza trabajo real y el valor de retorno para el controlador de escalado
     * de Liberty es siempre DEFAULT_ACTION.
     * 
     */
    public class ScalingSPISamplePlugin implements ScalingActionPlugin {
    
        /** {@inheritDoc} */
        @Override
        public ActionDecision actionRequired(ScalingActionContext action) {
    
            ActionDecision returnType = ActionDecision.DEFAULT_ACTION;
    
            if (action.getActionType() == ActionType.START_SERVER) {
                returnType = startServer(action);
            }
            else if (action.getActionType() == ActionType.CREATE_SERVER) {
                returnType = createServer(action);
            }
            else if (action.getActionType() == ActionType.STOP_SERVER) {
                returnType = stopServer(action);
            }
    
            return returnType;
    
        }
    
        private ActionDecision startServer(ScalingActionContext action) {
            // realizar alguna acción para iniciar un servidor
    
            return ActionDecision.DEFAULT_ACTION;
        }
    
        private ActionDecision createServer(ScalingActionContext action) {
            // realizar alguna acción para crear un servidor
    
            return ActionDecision.DEFAULT_ACTION;
        }
    
        private ActionDecision stopServer(ScalingActionContext action) {
            // realizar alguna acción para detener un servidor
    
            return ActionDecision.DEFAULT_ACTION;
        }
    }
  17. En el proyecto ScalingSPISampleBundle, abra la clase Activador y edite el método start(BundleContext) para añadir código que registre el nuevo servicio de escucha.
    public void start(BundleContext context) throws Exception {
        final Hashtable<String, Object> properties = new Hashtable<String, Object>();
        ScalingSPISamplePlugin scalingSPISamplePlugin = new ScalingSPISamplePlugin();
        context.registerService(ScalingActionPlugin.class, scalingSPISamplePlugin, properties);
    }

    Si se le solicita que importe una correlación hash, seleccione importar java.util.HashMap.

  18. Pulse con el botón derecho del ratón el proyecto ScalingSPISampleFeature y pulse Instalar característica para instalar la característica en el tiempo de ejecución de Liberty.

    La opción de menú Instalar característica está en la vista de Explorador de empresa de la perspectiva Java EE.

  19. Edite el archivo server.xml para habilitar ScalingSPISampleFeature.
    ...
    <featureManager>
      ...
      <feature>scalingController-1.0</feature>
      <feature>usr:ScalingSPISampleFeature</feature>
    </featureManager>
    ...

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_wve_add_scaling_listener.html