Algunos métodos de Servicios Web devuelven listas, que sólo están representadas por un identificador de número entero único. Una lista es, simplemente, una colección de objetos del mismo tipo. Las listas resultan especialmente útiles para manejar una gran colección de objetos (por ejemplo, todos los contactos del sistema), ya que puede recuperar información sobre los elementos de un intervalo de la lista. La desventaja es que debe realizar más llamadas a métodos para obtener un identificador de lista, recuperar información y, finalmente, liberar el identificador de lista. Si el número esperado de filas de lista es pequeño, utilice métodos que no incorporen identificadores de lista, como doSelect().
A continuación se ofrecen más detalles sobre las listas:
Puede que una lista sólo contenga objetos de un solo tipo como, por ejemplo, las listas de contactos, las listas de organizaciones, etc.
Por ejemplo, si se obtiene un objeto de lista para todos los contactos y se agrega otro contacto al sistema, no se reflejará la actualización en la lista. Se debe obtener otro identificador de lista para obtener los datos más actuales.
Una solicitud de lista devuelve un identificador de número entero que representa a la lista de objetos del mismo tipo. No se envía otra información al cliente. El cliente puede consultar en la lista información específica sobre sus filas. Cuando un cliente termina con una lista, el identificador se debe liberar con freeListHandles(). El servidor de CA SDM mantiene la lista, lo que consume recursos del sistema. Por tanto, es importante liberar listas. A diferencia de los identificadores de objeto, los identificadores de lista no son persistentes en todas las sesiones.
Varios métodos necesitan incluir un índice de números enteros en una lista. Las listas se basan en un valor cero, por lo que el primer elemento está en el índice = 0.
Como se comentó anteriormente, el uso de identificadores de lista resulta más útil para conjuntos de datos más grandes que se pueden consultar varias veces. Sin embargo, las listas son excesivas para algunas operaciones. Se proporcionan varios métodos, pero el más destacado es doSelect(), ya que devuelve la información solicitada sobre un conjunto de datos sin la sobrecarga de identificadores de lista.
En la decisión de utilizar identificadores de lista en lugar de métodos, como doSelect(), prima el rendimiento y la comodidad. Por ejemplo, supongamos que su aplicación realiza el procesamiento en los 15.000 contactos del sistema. El método doSelect() puede recuperar todos los datos de contactos en una llamada, pero la respuesta se retrasará y afectará negativamente al rendimiento global del sistema, a la vez que crea y devuelve un conjunto de datos muy grande. En este caso, el método doQuery() devolverá una referencia de lista de forma muy rápida. Se pueden consultar los intervalos de datos de la lista para mejorar los tiempos de respuesta del servidor. Una práctica recomendable consiste en utilizar referencias de lista si el conjunto de datos supera los 250 elementos.
A veces no tiene sentido utilizar identificadores de lista. Por ejemplo, una incidencia tiene una lista de registros de actividades. En función de la instalación, el número de registros puede variar de unos pocos a unos cientos. Probablemente, es más rápido solicitar todos los datos de una vez en lugar de solicitar una referencia de lista para consultar los datos y liberar la lista a continuación.
A continuación se muestran varios ejemplos de métodos que devuelven conjuntos de datos en lugar de referencias de lista:
Como se indicó anteriormente, las consultas que devuelven un gran número de filas pueden afectar gravemente al rendimiento del servidor. Para protegerse de esto, CA SDM limita el número de filas devueltas a 250. Esto afecta a todos los métodos de Servicios Web de CA SDM que devuelven listas de objetos, incluidos los siguientes:
Este límite se aplica aunque solicite uno de estos métodos para recuperar más de 250 filas.
Para recuperar grandes cantidades de filas, debe obtener un identificador para la lista de resultados y utilizar getListValues() para recuperar secciones de 250 filas (o menos) cada una. Esta estrategia ayuda a evitar que se ralentice el servidor mientras gestiona grandes cantidades de datos.
|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|