Re: ORAOLEDB Trace File - what does it mean ?

From: Bob Beauchemin <bobb_at_develop.com>
Date: Fri, 4 Jan 2002 08:14:50 -0800
Message-ID: <#FJchrTlBHA.2156_at_tkmsftngp05>


It's an OLE DB trace (and a very nice one too), method call by method call. The call that failed is the one with hr=80004005.

COracleCommand::SetCommandText(hr=80004005): CErrorLookup::GetHelpInfo(80004005, 1, 1409, 244b854, 244b860)

In the CErrorLookup, its trying to lookup the error message. And apparently not finding it. Otherwise, it would return the Oracle error message. Does the errors collection (when you catch the error) have anything else in it, or only the 80004005.

OLE DB mandates that providers return very specific error, they are documented per method call. The infamous 80004005, means E_FAIL, which means "a provider-specific error occurred". It's the cop-out error for provider writers. At this point, all you can glean from the error message (if this is the only error in the collection) is that the provider "doesn't like" your SQL statement. I'd take a closer look at the errors collection and the SQL statement.

Bob Beauchemin
bobb_at_develop.com

"Richard Shea" <rshea_at_my-deja.com> wrote in message news:43160f6f.0201032339.4836d50_at_posting.google.com...
> Hi - I've got an intermittent problem with an ASP script accessing
> Oracle 8.1.6 via ADO using the ORAOLEDB driver (8.1.6.0).
>
> I turned on the TRACE facility and sure enough when the error
> ("0x80004005 Unspecified Error") occurs I can see the result of it in
> the .trc file. However beyond that it's bit of a black hole to me.
> Below is the bit of the trace between the last 'normal' execute and
> the point at which ADO has hit some sort of problem. Does anyone know
> of a web based resource which would allow me to make some sense of
> what is happening at the point the error appears to occur ? I've
> annotated the .trc with lines beginning "^^^^" in case any guru
> fancies giving me an online explanation ! Here goes ...
>
> TID: 7fc ENTRY COracleCommand::Execute(0, 0, 0, c0, 46000000)
> TID: 7fc EXIT COracleCommand::Execute(SQL Stmt => SELECT
> UNIQUE(ASR_REA_ID),REA_DESCRIPTION FROM VW_OUM_ASR_WITH_REA_DETAILS
> WHERE (OUM_GRV_ID = 7)): 1912
> ^^^^^ execute of SQL string, everything is as normal, the next 30 odd
> lines are also perfectly normal, presumably resulting from the ASP
> accessing the resulting recordset ?
> TID: 7fc EXIT COracleCommand::Execute(hr=0): 1946
> TID: 7fc ENTRY IRowsetInfoImpl::GetProperties(2, 20ae71c, 20ae798,
> 20ae79c)
> TID: 7fc EXIT IRowsetInfoImpl::GetProperties(hr=40eda): 6318
> TID: 7fc ENTRY IRowsetOracleImpl::RestartPosition(0)
> TID: 7fc EXIT RestartPosition(hr=0): 1857
> TID: 7fc ENTRY IRowsetOracleImpl::GetNextRows(0, 0, 1, 20ae9d8,
> 20ae9d4)
> TID: 7fc EXIT GetNextRows(hr=0): 1679
> TID: 7fc ENTRY IColumnsInfoOracleImpl::GetColumnInfo(2442650, 2442654,
> 2442658)
> TID: 7fc ENTRY IRowsetInfoImpl::GetProperties(1, 20ae944, 20ae930,
> 20ae924)
> TID: 7fc EXIT IRowsetInfoImpl::GetProperties(hr=0): 6318
> TID: 7fc EXIT IColumnsInfoOracleImpl::GetColumnInfo(hr=0): 175
> TID: 7fc ENTRY IColumnsInfoOracleImpl::GetColumnInfo(2449f10, 2449f0c,
> 20aec24)
> TID: 7fc ENTRY IRowsetInfoImpl::GetProperties(1, 20aeba4, 20aeb90,
> 20aeb84)
> TID: 7fc EXIT IRowsetInfoImpl::GetProperties(hr=0): 6318
> TID: 7fc EXIT IColumnsInfoOracleImpl::GetColumnInfo(hr=0): 175
> TID: 7fc ENTRY IConvertTypeOracleImpl::CanConvert(131, 14, 0)
> TID: 7fc EXIT IConvertTypeOracleImpl::CanConvert(hr=0): 117
> TID: 7fc ENTRY IAccessorOracleImpl::CreateAccessor(2, 1, 244b830, 0,
> 244a96c, 20aece8)
> TID: 7fc ENTRY IRowsetInfoImpl::GetProperties(1, 20aeb84, 20aeb70,
> 20aeb64)
> TID: 7fc EXIT IRowsetInfoImpl::GetProperties(hr=0): 6318
> TID: 7fc EXIT CreateAccessor(hr=0): 626
> TID: 7fc ENTRY IRowsetOracleImpl::GetData(1, 40dfa8, 244bcf0)
> TID: 7fc ENTRY IRowsetInfoImpl::GetProperties(1, 20aec5c, 20aec48,
> 20aec3c)
> TID: 7fc EXIT IRowsetInfoImpl::GetProperties(hr=0): 6318
> TID: 7fc EXIT GetData(hr=0): 1151
> TID: 7fc ENTRY IConvertTypeOracleImpl::CanConvert(129, 8, 0)
> TID: 7fc EXIT IConvertTypeOracleImpl::CanConvert(hr=0): 117
> TID: 7fc ENTRY IAccessorOracleImpl::CreateAccessor(2, 1, 244b830, 0,
> 2451dcc, 20aece8)
> TID: 7fc ENTRY IRowsetInfoImpl::GetProperties(1, 20aeb84, 20aeb70,
> 20aeb64)
> TID: 7fc EXIT IRowsetInfoImpl::GetProperties(hr=0): 6318
> TID: 7fc EXIT CreateAccessor(hr=0): 626
> TID: 7fc ENTRY IRowsetOracleImpl::GetData(1, 23ce6b8, 244df88)
> TID: 7fc EXIT GetData(hr=0): 1151
> TID: 7fc ENTRY IRowsetOracleImpl::GetNextRows(0, 0, 1, 20aea1c,
> 20aea18)
> TID: 7fc EXIT GetNextRows(hr=40ec6): 1401
> TID: 7fc ENTRY IRowsetOracleImpl::ReleaseRows(1, 24491a0, 0, 0, 0)
> TID: 7fc EXIT ReleaseRows(hr=0): 1790
> TID: 7fc ENTRY IAccessorOracleImpl::ReleaseAccessor(23ce6b8, 0)
> TID: 7fc EXIT ReleaseAccessor(hr=0): 725
> TID: 7fc ENTRY IAccessorOracleImpl::ReleaseAccessor(40dfa8, 0)
> TID: 7fc EXIT ReleaseAccessor(hr=0): 725
> ^^^^^up until here everything is normal but after that we're either
> responding to an error which has occurred above or doing something
> (which doesn't occur on other passes through this code) which causes
> an error.
> TID: 7ac ENTRY COracleSource::GetProperties(1, 0x1fef0e4, 0x1fef100,
> 0x1fef108)
> ^^^^^whatever it is that's doing it has a different thread ?
> TID: 7ac EXIT COracleSource::GetProperties(hr=0): 4061
> TID: 7ac ENTRY IDBCreateCommandOracleImpl::CreateCommand(0, 208878179,
> 11ce2a1c)
> TID: 7ac EXIT IDBCreateCommandOracleImpl::CreateCommand(hr=0): 528
> TID: 7ac ENTRY COracleCommand::SetProperties(1, 1feed38)
> TID: 7ac EXIT COracleCommand::SetProperties(hr=0): 2736
> TID: 7ac ENTRY COracleCommand::SetProperties(1, 1feee24)
> TID: 7ac EXIT COracleCommand::SetProperties(hr=0): 2736
> TID: 7ac ENTRY COracleSource::GetProperties(1, 0x1feed5c, 0x1feed8c,
> 0x1feed78)
> TID: 7ac EXIT COracleSource::GetProperties(hr=0): 4061
> TID: 7ac ENTRY COracleCommand::SetProperties(1, 2441808)
> TID: 7ac EXIT COracleCommand::SetProperties(hr=40eda): 2736
> TID: 7ac ENTRY COracleCommand::SetCommandText(c8b521fb, 11ce5cf3)
> TID: 7ac EXIT COracleCommand::SetCommandText(hr=80004005): 2414
> ^^^^^^this stuff might be all quite legitatmate but as I said above it
> doesn't alway get exec'd - anyone care to tell me what it's doing [in
> broad terms ;-)]
> TID: 7ac ENTRY CErrorLookup::GetHelpInfo(80004005, 1, 1409, 244b854,
> 244b860)
> ^^^^^^after here things are obviously looking bad and in fact on the
> next line we can see the infamous 80004005 being got read to wheel
> onto centre stage
> TID: 7ac EXIT CErrorLookup::GetHelpInfo(hr=0): 167
> TID: 7ac ENTRY CErrorLookup::GetErrorDescription(80004005, 1, 244d6f8,
> 1409, 244b850, 244b84c)
> TID: 7ac EXIT CErrorLookup::GetErrorDescription(hr=0):
> TID: 818 GTXN COracleSession::FinalRelease() - Session (23cda94)
> released
> TID: 818 ENTRY COracleSource::Uninitialize()
> TID: 818 EXIT COracleSource::Uninitialize(hr=0): 275
> TID: 818 GTXN COracleSession::FinalRelease() - Session (23e6a8c)
> released
> TID: 818 ENTRY COracleSource::Uninitialize()
> TID: 818 EXIT COracleSource::Uninitialize(hr=0): 275
>
> ... that's all folks ! As I say if anyone can point me at a resource
> for translating this stuff or fancies offering their own translation
> I'd be very grateful.
>
> regards
>
> richard shea.
> richardshea_at_fastNOSPAMmail.fm
Received on Fri Jan 04 2002 - 17:14:50 CET

Original text of this message