2014-09-03 1:16 GMT+02:00 Ricardo Peres <rjpe...@gmail.com>:

> Oskar,
>
> You are right, as usual! But my idea is to have a *pluggable* mechanism.
> The default, I admit, would be a bit dumb - just try... wait... retry...
> fail - but we could have more enhanced ones. Right now, all we have is an
> exception! :-)
>


I'm afraid I don't quite follow. Considering the code in PR #306, the way I
read it, that code in the default connection provider could exhibit the
failure mode described below (assuming an ADO.NET connection can go from
OPEN to CLOSED without an exception). And I don't see any retry logic?

I don't have enough time to think deeply on it, so maybe I'm missing
something.

/Oskar


On Tuesday, September 2, 2014 9:36:43 PM UTC+1, Oskar Berggren wrote:

> I'm not sure what the different failure modes are here... but here's one
>> scenario I'm thinking about:
>> * Inside non-distributed transaction.
>> * Some changes (changeset X) flushed to DB.
>> * Connection is lost.
>> * A new connection is created transparently.
>> * More changes (changeset Y) flushed to DB.
>> * Application tries to close transaction.
>>
>> Wouldn't this patch:
>> a) Loose changeset X, because the transaction was never committed and the
>> application wasn't made aware of the problem?
>> b) Get exception when trying to commit a non-existing transaction over
>> the second connection?
>> c) Permanently store changeset Y even if the exception mentioned in (b),
>> or some other exception, occurs due to lack of transaction on second
>> connection?
>>
>> /Oskar
>>
>>
>>
>>
>> 2014-08-20 23:26 GMT+02:00 Ricardo Peres <rjp...@gmail.com>:
>>
>> I see this as something to make NH more reactive to scenarios such as
>>> cloud, where connections are lost and need to be open, similar to what EF
>>> is providing. What the default implementation does is, if the connection is
>>> closed, open it. Do you see problems related to transactions with this?
>>> Obviously, this can wait for more discussion.
>>>
>>> RP
>>>
>>>
>>> On Wednesday, August 20, 2014 9:48:44 PM UTC+1, Oskar Berggren wrote:
>>>
>>>> Is this a problematic scenario that requires a solution?
>>>> How does it relate to ConnectionManager and the behavior of open/close
>>>> connection on transaction boundary? Interaction with TransactionScope -
>>>> might it cause unforeseen transaction promotions?
>>>>
>>>>
>>>> /Oskar
>>>>
>>>>
>>>>
>>>> 2014-08-20 14:27 GMT+02:00 Ricardo Peres <rjp...@gmail.com>:
>>>>
>>>> Guys,
>>>>>
>>>>> I created issue NH-3671 and added a pull request. The idea behind it
>>>>> is:
>>>>>
>>>>> - Before NHibernate issues DB operations, through calls to
>>>>> IDbCommand.ExecuteQuery, ExecuteReader or ExecuteScalar, it should call a
>>>>> new connection provider method, IConnectionProvider.EnsureConn
>>>>> ectionIsOpen
>>>>> - The base implementation in ConnectionProvider (virtual method) just
>>>>> does: if (conn.State != ConnectionState.Open) conn.Open()
>>>>> - More enhanced (aka, resilient, like NH-3607) connection provider
>>>>> implementations can retry a number of times with a delay between them
>>>>>
>>>>> I see two potential problems:
>>>>>
>>>>> - It introduces a breaking change on IConnectionProvider, because it
>>>>> adds an additional method
>>>>> - Not all DB calls can use this new method, because some dialects do
>>>>> their own calls, and they don't have a reference to the session or session
>>>>> factory from which we can get to the connection provider
>>>>>
>>>>> What are your thoughts?
>>>>>
>>>>> RP
>>>>>
>>>>>  --
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nhibernate-development" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to nhibernate-development+unsubscr...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "nhibernate-development" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to nhibernate-development+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to nhibernate-development+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nhibernate-development+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to