Categories: 01 - Programmazione

QUANDO LA QTEMP NON BASTA

Chi sviluppa applicazioni IBM i conosce molto bene la libreria QTEMP, la libreria temporanea che il sistema crea e distrugge automaticamente per ogni lavoro. Ma non sempre può essere usata; per esempio, il comando RTVDIRINF (Richiamo informazioni indirizzario) non accetta la libreria QTEMP; oppure, in certe applicazioni particolari c’è bisogno di creare degli oggetti temporanei che però devono essere condivisi con altre applicazioni. Può essere quindi utile avere delle alternative alla QTEMP. Vediamone alcune.

La directory /tmp è una directory che può essere usata per creare dei stream file temporanei. Se decidete di usare /tmp è importante sapere che la utility Unix clrtmp pulisce la directory /tmp cancellando tutti i file presenti. In altri sistemi, la directory /tmp viene pulita ogni volta che il sistema viene avviato; in IBM i, la directory /tmp non viene pulita all’avvio del sistema, quindi bisogna eseguire il comando ‘QSH CMD(clrtmp)’ nel programma di avvio specificato dal valore di sistema QSTRUPPGM per pulire la directory /tmp immediatamente dopo IPL, l’unico momento in cui abbiamo la certezza che nessun file è usato. Prima di creare dei file nella directory /tmp bisogna pensare ad un metodo per evitare che i lavori si pestino i piedi tra di loro; una buona soluzione è quella di creare i file in una sub directory con il nome qualificato del lavoro, per esempio ‘/tmp/[job-user]/[job-name]/[job-number]’ avendo cura di cancellarla alla fine del lavoro con il comando RMVDIR (Rimozione indirizzario) perché, a differenza della libreria QTEMP, la directory /tmp non è legata al lavoro, quindi sappiate che i file creati in /tmp sono a disposizione di tutti gli utenti in possesso di adeguata autorizzazione.

Analogamente alla directory /tmp, potrebbe essere comodo creare uno schema temporaneo per ogni lavoro in cui creare degli oggetti temporanei. Anche in questo caso il nome qualificato del lavoro ci aiuta ad avere una buona univocità, quindi possiamo creare lo schema con l’istruzione SQL ‘CREATE SCHEMA xxxxx_[job-user]_[job-name]_[job-number]’ dove xxxxx è un prefisso dedicato a questi schema, a cui il sistema assegna automaticamente il nome libreria ‘xxxxxnnnnn’ dove nnnnn è un progressivo da 00001 a 99999 gestito dal sistema. Il nome della libreria può essere facilmente reperito con l’istruzione SQL ‘GET DIAGNOSTICS CONDITION 1 :[host-variable] = MESSAGE_TEXT’ eseguita dopo la creazione dello schema, che restituisce il messaggio ‘Schema xxxxxnnnnn creato’. Al termine del lavoro è buona regola cancellare lo schema con l’istruzione ‘DROP SCHEMA’ per non correre il rischio di superare le 99999 librerie e nel programma QSTRUPPGM inserire il comando ‘DLTOBJ OBJ(QSYS/xxxxx*) OBJTYPE(*LIB)’.

Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

Recent Posts

Gestione dei file video bloccati su IBM i: una soluzione efficace

Riceviamo e pubblichiamo ben volentieri questo "tip & trick" di Patrick Rizzi che presenta una tecnica che permette di intervenire…

2 settimane ago

Monitoraggio Messaggi QSYSOPR: SQL per Ottenere Messaggi e Reply

Prendo spunto da una risposta di Michael Mayer sulle mailing list di Midrange.com a chi chiedeva come monitorare i messaggi…

2 settimane ago

Perché l’ERP è la Chiave del Successo per le Imprese Moderne

Le imprese sono sempre più alla ricerca di strumenti che possano migliorare l'efficienza, la collaborazione e la gestione delle risorse.…

2 mesi ago

ACS Access Client Solution 1.1.9.5

I primi di Aprile è uscita la "Spring Version" di ACS Access Client Solution, versione 1.1.9.5 Interessanti novità soprattutto in…

7 mesi ago

Tim Rowe and Scott Forstie – Promo video for CEC 2024 – Milan

Se non vi bastava la ricca agenda delle sessioni del Common Europe Congress 2024, 3-6 Giugno Milano, ecco un altro…

7 mesi ago

Code for IBM i 2.10.0 – Debug IBM i con Visual Studio Code

Le funzioni di debug con Visual Studio Code sono disponibili da qualche tempo ma questa nuova versione 2.10.0 semplifica la…

7 mesi ago