Re: Imports

From: Malcolm Edgar (malcolm.edga..mail.com)
Date: Sun Mar 09 2008 - 16:16:00 EDT

  • Next message: Borut Bolčina: "3-tier architecture"

    Hi Andrus,

    I was experimenting with a TransactionFilter, which like the
    DataContextFilter was trying to provide a carefree transaction around
    web requests. I see that this is not going to work with transactions
    as they are bound to resources. The use case was handling the
    situation where the application code had not performed a commit, e.g.
    a query operation.

    regards Malcolm Edgar

    On Mon, Mar 10, 2008 at 4:45 AM, Andrus Adamchik <andru..bjectstyle.org> wrote:
    > BTW, if there's no commit or rollback, and the transaction stays open
    > indefinitely, this would result in quick connection pool exhaustion.
    > So why would you do that?
    >
    > Andrus
    >
    >
    >
    >
    > On Mar 9, 2008, at 7:19 PM, Andrus Adamchik wrote:
    > > This could be a DB artifact. E.g. with MySQL MyISAM tables. Which DB
    > > are you using?
    > >
    > > Andrus
    > >
    > > On Mar 8, 2008, at 5:53 AM, Malcolm Edgar wrote:
    > >
    > >> I have been playing around this in a web context, and what I am
    > >> finding with a user created Transaction, if the DataContext commits
    > >> the changes, unless the Transaction explicitly performs a rollback
    > >> the
    > >> changes will be committed to the database.
    > >>
    > >> This is not what I was expecting, but I am wondering if this is an
    > >> artifact of the thread pool, ie maybe the same thread is coming back
    > >> of the pool.
    > >>
    > >> regards Malcolm Edgar
    > >>
    > >> On Tue, Feb 19, 2008 at 8:31 PM, Malcolm Edgar <malcolm.edga..mail.com
    > >> > wrote:
    > >>> Great! Thanks for that.
    > >>>
    > >>> regards Malcolm Edgar
    > >>>
    > >>>
    > >>>
    > >>> On Feb 19, 2008 11:18 AM, Andrus Adamchik <andru..bjectstyle.org>
    > >>> wrote:
    > >>>> Just use your own transactions, then 'commitChanges' turns into
    > >>>> 'flush':
    > >>>>
    > >>>> http://cayenne.apache.org/doc/understanding-transactions.html
    > >>>>
    > >>>> Andrus
    > >>>>
    > >>>>
    > >>>> On Feb 18, 2008, at 7:49 AM, Malcolm Edgar wrote:
    > >>>>
    > >>>>> Hi Ari,
    > >>>>>
    > >>>>> thanks for the response. This would be a very good 3.0 feature
    > >>>>> if it
    > >>>>> is not already present.
    > >>>>>
    > >>>>> In Hibernate this functionality is performed as a flush operation,
    > >>>>> where CRUD operations are performed against the transaction but
    > >>>>> are
    > >>>>> not actually committed.
    > >>>>>
    > >>>>> Would this would cause issues with Cayenne PK generation
    > >>>>> strategy, are
    > >>>>> the highest/last table id values they maintained in memory?
    > >>>>>
    > >>>>> regards Malcolm Edgar
    > >>>>>
    > >>>>> On Feb 18, 2008 3:16 PM, Aristedes Maniatis <ar..sh.com.au>
    > >>>>> wrote:
    > >>>>>>
    > >>>>>> On 18/02/2008, at 2:07 PM, Malcolm Edgar wrote:
    > >>>>>>
    > >>>>>>> Is there a way in Cayenne, possibly using Transactions, that
    > >>>>>>> we can
    > >>>>>>> perform this import, do inserts and queries against the
    > >>>>>>> transaction
    > >>>>>>> and only commit/rollback at the end?
    > >>>>>>
    > >>>>>> Subclass the Cayenne context, override performQuery and add in
    > >>>>>> your
    > >>>>>> own custom code there to look for new objects within the context?
    > >>>>>> There is almost certainly a way to have a database transaction
    > >>>>>> cross
    > >>>>>> several Cayenne commits as well, but I can't assist there.
    > >>>>>>
    > >>>>>> In fact we've done this several times in our application and I
    > >>>>>> was
    > >>>>>> just thinking the other day whether this might be an option in
    > >>>>>> a new
    > >>>>>> generified performQuery and might be useful to be pushed into
    > >>>>>> Cayenne.
    > >>>>>>
    > >>>>>>
    > >>>>>> Ari Maniatis
    > >>>>>>
    > >>>>>>
    > >>>>>> -------------------------->
    > >>>>>> ish
    > >>>>>> http://www.ish.com.au
    > >>>>>> Level 1, 30 Wilson Street Newtown 2042 Australia
    > >>>>>> phone +61 2 9550 5001 fax +61 2 9550 4001
    > >>>>>> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49
    > >>>>>> 102A
    > >>>>>>
    > >>>>>>
    > >>>>>>
    > >>>>>
    > >>>>
    > >>>>
    > >>>
    > >>
    > >
    > >
    >
    >



    This archive was generated by hypermail 2.0.0 : Sun Mar 09 2008 - 16:16:35 EDT