sabato 22 maggio 2010

Utilizzare vecchi programmi in Cobol (modulo Isam.exe) su Windows Vista e Windows 7. Compatibilità tra vecchie applicazioni ereditate e nuovi SO

Ieri un carissimo utente ha richiesto il mio aiuto per un problema urgente. Visto che realmente lo era, non perdo tempo e aggiorno il sito sperando di aiutare qualcuno di voi.

L'emergenza era la seguente. Un utente usa da tempo un vecchio programma scritto in Cobol - Common Business-Oriented Language (uno dei primi linguaggi di programmazione ad essere stato sviluppato). Naturalmente per poterlo utilizzare sui più moderni sistemi operativi, è richiesto un artificio. L'applicazione viene lanciata grazie ad un eseguibile "Setver.exe" collocato all'interno della cartella System32 di Windows.

Il comando "Setver.exe" serve per risolvere i problemi di incompatibilità tra alcuni programmi, che chiedono una versione specifica del Dos, per funzionare correttamente, ed i sistemi operativi più recenti. In parole spicciole serve per ingannare i programmi e fargli credere di operare nel loro ambiente naturale. Infatti i programmatori avevano l'abitudine di vincolare i loro programmi ad una versione specifica del sistema corrente. In questo modo le utenze erano costrette a richiedere degli aggiornamenti previo pagamento di un certo corrispettivo.

Il file "Setver.exe" gestisce le Isam: Indexed Sequential Access Method (metodo di accesso sequenziale indicizzato). Si tratta di un modo per immagazzinare dati da estrarre rapidamente. Sviluppato originariamente da IBM, costituisce oggi la base per l'immagazzinamento dei dati in molti database, relazionali e non.

In un sistema Isam i dati sono divisi in record di lunghezza fissa e registrati in sequenza.

Le ricerche sui dati avvengono attraverso un insieme di tabelle Hash nelle quali son presenti i puntatori ai record. In questo modo l'accesso ai dati può avvenire in maniera casuale e non è necessario scorrere tutte le volte l'intero archivio.

Questa segmentazione del database ha un altro vantaggio. E' possibile modificare i dati presenti nell'archivio senza dover eventualmente riscrivere l'intero contenuto o modificare le tabelle Hash di indicizzazione.

E' proprio l'eseguibile "Setver.exe" che prende in giro il programma Isam simulando un ambiente Ms-Dos (nella sua versione specifica). Nel caso del mio utente per far funzionare il programma è necessario (solo per la prima volta) editare il file "Config.nt" modificando la riga File=40 in Files=60 e poi si deve aggiungere alla riga sottostante la frase - Device="C:\Windows\System32\setver.exe". In fine per avviare il programma basta impartire il comando "Setver Isam.exe 3.30".


Una possibile soluzione è quella di impostare l'interfaccia a linea di comando in modalità compatibilità. La funzione "Modalità compatibilità" la trovate tranquillamente in Vista e Windows 7 (Cliccate con il tasto destro del mouse sul programma -> selezionate l'opzione Proprietà dal menù contestuale -> accedete alla scheda "Compatibilità" -> selezionate il box che riporta la voce "Esegui il programma in modalità compatibilità per", nella sezione “Modalità compatibilità” -> nel menù a tendina potrete scegliere tra diversi sistemi operativi precedenti. Da Windows 95 a Windows Vista Service Pack 2). Selezionate il sistema che vi garantiva l'uso del vecchio programma e riavviate il computer.
Io ho risolto in questo modo.

Se non dovesse andarvi bene, a questo punto potreste avvalervi di un programma di virtualizzazione, per ricreare il vecchio ambiente di lavoro all'interno del nuovo sistema operativo.

1 commento:

  1. Ho questo problema con win7 . Sembra che setver abbia successo ma poi non lo carica al riavvio

    RispondiElimina

Vi ringrazio per le email ed i commenti di stima ed apprezzamento. Mi scuso in anticipo se non riesco a ringraziarvi tutti di cuore! Alessandro.

Per lasciare velocemente un commento, cliccate su [Seleziona profilo..] e poi su [Nome/URL]. Potete anche non inserire un indirizzo internet e mettere solo il nome :)