Error case: actuator changes object not locked
t	X			Y
-----------------------------------------------------------
1	connect			connect
2	BEGIN NOLOCK		BEGIN NOLOCK
3	LOCK O1, O2, O3		LOCK O4, O5, O6
4	COMMIT
5	commit in progress	COMMIT (blocks...)
6	actuator changes O4 <---------------------------------ERROR!!
7	commit finishes
8				commit in progress
9				commits change to O4

can we solve this by not allowing actuators to initiate subtransactions?


Error case: client circumvents lock
t	X			Y
----------------------------------------------------------
1	connect			connect
2	BEGIN NOLOCK		BEGIN NOLOCK
3	SET O1.prop		
4				LOCK O1
5	SET o1.prop2
6	COMMIT			set O1.prop
7	commit in progress	...
8	commits O1 change <----------------------------------ERROR!!
9	commit finishes		COMMIT (blocks)

this could be a case of "Don't do that".  Otherwise having SET check if the
object is locked may be the way to get past this.

