Connection Pool Issue



Hi,
I have troubles with a threaded application on W2003 server. It
seems to leave open connections behind time to time, it sums to
hundreds over a day (the application make thousands). It is using the
SQLOLEDB provider, MDAC 2.82.1830.0, SQL Server 8.00.2039 (SP4),
Windows 5.2 (3790).

I am using same connection string for all connections and Using Multi
threading. and I written code in C++.

most of them are saying i am not closing the connection properly so
here i am giving my code snippet.
For Connection Open::
try
{
//cleanup any existing open items
CloseDatabase();

//Open Connection
hres = m_pConnection.CreateInstance( __uuidof(Connection) );
if( hres == S_OK )
{
hres = m_pConnection->Open( m_strConnectionString.c_str());
if( hres == S_OK )
{
//Open recordset
hres = m_pRecordset.CreateInstance( __uuidof(Recordset) );
if( hres == S_OK )
{
bRet = true;
}
else
{
Print ("CADOBase::CreateInstance, Creating Recordset failed hr=%X\n"),
hres );
//m_pRecordset.Release();
}
}
else
{Print("CADOBase::CreateInstance, Open failed hr=%X\n"), hres ); }
}
else
{
Print("CADOBase::CreateInstance, Creating connection failed hr=%X\n"),
hres );
}
}
catch(_com_error e)
{
Print("CADOBase::CreateInstance, Exception caught Error - %X.\n"),
e.Error());
}
catch(...)
{
Print("CADOBase::CreateInstance, Unknown Exception caught hr=%X\n"),
hres );
}
return bRet;
}

********************************************************************************

For Closing:::::
try
{
if(m_pRecordset)
{
if(m_pRecordset->GetState() == adStateOpen)
{
m_pRecordset->Close();
}
m_pRecordset = NULL;
}

if(m_pConnection)
{
if(m_pConnection->GetState() == adStateOpen)
{
m_pConnection->Close();
}
m_pConnection = NULL;
}
}
catch(_com_error e)
{
Print"CADOBase::CloseDatabase, Exception caught for table Error -
%X.\n"), e.Error());
}
catch(...)
{
Print("CADOBase::CloseDatabase,Unknown Exception caught for table
moving on...\n"));
}
}

.



Relevant Pages

  • Access violation using refresher (when blocking port in Firewall)
    ... The problem only happens when we configure the Firewall in the remote ... When a WMI connection using refreshers is opened there are 2 new ports ... The port numbers change in each restart of the client. ... HRESULT hres = 0; ...
    (microsoft.public.win32.programmer.wmi)
  • Re: Connection Pool problem
    ... First question of the day is, why don't you use sql server's native provider? ... I am using same connection string for all connections and Using Multi ... if(hres == S_OK) ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: Connection Pool problem
    ... I am using same connection string for all connections and Using Multi ... and I written code in C++. ... if(hres == S_OK) ... return bRet; ...
    (microsoft.public.dotnet.framework.adonet)
  • Connection Pool problem
    ... I have troubles with a threaded application on W2003 server. ... I am using same connection string for all connections and Using Multi ... threading. ... if(hres == S_OK) ...
    (microsoft.public.dotnet.framework.adonet)
  • Connecting to WMI
    ... IWbemServices object. ... I can't get the connection to be made. ... HRESULT hres; ... If I run it and just pass in root\cimv2, the call to ConnectServer fails ...
    (microsoft.public.win32.programmer.wmi)