Hi Scott,
 To the database the sequence of statements will be as follows. The
statements around the read and write of sequence table are an example to
put the sequence_table work into context.

tx1       BEGIN
SELECT  blah
SELECT blah
UPDATE blah
SELECT * from sequence_table;
UPDATE sequence_table SET ids=?;
INSERT INTO blah
UPDATE blah
tx1     END
tx1     COMMIT

 The work will not be isolated from the current transaction tx1.
Concurrently running transactions will see the changes to sequence_table
depending on the isolation level set when the pool is filled.

Regards,
Jeremy

On 09/08/13 18:20, Scott Marlow wrote:
> On 08/08/2013 11:21 AM, Jeremy Whiting wrote:
>> Hi,
>>    I am looking for feedback on changes to provide the ability for work
>> to be completed in a currently running transaction. For example when a
>> TableGenerator or SequenceGenerator is being used for generating unique
>> ids. The statements that select then update the db are executed in a
>> separate transaction.
>>
>>    There is a jira for this feature.
>>
>> https://hibernate.atlassian.net/browse/HHH-8429
>>
>>    Attached to the jira is a diagram. See this link
>> https://hibernate.atlassian.net/secure/attachment/19534/hibernate-class-structure-allowing-same-tx-support.png
>>
>>
>>    This diagram shows what I currently have implemented. It shows the
>> existing classes and the new classes shaded in light blue. The methods
>> on a new class IsolationAware show how I've re-jigged most the
>> implementation from JtaTransaction to it's new ancestor IsolationAware.
>> A new concrete implementation of IsolationDelegate will negotiate the
>> work to be executed in the same running transaction.
>>    The structure splits up the factory/transaction/delegate classes into
>> two groups. "same transaction" and "separate transaction". This has only
>> been done for JtaTransaction and the same will probably be necessary for
>> CMTTransaction as it also uses a separate transaction to complete work.
>> That has been left out to keep the diagram simple.
>
> Your talking about making code changes here but I'm not following
> exactly how this new features works.  I added my questions about this
> to the jira.  When you respond there or here, could you please also
> include how this new feature depends on isolation level (if it
> requires a certain isolation level).
>
>>
>>    The option of using aggregation at the point where implementers of
>> TransactionImplementor are instantiated has been considered. Before too
>> much effort is expended coding I wondered what others thought is the
>> preferred way to implement this feature.
>>
>> Jeremy
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>

_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to