Consideraciones sobre la capa de servicios de datos (DSL) al establecer rangos permitidos para objetos de negocio

Aunque los componentes de negocio pueden detectar y atenuar la mayoría de condiciones sin límite, sigue siendo posible que se filtren sentencias de consultas sin límite en la capa de servicios de datos para su ejecución que con el tiempo podría afectar al rendimiento del sistema o causar paradas en el sitio.

Debe tener en cuenta las siguientes consideraciones al crear las expresiones y plantillas de consulta en la Capa de servicios de datos:
  • Utilizar el SQL COUNT en la plantilla de consulta. DSL la ejecuta para determinar el tamaño exacto del conjunto de resultados. No obstante, esto puede introducir una pequeña sobrecarga de tiempo de ejecución en toda la ejecución.
  • Utilizando el distintivo returnPagingCountIfMaximumResultLimitExceeded, definido en el archivo wc-component.xml:
    <xsd:attribute name="returnPagingCountIfMaximumResultLimitExceeded" type="xsd:boolean" use="optional">	
    </xsd:attribute>

    Este atributo determina si el tamaño del conjunto de resultados debe incluirse en el mensaje de excepción de aplicación cuando el número de registros devueltos por la consulta XPath a SQL sobrepasa el máximo, según lo definido por el atributo maximumPagingResultLimit. El tamaño del conjunto de resultados siempre se devuelve si se proporciona la consulta SQL de recuento de paginación para una solicitud dada. Sin embargo, si dicha consulta no se especifica, el tamaño del conjunto de resultados solo se calculará si este atributo se establece en true.

    Establecer el valor en true hace que DSL calcule el recuento total de registros. Aunque el recuento es más exacto y fiable, el coste de proceso podría ser alto en tiempo de ejecución.

    Nota: Este atributo es opcional y el valor predeterminado es false. Es decir, DSL genera una excepción de aplicación cuando se ha alcanzado o superado el límite máximo de recuento de páginas. Por lo tanto, el recuento total puede no ser muy fiable en este caso, pero tendrá un mejor rendimiento.