+

Search Tips   |   Advanced Search

Example: Forcing OCC data collisions and JDBC mediator exceptions


The following example forces a collision to demonstrate detection and shows the exception that occurs as a result.

// This example assumes that a mediator has already 

// been created and the first name in the list is Sam.  

// It also assumes that the Customer table has an OCC 

// column and the metadata has set this column to be 

// the collision column.

DataObject graph1 = mediator.getGraph(); DataObject graph2 = mediator.getGraph(); DataObject customer1 = (DataObject)graph1.getList("CUSTOMER").get(0); customer1.set("CUSTFIRSTNAME", "Bubba"); DataObject customer2 = (DataObject)graph2.getList("CUSTOMER").get(0); customer2.set("BOWLERFIRSTNAME", "Slim"); mediator.applyChanges(graph2); try { mediator.applyChanges(graph1); } catch (OCCException e) { // Since graph1 was obtained before graph2 and // graph2 has already been submitted, trying to // apply the same changes to graph1 causes // this OCC Exception. assertEquals("Sam", e.getOriginalDO(). getString("CUSTFIRSTNAME")); assertEquals("Bubba", e.getChangedDO(). getString("CUSTFIRSTNAME")); assertEquals("Slim", e.getDatabaseDO(). getString("CUSTFIRSTNAME")); }





 

Related concepts


Concurrency control

 

Related


JDBC mediator transactions