By default connection pooling is enabled in ado .net, so I assume it works
the same with NHibernate. We had the default number of connections.

On Fri, Feb 6, 2009 at 4:07 PM, Ayende Rahien <[email protected]> wrote:

> That is one option, certainly.
> but, do you have connection pooling enabled?
> What is the # of connections in the DB now?
>
>
> On Fri, Feb 6, 2009 at 11:04 PM, Robin Nadeau <[email protected]> wrote:
>
>> We're using SQL Server 2005. My other theory is that we simply don't have
>> enough database connections at peak periods.
>>
>>
>> On Fri, Feb 6, 2009 at 4:00 PM, Ayende Rahien <[email protected]> wrote:
>>
>>> Extremely unlikely.
>>> If this happens, then the session (and the connection) would go out of
>>> scope and would be reclaimed by the GC
>>> The finalizer should release the connection anyway.
>>>
>>> What DB are you talking about?
>>>
>>>
>>> On Fri, Feb 6, 2009 at 10:58 PM, Robin Nadeau <[email protected]>wrote:
>>>
>>>> I'm using the session-per-request pattern for nhibernate and am running
>>>> out of database connections. This takes about 1 week to occur on a heavily
>>>> loaded server, taking about 100,000 hits per day. The code I use to manage
>>>> my session is below. My theory is that the httpsession could timeout before
>>>> the EndRequest event, causing the reference to the session to be lost, and
>>>> therefore no closed. Is that even possible? If so, what can be done about
>>>> it?
>>>>
>>>> Public Class NHibernateSessionPerRequestModule
>>>>     Implements IHttpModule
>>>>
>>>>     Public Sub New()
>>>>     End Sub
>>>>
>>>>
>>>>     ' In the Init function, register for HttpApplication
>>>>     ' events by adding your handlers.
>>>>     Public Sub Init(ByVal application As HttpApplication) _
>>>>             Implements IHttpModule.Init
>>>>         AddHandler application.BeginRequest, _
>>>>             AddressOf Me.Application_BeginRequest
>>>>         AddHandler application.EndRequest, _
>>>>             AddressOf Me.Application_EndRequest
>>>>     End Sub
>>>>
>>>>     Private Sub Application_BeginRequest(ByVal source As Object, _
>>>>              ByVal e As EventArgs)
>>>>         'Fires when the request begins
>>>>         Try
>>>>             If
>>>> (HttpContext.Current.Request.Path.ToLower().IndexOf(".aspx") > -1) Then
>>>>                 Dim session As NHibernate.ISession =
>>>> StaticSessionManager.OpenSession()
>>>>                 session.BeginTransaction()
>>>>                 CurrentSessionContext.Bind(session)
>>>>             End If
>>>>         Catch ex As Exception
>>>>             Dim objLoggingController As New
>>>> AlertPay.Utilities.LoggingController
>>>>             objLoggingController.Write("Error in creating NHibernate
>>>> Session", "Information", 0, "0", "NHibernateSessionPerRequestModule")
>>>>         End Try
>>>>
>>>>
>>>>     End Sub
>>>>
>>>>     Private Sub Application_EndRequest(ByVal source As Object, _
>>>>         ByVal e As EventArgs)
>>>>
>>>>         If
>>>> (CurrentSessionContext.HasBind(StaticSessionManager.SessionFactory)) Then
>>>>             Dim session As NHibernate.ISession =
>>>> CurrentSessionContext.Unbind(StaticSessionManager.SessionFactory)
>>>>             If Not session Is Nothing Then
>>>>                 Try
>>>>                     session.Transaction.Commit()
>>>>                 Catch
>>>>                     session.Transaction.Rollback()
>>>>                     Dim objLoggingController As New
>>>> AlertPay.Utilities.LoggingController
>>>>                     objLoggingController.Write("Error in commiting
>>>> NHibernate Session. Rolling back transaction", "Information", 0, "0",
>>>> "NHibernateSessionPerRequestModule")
>>>>                 Finally
>>>>                     If session.IsOpen Then
>>>>                         session.Close()
>>>>                     End If
>>>>                 End Try
>>>>             End If
>>>>         End If
>>>>
>>>>
>>>>
>>>>     End Sub
>>>>
>>>>     Public Sub Dispose() Implements System.Web.IHttpModule.Dispose
>>>>     End Sub
>>>>
>>>> End Class
>>>>
>>>>
>>>> --
>>>> Robin Nadeau, B.Eng.
>>>> Software Developer
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>> --
>> Robin Nadeau, B.Eng.
>> Software Developer
>>
>>
>>
>
> >
>


-- 
Robin Nadeau, B.Eng.
Software Developer

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to