Sugerencias de esquemas de lectura hacia adelante

Los esquemas de lectura hacia adelante permiten a las aplicaciones minimizar el número de viajes de ida y vuelta a la base de datos, al recuperar un conjunto operativo de beans CMP (persistencia gestionada por contenedor) para la transacción dentro de una consulta. La lectura hacia adelante implica activar los beans CMP solicitados y colocar en antememoria los datos de los beans relacionados, lo que garantiza la presencia de los datos para los beans que necesitará la aplicación a continuación. Una sugerencia de lectura hacia adelante es una representación de los beans relacionados que se van a leer. La sugerencia se asocia con el método findByPrimaryKey para el tipo de bean solicitado, que debe ser un bean de entidad CMP compatible con EJB 2.x.

Una sugerencia de lectura hacia adelante toma la forma de una serie de caracteres. No es necesario proporcionar la serie; el asistente la genera a partir de las relaciones gestionadas por contenedor (CMR) definidas para el bean. El ejemplo que se proporciona en esta sección es sólo de información complementaria. Supongamos que un bean CMP de tipo A tiene un método de buscador que devuelve instancias de bean A. Una sugerencia de lectura adelante para este método se especifica utilizando la siguiente notación: RelB.RelC; RelD

Interprete la notación anterior de la siguiente manera:
  • El bean de tipo A tiene una CMR con beans de tipo B y D.
  • El bean de tipo B tiene una CMR con un bean de tipo C.

Para cada bean de tipo A que se recupera desde la base de datos, también se recuperan los beans B y D directamente relacionados y los beans C indirectamente relacionados. El orden de las columnas de datos de beans recuperados en cada fila del conjunto de resultados es el mismo que el orden en la sugerencia de lectura hacia adelante: un bean A, un bean B (o nulo), un bean C (o nulo) y un bean D (o nulo). Para las sugerencias en las que se menciona más de una vez la misma relación, por ejemplo, RelB.RelC;RelB.RelE, las columnas de datos de un bean aparecen sólo una vez en el conjunto de resultados, en la posición que ocupa el bean por primera vez en la sugerencia.

Las señales que aparecen en la notación, RelB, deben ser nombres de campos CMR para las relaciones, según está definido en el descriptor de despliegue del bean. En las relaciones indirectas como, por ejemplo, RelB.RelC, RelC es un nombre de campo CMR que se define en el descriptor de despliegue del bean tipo B.

Una sola sugerencia de lectura hacia adelante no puede hacer referencia al mismo tipo de bean en más de una relación. Por ejemplo, si un bean Department tiene una relación employees con el bean Employee, y también tiene una relación manager con el bean Employee, la sugerencia de lectura hacia adelante no puede especificar a la vez employees y manager.

Para obtener más información sobre cómo establecer sugerencias de lectura hacia adelante, consulte la documentación del producto Rational Application Developer.

Comportamientos de tiempo de ejecución de sugerencias de lectura hacia adelante

Cuando desarrolle sugerencias de lectura hacia adelante, tenga en cuenta las siguientes sugerencias y limitaciones:
  • Las sugerencias de lectura hacia adelante en vías de acceso largas o complejas pueden producir una consulta demasiado compleja para que sea útil. Las sugerencias de lectura hacia adelante en correlaciones de herencia raíz o de hoja necesitan una especial atención. Sume el número de tablas que puede llegar a componer una precarga de lectura hacia adelante para evaluar la complejidad de las operaciones de unión necesarias. Considere si la sentencia resultante constituye una consulta razonable para la base de datos de destino.
  • Las sugerencias de lectura hacia adelante no funcionan en los siguientes casos:
    • Vías de acceso de precarga entre relaciones de M:N
    • Vías de acceso de precarga entre relaciones recursivas de enterprise bean o relaciones recursivas de fk
    • Cuando una sugerencia de lectura hacia adelante se aplica a una sentencia SELECT FOR UPDATE que requiere una unión de tabla en una base de datos que no da soporte a la combinación de esas dos operaciones.

      Generalmente, el gestor de persistencia emite una sentencia SELECT FOR UPDATE para un bean sólo si el bean tiene un intento de acceso que fuerza políticas de bloqueo estrictas. Las políticas de bloqueo estrictas requieren sentencias SELECT FOR UPDATE para las consultas de selección de base de datos. Si el diseño de la tabla de base de datos requiere una operación de unión para ejecutar la sentencia, muchas bases de datos emitirán excepciones ya que estas bases de datos no dan soporte a uniones de tabla con sentencias SELECT FOR UPDATE. En esos casos, WebSphere Application Server no implementa una sugerencia de lectura hacia adelante. Si la base de datos proporciona ese soporte, el servidor de aplicaciones implementa las sugerencias de lectura hacia adelante configuradas.

      [AIX Solaris HP-UX Linux Windows][z/OS]DB2 Universal Database V8.2 da soporte a sentencias SELECT FOR UPDATE con uniones de tabla.


Icon that indicates the type of topic Concept topic



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