Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: ODBC Heap Error with Win2K and Oracle 8.1.6

Re: ODBC Heap Error with Win2K and Oracle 8.1.6

From: Christian Rodemeyer <c.rodemeyer_at_dr-staedtler.de>
Date: Fri, 17 Nov 2000 17:51:43 +0100
Message-ID: <HndR5.91$co4.1367@news.easynews.net>

<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.

>

> I've just re-tried the sample code you provided on a Win2K system and
> am still unable to see your problem. About how many iterations of the
> loop is it expected to take to see a failure?
>

> >
> > > What version of msvcrt.dll is installed on your system?
> > >
> > Version 6.1.8637.0
> >
> > Meanwhile we wrote a similar test-app with the VC-Oracle App Wizard
 and the
> > oracle database classes. We do connects and disconnects (open
 database /
> > close database) in a loop and to my astonishment no errors occur. The
 OCI
> > seems to be fine, but it is strange that the same error occurs in the
> > Microsoft Oracle ODBC Driver and the Oracle ODBC Driver.
> >
> > [...]
> > >
> > > > Does anyone know a workaround? I can't believe, that we are the
 only
 one who
> > > > use odbc to access oracle.
> > > >
> > > > A very depressed
> > > >
> > > > Christian
> > > >
> > > >
> > >
> > > --
> > > Justin Cave - Oracle ODBC Development
> > >
> > > Opinions expressed herein are my own and may not reflect those of
> > > Oracle Corporation.
> > >
> > >
> > > Sent via Deja.com http://www.deja.com/
> > > Before you buy.
> >
> >
>

> --
> Justin Cave - Oracle ODBC Development
>

> Opinions expressed herein are my own and may not reflect those of
> Oracle Corporation.
>
>

> Sent via Deja.com http://www.deja.com/
> Before you buy.

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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US