IMS DB - Recuperación de Datos



Los distintos métodos de recuperación de datos usa en IMS DL/I, se pide son las siguientes:

  • GU Llamada
  • GN Llamada
  • Usando códigos de comando
  • Procesamiento múltiple

Consideremos la siguiente estructura de la base de datos IMS para comprender la recuperación de datos llamadas de función:

IMS DATABASE1

GU Llamada

Los fundamentos de GU llamada son los siguientes:

  • GU llamada es conocido como obtener singular llamada. Se usa para procesamiento aleatorio.

  • Si una aplicación no se actualiza la base de datos regularmente o si el número de actualizaciones de la base es menor y, a continuación, utilizamos procesamiento aleatorio.

  • GU llamada se utiliza para colocar el cursor en una determinada posición secuencial de recuperación.

  • GU las llamadas son independientes de la posición del puntero establecido por las llamadas anteriores.

  • GU procesamiento de llamadas se basa en un único campos clave suministrada en la llamada declaración.

  • Si disponemos de una campo de clave que no es único, entonces DL/I devuelve el primer segmento ocurrencia del campo clave.

CALL 'CBLTDLI' USING DLI-GU
                     PCB-NAME
                     IO-AREA
                     LIBRARY-SSA
                     BOOKS-SSA
                     ENGINEERING-SSA
                     IT-SSA

El ejemplo anterior muestra que un GU con un conjunto completo de SSAS. Incluye todos los campos clave a partir del nivel de la raíz para el segmento que queremos recuperar.

Consideraciones GU Llamada

Si no damos el conjunto completo de servicios especiales en la llamada y, a continuación, DL/I trabaja en la siguiente forma:

  • Cuando usamos un incondicional SSA en una GU llamada, DL/I accede a la primera parte de la base de datos que cumple con los criterios que usted especifique.

  • Cuando hacemos una llamada sin GU Ssa, DL/I devuelve la primera aparición del segmento raíz en la base de datos.

  • Si algunos SSA en los niveles intermedios no son mencionados en la llamada y, a continuación, DL/I utiliza la posición establecida o el valor predeterminado de un incondicional SSA en el segmento.

Códigos de estado

La tabla siguiente muestra los códigos de estado después de una GU llamada:

Código de estado Descripción
Espacios Llamada con éxito
GE DL/no he podido encontrar un segmento que cumplen con los criterios especificados en la convocatoria

GN Llamada

Los fundamentos de la GN son como sigue:

  • GN llamada se conoce como obtener el siguiente llamada. Se usa para procesamiento secuencial básico.

  • La posición inicial del puntero en la base de datos está antes de la raíz de la primera base de datos de registro.

  • La posición del puntero se base antes de que el siguiente segmento de la secuencia, después de una exitosa GN llamada.

  • El GN llamada comienza a través de la base de datos a partir de la posición establecida por la llamada anterior.

  • Si un GN llamada es incondicional, que devuelve el siguiente segmento de la base de datos independientemente de su tipo, en orden jerárquico.

  • Si la GN llamada incluye Ssa, luego DL / recupera sólo segmentos que cumplan los requisitos de SSAs todo especificados.

CALL 'CBLTDLI' USING DLI-GN
                     PCB-NAME
                     IO-AREA
                     BOOKS-SSA

El ejemplo anterior muestra que una GN llamada de la posición inicial para leer los registros secuencialmente. Busca la primera aparición de los libros.

Códigos de estado

La tabla siguiente muestra los códigos de estado después de una GN llamada:

Código de estado Descripción
Espacios Llamada con éxito
GE DL/no he podido encontrar un segmento que cumplen con los criterios especificados en la convocatoria.
GA GN llamada incondicional se sube un nivel en la jerarquía de la base para obtener el segmento.
GB Final de base de datos es alcanzado y el segmento no encontrado.
GK Una incondicional GN llamada intenta buscar un segmento de un tipo particular de uno acaba de recuperar, sino que permanece en el mismo nivel jerárquico.

Códigos de comando

Códigos de comando se utilizan las llamadas para obtener un segmento. Los diversos códigos de comando se usa con las llamadas se examinan a continuación.

