@Test public void canAcquireReadLock() { // when placeboTx.acquireReadLock( resource ); // then verify( locks ).acquireSharedNodeLock( resource.getId() ); }
tx.acquireReadLock( node ); nodeLockAcquired.set( true ); lockerPause.await();
@Procedure(mode = Mode.READ, name = "apoc.lock.read.rels") @Description("apoc.lock.read.rels([relationships]) acquires a read lock on the given relationship") public void readLocksOnRels(@Name("rels") List<Relationship> rels) { try (Transaction tx = db.beginTx()) { for (Relationship rel : rels) { tx.acquireReadLock(rel); } tx.success(); } } }
@Procedure(mode = Mode.READ, name = "apoc.lock.read.nodes") @Description("apoc.lock.read.nodes([nodes]) acquires a read lock on the given nodes") public void readLockOnNodes(@Name("nodes") List<Node> nodes) { try (Transaction tx = db.beginTx()) { for (Node node : nodes) { tx.acquireReadLock(node); } tx.success(); } }
@Procedure(mode = Mode.WRITE) @Description("apoc.lock.all([nodes],[relationships]) acquires a write lock on the given nodes and relationships") public void all(@Name("nodes") List<Node> nodes, @Name("rels") List<Relationship> rels) { try (Transaction tx = db.beginTx()) { for (Node node : nodes) { tx.acquireWriteLock(node); } for (Relationship rel : rels) { tx.acquireReadLock(rel); } tx.success(); } } @Procedure(mode = Mode.WRITE)
private void acquireLock(LockType lockType, PropertyContainer element) { GraphDatabaseService graphDb = element.getGraphDatabase(); if ( lockType == LockType.READ) { Transaction tx = getCurrentTransaction(graphDb); tx.acquireReadLock(element); //graphDatabase.getLockManager().getReadLock( baseNode ); //graphDatabase.getLockReleaser().addLockToTransaction( baseNode, LockType.READ ); } else { // default to write lock if read locks unavailable element.removeProperty("___dummy_property_to_acquire_lock___"); } }
private void acquireLock(LockType lockType, PropertyContainer element) { GraphDatabaseService graphDb = element.getGraphDatabase(); if ( lockType == LockType.READ) { Transaction tx = getCurrentTransaction(graphDb); tx.acquireReadLock(element); //graphDatabase.getLockManager().getReadLock( baseNode ); //graphDatabase.getLockReleaser().addLockToTransaction( baseNode, LockType.READ ); } else { // default to write lock if read locks unavailable element.removeProperty("___dummy_property_to_acquire_lock___"); } }