IMS DB – recuperación de datos

Las llamadas IMS DL / I utilizan los siguientes métodos diferentes de recuperación de datos:

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

Echemos un vistazo a la siguiente estructura de la base de datos IMS para comprender las llamadas a la función de recuperación de datos:

BASE DE DATOS IMS1

Llamada GU

Los conceptos básicos para llamar a GU son los siguientes:

  • La llamada GU se conoce como llamada Get Unique. Se utiliza para procesamiento aleatorio.

  • Si la aplicación no actualiza la base de datos con regularidad o el número de actualizaciones de la base de datos es menor, utilizamos el procesamiento aleatorio.

  • La llamada GU se utiliza para colocar el puntero en una posición específica para una búsqueda secuencial adicional.

  • Las llamadas GU son independientes de la posición del puntero establecida por llamadas anteriores.

  • El procesamiento de la llamada GU se basa en campos clave únicos especificados en la declaración de la llamada.

  • Si proporcionamos un campo clave que no es único, DL / I devuelve la primera aparición del segmento 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 estamos haciendo una llamada GU, proporcionando el conjunto completo de SSA calificados. Incluye todos los campos clave desde el nivel raíz hasta la entrada del segmento que queremos recuperar.

Directrices para llamar a GU

Si no proporcionamos un conjunto completo de SSA calificados en la llamada, entonces DL / I funciona de la siguiente manera:

  • Cuando usamos un SSA no calificado en una llamada GU, DL / I se refiere a la primera aparición de un segmento en la base de datos que coincide con los criterios que especificó.

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

  • Si algunos SSA en las capas intermedias no se mencionan en la llamada, entonces DL / I usa la posición establecida o el SSA no calificado por defecto para el segmento.

Códigos de estado

La siguiente tabla muestra los códigos de estado correspondientes después de llamar a GU –

S. No Código de estado y descripción
uno

Espacios

Llamada exitosa

2

GE

DL / No pude encontrar un segmento que coincida con los criterios especificados en la llamada

Llamada GN

Los conceptos básicos de la llamada GN son los siguientes:

  • La llamada GN se conoce como llamada Get Next. Se utiliza para el procesamiento secuencial básico.

  • La posición inicial del puntero en la base de datos es antes del segmento raíz del primer registro en la base de datos.

  • La posición del puntero de la base de datos antes de ingresar al siguiente segmento en la secuencia después de una llamada exitosa a GN.

  • La llamada GN se inicia a través de la base de datos desde la posición establecida por la llamada anterior.

  • Si la llamada a GN no está calificada, devuelve la siguiente aparición del segmento en la base de datos independientemente de su tipo en el orden jerárquico.

  • Si la llamada GN incluye SSA, entonces DL / I recupera solo aquellos segmentos que cumplen con los requisitos de todos los SSA especificados.

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

El ejemplo anterior muestra que estamos haciendo una llamada GN que proporciona una posición inicial para leer registros secuencialmente. Selecciona la primera aparición del segmento LIBROS.

Códigos de estado

La siguiente tabla muestra los códigos de estado correspondientes después de llamar a GN –

S. No Código de estado y descripción
uno

Espacios

Llamada exitosa

2

GE

DL / No pude encontrar un segmento que coincida con los criterios especificados en la llamada.

3

Georgia

La llamada no calificada de GN sube un nivel en la jerarquía de la base de datos para recuperar el segmento.

cuatro

GB

Se llegó al final de la base de datos y no se encontró el segmento.

G K

Una llamada no calificada GN intenta obtener un segmento de cierto tipo, diferente al que se acaba de recibir, pero permanece en el mismo nivel jerárquico.

Códigos de comando

Los códigos de comando se utilizan con llamadas para obtener la ocurrencia de un segmento. Los diversos códigos de comando utilizados con las invocaciones se analizan a continuación.

Código de comando F

En una nota –

  • Cuando se especifica el código de comando F en la llamada, la llamada procesa la primera aparición del segmento.

  • Los códigos de comando F se pueden usar cuando queremos procesar secuencialmente, y se pueden usar con llamadas GN y llamadas GNP.

  • Si especificamos el código de comando F con una llamada a GU, no tiene significado, ya que por defecto GU llama a la recuperación de la primera aparición del segmento.

Código de comando L

En una nota –

  • Cuando se especifica el código de comando L en la llamada, la llamada procesa la última aparición del segmento.

  • Los códigos de comando L se pueden usar cuando queremos procesar secuencialmente, y se puede usar con llamadas GN y llamadas GNP.

Código de comando D

En una nota –

  • El código de comando D se usa para obtener más de una ocurrencia de un segmento con una sola llamada.

  • Normalmente, DL / I trabaja con el segmento de capa inferior especificado en la SSA, pero en muchos casos también necesitamos datos de otras capas. En estos casos, podemos usar el código de comando D.

  • El código de comando D facilita la búsqueda de la ruta completa de los segmentos.

Código de comando C

En una nota –

  • El código de comando C se usa para combinar teclas.

  • El uso de operadores relacionales es un poco complicado, ya que necesitamos proporcionar un nombre de campo, un operador relacional y un valor de búsqueda. En su lugar, podemos usar el código de comando C para proporcionar la clave combinada.

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

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

Código de comando P

En una nota –

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

  • Si incluimos el código de comando P, entonces DL / I establece su origen en el segmento de nivel superior en la ruta jerárquica.

Código de comando U

En una nota –

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

  • El código de comando U se ignora si se usa con un SSA calificado.

Código de comando V

En una nota –

  • El código de comando V funciona igual que el código de comando U, pero restringe la búsqueda de segmentos a un nivel específico y en todos los niveles por encima de la jerarquía.

  • El código de comando V se ignora cuando se usa con un SSA calificado.

Código de comando Q

En una nota –

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

  • El código de comando Q se utiliza en un entorno interactivo donde otro programa puede realizar cambios en el segmento.

Procesamiento múltiple

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

  • Varias placas de circuito impreso
  • Posicionamiento múltiple

Varias placas de circuito impreso

Se pueden definir varios tableros para una base de datos. Si hay varias placas de circuito impreso, el programa de aplicación puede tener diferentes ideas al respecto. Este método de implementación de procesamiento múltiple es ineficaz debido a la sobrecarga asociada con placas de circuito impreso adicionales.

Posicionamiento múltiple

El programa puede mantener múltiples posiciones en la base de datos usando una sola PCB. Esto se logra manteniendo una posición separada para cada ruta jerárquica. El posicionamiento múltiple se utiliza para acceder secuencialmente a segmentos de dos o más tipos al mismo tiempo.

🚫