F código de comando

Puntos a tener en cuenta:

  • Cuando un F código de comando es especificado en una llamada, la llamada procesa la primera ocurrencia del segmento.

  • F códigos de comando se puede utilizar cuando lo que queremos es proceso en forma secuencial y que puede ser utilizado con GN llamadas y PNB las llamadas.

  • Si especificamos un F código de comando con una GU llamada, no tiene ninguna importancia, como GU llamadas obtener el primer segmento ocurrencia de forma predeterminada.

L código de comando

Puntos a tener en cuenta:

  • Cuando un comando L código se especifica en una llamada, la llamada los procesos la última ocurrencia del segmento.

  • L códigos de comando se puede utilizar cuando queremos proceso en forma secuencial y que puede ser utilizado por GN llamadas y PNB las llamadas.

D código de comando

Puntos a tener en cuenta:

  • D código de comando se utiliza para obtener más de una serie de sesiones las ocurrencias tan sólo utilizando una sola llamada.

  • Normalmente DL/I funciona en el nivel más bajo en un segmento SSA, pero en muchos casos, queremos datos de otros niveles. En esos casos, podemos utilizar el comando D código.

  • D código de comando hace fácil recuperación de todo el camino de los segmentos.

C código de comando

Puntos a tener en cuenta:

  • C código de comando se utiliza para concatenar las llaves.

  • Utilizando operadores relacionales es un poco complejo, ya que debemos especificar un nombre de campo, un operador relacional, y un valor de búsqueda. En su lugar, se puede usar un código de comando C para proporcionar una clave concatenada.

El siguiente ejemplo muestra el uso de C código de comando:

01 LOCATION-SSA.
   05 FILLER		     PIC X(11) VALUE ‘INLOCSEG*C(‘.
   05 LIBRARY-SSA      PIC X(5).
   05 BOOKS-SSA        PIC X(4).
   05 ENGINEERING-SSA  PIC X(6).
   05 IT-SSA           PIC X(3)
   05 FILLER		     PIC X	VALUE ‘)’.

CALL 'CBLTDLI' USING DLI-GU
                     PCB-NAME
                     IO-AREA
                     LOCATION-SSA

P código de comando

Puntos a tener en cuenta:

  • Cuando emitimos una GU o GN llamada, el DL/I establece su ascendencia en el nivel más bajo que se recupera.

  • Si incluimos un comando P código y, a continuación, el DL/I establece su filiación a un nivel superior en la vía jerárquica.

U código de comando

Puntos a tener en cuenta:

  • Cuando un código de comando se especifica en un incondicional de la SSA GN llamada, el DL/I restringe la búsqueda para el segmento.

  • U código de comando se omite si se utiliza con un calificado SSA.

V código de comando

Puntos a tener en cuenta:

  • V código de comando funciona de forma similar a la U código de comando, pero restringe la búsqueda de un segmento en un determinado nivel y todos los niveles por encima de la jerarquía.

  • V código de comando es ignorado cuando se usa con un SSA.

Q código de comando

Puntos a tener en cuenta:

  • Q código de comando se utiliza para poner en cola o reservar un segmento para el uso exclusivo de su programa de aplicación.

  • Q código de comando se utiliza en un entorno interactivo donde otro programa podría realizar un cambio en un segmento.

Procesamiento múltiple

Un programa puede tener varias posiciones en la base de datos de IMS que es lo que se conoce como procesamiento múltiple. Procesamiento múltiple puede realizarse de dos formas:

  • Varios PCB
  • Varios Posicionamiento

Varios PCB

Varios pcb puede ser definida para una sola base de datos. Si hay varios pcb, a continuación, un programa de aplicación puede tener distintas opiniones de la misma. Este método de aplicación procesamiento múltiple es eficaz porque los gastos generales impuestas por el extra.

Varios Posicionamiento

Un programa puede mantener varias posiciones en una base de datos mediante una sola placa. Esto se logra manteniendo una posición distinta para cada ruta jerárquica. Varios posicionamiento se utiliza para acceder a segmentos de dos o más tipos secuencialmente en el mismo tiempo.

Advertisements