I guess I don't mind looking like a dumbass... I don't understand how this works yet. I'd really appreciate a detailed explanation of what happens when 2 threads/transactions simultaneously access one entity. I'd like to know what state the jboss "entity values" are in and what state the database is in at all points of such an interaction.
Thanks david jencks On 2002.12.26 12:07:12 -0500 Hunter Hillegas wrote: > I don't mean to sound like a dumbass, but is there anywhere that explains > what scenarios optimistic locking is best for (i.e. a place I can figure > out > if I should use it)? > > Thanks, > Hunter > > > From: Alex Loubyansky <[EMAIL PROTECTED]> > > Reply-To: [EMAIL PROTECTED] > > Date: Thu, 26 Dec 2002 18:12:36 +0200 > > To: David Jencks <[EMAIL PROTECTED]> > > Subject: Re[2]: [JBoss-user] Optimistic locking ported to JBoss-3.2 > > > > DJ> Can you please explain how this implementation uses transactions > and what > > DJ> transaction isolation settings it requires or assumes? > > > > When transaction/new transaction comes, JDBCOptimisticLock locks > > fields and their values depending on the strategy used. Fields and > > field values are locked per each tx. > > > > For version columns and field group strategies, fields that are used > > in locking and their values are locked when tx reaches entity. > > > > For read and modified strategies, when tx reaches entity, all > > entitie's field values are locked but not the fields itself. Later, > > when a field is read/modified the field is actually locked. > > > > DJ> Does this > > DJ> implementation result in each JBoss jta transaction getting its own > copy > > of > > DJ> any entity it accesses? > > > > Here you caught me... it occurs it's not so great. > > Using "Standard CMP 2.x EntityBean" container entities are shared > > between transactions. So, if some tx changes some field, another tx > > will see it. > > Using "Instance Per Transaction 2.x EntityBean" doesn't solve it > > either. > > > > DJ> Is it possible to setup optimistic locking without useing any extra > checks > > DJ> or fields on a database such as firebird that natively supports > aptimistic > > DJ> locking through versioning? > > > > No, no vendor support for now. > > > > Thanks, > > alex > > > > DJ> (On Firebird with Jaybird driver, setting isolation to Repeatable > Read > > DJ> results in each transaction getting a snapshot of the database. If > one > > DJ> transaction tries to modify a record already modified by another > > DJ> transaction, you get an exception. It is also possible to > configure so > > the > > DJ> 2nd transaction waits for the first to complete before deciding > whether to > > DJ> throw an exception.) > > > > DJ> Thanks! > > > > DJ> david jencks > > > > > > DJ> On 2002.12.26 03:50:57 -0500 Alex Loubyansky wrote: > >>> To setup optimistic locking, container configuration element > >>> locking-policy should be set to > >>> <locking-policy>org.jboss.ejb.plugins.lock.JDBCOptimisticLock</locking-polic > >>> y> > >>> and entity element in jbosscmp-jdbc.xml should have > optimistic-locking > >>> element. > >>> > >>> Following are the possible configurations of optimistic-locking > element: > >>> 1. Fixed group of fields that will be used for optimistic locking. > >>> <optimistic-locking> > >>> <group-name>optimisticLockingGroup</group-name> > >>> </optimistic-locking> > >>> where optimisticLockingGroup is one of the entity's > load-group-name's. > >>> > >>> 2. Modified strategy. The fields that were modified during > transaction > >>> will be used for optimistic locking. > >>> <optimistic-locking> > >>> <modified-strategy/> > >>> </optimistic-locking> > >>> > >>> 3. Read strategy. The fields that were read during transaction will > be > >>> used for optimistic locking. > >>> <optimistic-locking> > >>> <read-strategy/> > >>> </optimistic-locking> > >>> > >>> 4. Version (counter) column strategy. Additional version (counter) > >>> field of type java.lang.Long will be added to entity which > >>> will be used for optimistic locking. Each update of the entity will > >>> increase the value of its version field by 1. > >>> <optimistic-locking> > >>> <version-column/> > >>> <field-name>versionField</field-name> > >>> <column-name>ol_version</column-name> > >>> <jdbc-type>INTEGER</jdbc-type> > >>> <sql-type>INTEGER(5)</sql-type> > >>> </optimistic-locking> > >>> > >>> 5. Timestamp column strategy. Additional timestamp column field of > >>> type java.util.Date will be added to entity which will be > >>> used for optimistic locking. Each update of the entity will set the > >>> value of its timestamp field to the current time. > >>> <optimistic-locking> > >>> <timestamp-column/> > >>> <field-name>timestampField</field-name> > >>> <column-name>ol_timestamp</column-name> > >>> <jdbc-type>TIMESTAMP</jdbc-type> > >>> <sql-type>DATETIME</sql-type> > >>> </optimistic-locking> > >>> > >>> 6. Version column generated by KeyGenerator. Additional field will be > >>> added to entity that will be used for optimistic locking. Each update > >>> of the entity will update its version column with value generated by > >>> KeyGenerator. > >>> <optimistic-locking> > >>> <key-generator-factory>UUIDKeyGeneratorFactory</key-generator-factory> > >>> <field-type>java.lang.String</field-type> > >>> <field-name>uuidField</field-name> > >>> <column-name>ol_uuid</column-name> > >>> <jdbc-type>VARCHAR</jdbc-type> > >>> <sql-type>VARCHAR(32)</sql-type> > >>> </optimistic-locking> > >>> > >>> alex > > > > > > -- > > Best regards, > > Alex Loubyansky > > > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > JBoss-user mailing list > > [EMAIL PROTECTED] > > https://lists.sourceforge.net/lists/listinfo/jboss-user > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > JBoss-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-user > > ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user