Utilizzo dell'interfaccia EXEC del contatore denominato

Sebbene tutti i valori dei contatori nominati siano tenuti internamente come numeri binari a doppia parola senza segno, l'API CICS® fornisce sia una serie di comandi fullword (COUNTER) che doubleword (DCOUNTER), che non devono essere mescolati.

È possibile utilizzare i comandi EXEC CICS per eseguire le seguenti operazioni sui contatori denominati:
DEFINIRE
Definisce un nuovo contatore con nome, impostando i valori minimo e massimo e specificando il numero corrente da cui il contatore deve partire.
DELETE
Elimina un contatore denominato dal suo pool di contatori denominati.
GET
Ottiene il numero corrente dal contatore nominato, a condizione che il numero massimo non sia già stato assegnato.

Utilizzo dell'opzione WRAP : Se il numero massimo è stato assegnato a una richiesta precedente, il contatore si trova in una condizione di contatore al limite e la richiesta fallisce, a meno che non si specifichi l'opzione WRAP. Questa opzione specifica che un contatore nella condizione di contatore al limite deve essere resettato automaticamente al suo valore minimo definito. Dopo l'azzeramento, il valore minimo viene restituito come numero corrente e il contatore viene aggiornato per la richiesta successiva.

Utilizzando l'opzione INCREMENTO : Per impostazione predefinita, un contatore nominato viene aggiornato con un incremento di 1, dopo che il server ha assegnato il numero corrente a una richiesta GET. Se si desidera più di un numero alla volta, è possibile specificare l'opzione INCREMENTO, che riserva un blocco di numeri a partire dal numero corrente. Ad esempio, se si specifica INCREMENT(50) e il server restituisce 100 025:
  • Il programma applicativo può utilizzare i numeri da 100 025 a 100 074
  • Dopo aver aggiornato il numero corrente (100 025) di 50, il numero corrente è 100 075, pronto per la richiesta successiva.
Questo esempio presuppone che l'aggiornamento del valore corrente mediante l'opzione INCREMENT(50) non superi il valore massimo di oltre 1. Se l'intervallo di numeri tra il valore corrente e il valore massimo più 1 è inferiore all'incremento specificato, la richiesta fallisce, a meno che non si specifichi anche l'opzione RIDUCI.

Utilizzo dell'opzione RIDUCI : Per evitare che una richiesta fallisca perché la gamma di numeri rimanenti è troppo limitata per soddisfare il valore di INCREMENTO (il numero corrente è troppo vicino al valore massimo), specificare l'opzione RIDUCI. Con l'opzione di riduzione, il server regola automaticamente l'incremento per consentire l'assegnazione di tutti i numeri rimanenti, lasciando il contatore nella condizione di contatore al limite.

Utilizzo di entrambe le opzioni WRAP e REDUCE : Se si specificano entrambe le opzioni, solo una è efficace a seconda dello stato del contatore:
  • Se il contatore è già al limite quando il server riceve la richiesta GET, l'opzione REDUCE non ha effetto e l'opzione WRAP viene rispettata.
  • Se il contatore non è ancora al limite quando il server riceve la richiesta GET, ma l'intervallo rimanente è troppo limitato per l'incremento, l'opzione REDUCE viene rispettata e l'opzione WRAP non ha effetto.

Utilizzo delle opzioni COMPAREMIN e COMPAREMAX : È possibile utilizzare queste opzioni per condizionare le operazioni di GET (e UPDATE) dei contatori nominati al fatto che il numero corrente sia compreso in un intervallo specificato o che sia maggiore o minore di uno dei valori di confronto specificati.

QUERY
Interroga il contatore nominato per ottenere i valori corrente, minimo e massimo. Si noti che non è possibile utilizzare più di un comando di contatore con nome in modo atomico e non si può fare affidamento sul fatto che le informazioni restituite da un comando QUERY non siano state modificate da un altro task da qualche parte nel sysplex. Nemmeno la funzione ENQ del sysplex CICS è in grado di bloccare un contatore, perché un contatore con nome potrebbe essere consultato da un programma applicativo batch utilizzando l'interfaccia CALL del contatore con nome. Se si desidera condizionare un'operazione al fatto che il valore corrente sia compreso in un certo intervallo, o sia maggiore o minore di un certo numero, utilizzare i parametri COMPAREMIN e COMPAREMAX nella richiesta.
REWIND
Riavvolge un contatore denominato che si trova nella condizione di contatore al limite, riportandolo al valore minimo definito.
UPDATE
Aggiorna il valore corrente di un contatore denominato a un nuovo valore corrente. Ad esempio, si può impostare il valore corrente sulla prossima chiave libera di un database. Come il comando GET, può essere condizionato specificando i valori COMPAREMIN e COMPAREMAX.