«

»

Gen 20

PHP – Abilitare il supporto alle transazioni con estensione ibm_db2 su Zend Server for IBMi

Zend Server for IBMi viene ormai fornito come prodotto pre-installato su ogni nuovo Power System con IBMi OS; ciò significa che ogni programmatore può facilmente cominciare a utilizzare il PHP sul suo AS/400 senza preoccuparsi di installare e configurare software aggiuntivo. Non è detto però che le configurazioni pre-caricate da chi ha installato la macchina siano automaticamente compatibili con le nostre esigenze.

I programmatori che si appassionano di PHP e decidono di volerlo utilizzare per interagire con il DB2 for I, con molta probabilità utilizzeranno l’estensione IBM_DB2 presente di default nello Zend Server for I piuttosto che la PDO_IBM. Si può dire che con qualche “workaround” la IBM_DB2 è ormai completamente compatibile con l’adapter DB2 dello Zend Framework 1 e supporta anche delle funzionalità specifiche per IBM i (naming system, library list, opzioni di commit avanzate etc. per questo vi rimando alla documentazione della funzione db2_connect; consiglio di cercare nella pagina il termine “i5” per trovare le proprietà e le funzioni specifiche per DB2 for I).

Esigenza comune è quella di creare programmi che fanno uso delle transazioni per garantire l’integrità e la consistenza dei dati e problematica altrettanto comune è quella di scoprire dopo tempo che un eventuale db2_rollback presente nel codice non da i risultati attesi.

Questo può succedere poichè, almeno fino alla versione 5.6 dello Zend Server for I, il commitment è “disabilitato” di default e quindi le istruzioni db2_autocommit o db2_rollback vengono ignorate senza dar particolari notifiche.

Per controllare e/o attivare il commitment a livello globale (come nella stra grande maggioranza dei casi, credo, dovrebbe essere!) andate nel pannello di gestione dello Zend Server all’indirizzo:

http://ip_as_400:10088/

loggatevi e posizionatevi nella tab Server Setup e nella sotto tab directives e cercate il gruppo ibm_db2;

verificate che la proprietà ibm_db2.i5_allow_commit sia impostata con il valore allow_commit altrimenti cambiatelo e premete sul pulsante in alto a destra Save Changes.

Infine riavviate il PHP con il pulsante in basso a destra.

Schermata 01-2456313 alle 01.29.32

Eseguendo di nuovo il vostro script vi accorgerete che tutto funziona correttamente.

Buon PHP su IBM i

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>