A computer implemented method for updating a data item in a server, the method comprising: reading a specific data item from a database by the server and storing said data item as a local cached copy at said server; receiving an update request for the data item on the server; verifying that the local cached copy is current with the data item stored in the database by sending a predicated update request to the database containing the data item, the predicated update request being conditional on the local cached copy being current with the data item in the database, whereby the database commits the update to the data item according to the update request if the information contained in the local cached copy at the server is the same as the information contained in the data item at the database before the update is committed, and whereby the database aborts the update to the data item if the information contained in the local copy is not the same as the information contained in the data item at the database before the update is committed receiving an update status message from the database to the server, said update status message indicating whether the data item was updated in the database as a result of the predicated update request; wherein if the update status message indicates that the data item was not updated in the database as a result of the predicated update request, the server drops the local cached copy, retrieves a new copy of the data item from the database, formulates a second predicated update request and sends the second predicated update request to the database; and whereby, as a result of the second predicated update request, the database updates the data item if the new copy is current with the data item in the database. reading a specific data item from a database by the server and storing said data item as a local cached copy at said server; receiving an update request for the data item on the server; verifying that the local cached copy is current with the data item stored in the database by sending a predicated update request to the database containing the data item, the predicated update request being conditional on the local cached copy being current with the data item in the database, whereby the database commits the update to the data item according to the update request if the information contained in the local cached copy at the server is the same as the information contained in the data item at the database before the update is committed, and whereby the database aborts the update to the data item if the information contained in the local copy is not the same as the information contained in the data item at the database before the update is committed receiving an update status message from the database to the server, said update status message indicating whether the data item was updated in the database as a result of the predicated update request; wherein if the update status message indicates that the data item was not updated in the database as a result of the predicated update request, the server drops the local cached copy, retrieves a new copy of the data item from the database, formulates a second predicated update request and sends the second predicated update request to the database; and whereby, as a result of the second predicated update request, the database updates the data item if the new copy is current with the data item in the database.