Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.tools -> Re: ODBC Heap Error with Win2K and Oracle 8.1.6
<jocave_at_my-deja.com> schrieb im Newsbeitrag
news:8v1g17$v6a$1_at_nnrp1.deja.com...
> In article <6dNQ5.86$co4.1173_at_news.easynews.net>,
> "Christian Rodemeyer" <c.rodemeyer_at_dr-staedtler.de> wrote:
> > > > we encounter terrible errors when using Oracle 8.1.6 with Win2K
SP1.
We have
> > > > the latest patches and the Oracle ODBC Driver 8.1.6.2 installed.
> > > >
> > > > Our application is an service with multiple connections.
Connections
will be
> > > > opened and closed, sometimes there may be more than one connection
aktive.
> > > > After closing and opening an connection, the following error
occurs
in the
> > > > VC6.0 debug output:
> > > > HEAP[T2Embedded.exe]: HEAP: Free Heap block 1de9b28 modified at
1dea544
> > > > after it was freed
> > > > The error comes from another thread, possibly the oracle driver
thread.
> > > > After that, connections work totally instable and unpredictable
odbc
errors
> > > > will be generated. You can simulate the error with the following
trivial
> > > > program:
> > > >
> > > > for (;;)
> > > > {
> > > > SQLAllocConnect(CODBC_Environment, &m_hdbc);
> > > > SQLConnect(m_hdbc, ...);
> > > > SQLDisconnect(m_hdbc);
> > > > SQLFreeConnect(m_hdbc);
> > > > Sleep(1000);
> > > > }
> > >
> > > I'm not able to reproduce this problem on my system (WinNT). Does
this
> > > problem appear only on Win2K?
> > >
> >
> > Yes, on NT4.0 SP6a it works fine.
>
>> >
> >
> > > What version of msvcrt.dll is installed on your system?
> > >
> > Version 6.1.8637.0
>
>
> >
Strange things happen. I played a little bit on the settings in the odbc-driver panel especially the driver pooling. Now I cannot reproduce the error myself! I still don't trust it ;-). But if the error did not reappear, I will be happy.
Besides, in contrast to the microsoft driver, the IsDead attribute is functionless in the oracle driver.
DWORD dw = SQL_CD_FALSE;
::SQLGetConnectAttr(m_hdbc, SQL_ATTR_CONNECTION_DEAD, &dw, 4, NULL);
return dw == SQL_CD_TRUE;
Best regards
Christian Received on Fri Nov 17 2000 - 10:51:43 CST
![]() |
![]() |