Connection Pool problem

S

sk.rasheedfarhan

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"));
}
}
 
M

Miha Markic [MVP C#]

First question of the day is, why don't you use sql server's native
provider?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top