Showing posts with label bol. Show all posts
Showing posts with label bol. Show all posts

Tuesday, March 27, 2012

Error 9104

Why does the server return Error 9104 "auto statistics internal"? I can't find an error description in BOL, MSDN or through a groups/forum search either.

We running Sql Server 2005 (no sp yet) on Windows 2003 server.

Thanks

Do you have the associated state number for this error? It is number like in the range of 1-255 in general. It would be helpful in identifying the cause.|||

Hi Mark,

I only have the severity level, 16. I don't capture the state in my error trace.

We migrated to 2005 in mid-March and this error has been returned twice.

|||

Error 9104 is used internally for control flow. It is never surfaced through T-SQL. I assume you ran a trace to capture errors.

9104 essentially means that auto statistics failed for some reason (deadlock, resource crunch, ...). Since the engine can go on without auto-created or auto-refreshed statistics, the engine doesn't surface this error.

Peter Zabback

SQL Server Optimizer Development

Monday, March 19, 2012

error 7390 when isolation level is set to serializable...

am trying to replicate the execution of a stored procedure and hence am using isolation level of serializable as recommended by BOL for purge operations.
This following code works fine when executed on the server ( logging in via terminal services) bu gives me an error when executed thru Query Analyzer.
Really puzzled.
__________________________________________________ ______
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
begin transaction
exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
@.SourceSystemCode = '13397'
commit transaction
go
__________________________________________________ _______
************************************************** *
Server: Msg 7390, Level 16, State 1, Line 1
The requested operation could not be performed because the OLE DB provider 'ADSDSOObject' does not support the required transaction interface.
OLE DB error trace [OLE/DB Provider 'ADSDSOObject' IUnknown::QueryInterface returned 0x80004002].
************************************************** ***
Any help will be appreciated
thanks
-srini
the error message is coming from the ADSI (Active Directory) provider.
is active directory in the mix somehow?
Hilary Cotter
Looking for a book on SQL Server replication?
http://www.nwsu.com/0974973602.html
"srini" <srini@.discussions.microsoft.com> wrote in message
news:32ED50DF-5820-42FF-88E8-E7A7475DAE3D@.microsoft.com...
> am trying to replicate the execution of a stored procedure and hence am
using isolation level of serializable as recommended by BOL for purge
operations.
> This following code works fine when executed on the server ( logging in
via terminal services) bu gives me an error when executed thru Query
Analyzer.
> Really puzzled.
> __________________________________________________ ______
> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
> GO
> begin transaction
> exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
> @.SourceSystemCode = '13397'
> commit transaction
> go
> __________________________________________________ _______
> ************************************************** *
> Server: Msg 7390, Level 16, State 1, Line 1
> The requested operation could not be performed because the OLE DB provider
'ADSDSOObject' does not support the required transaction interface.
> OLE DB error trace [OLE/DB Provider 'ADSDSOObject'
IUnknown::QueryInterface returned 0x80004002].
> ************************************************** ***
> Any help will be appreciated
> thanks
> -srini
|||Hilary:
Is there a way to figure that out ? Just joined a new job and this
workstation was being used by another developer. Let me look at the proc in
more detail
-srini
"Hilary Cotter" wrote:

> the error message is coming from the ADSI (Active Directory) provider.
> is active directory in the mix somehow?
> --
> Hilary Cotter
> Looking for a book on SQL Server replication?
> http://www.nwsu.com/0974973602.html
>
> "srini" <srini@.discussions.microsoft.com> wrote in message
> news:32ED50DF-5820-42FF-88E8-E7A7475DAE3D@.microsoft.com...
> using isolation level of serializable as recommended by BOL for purge
> operations.
> via terminal services) bu gives me an error when executed thru Query
> Analyzer.
> 'ADSDSOObject' does not support the required transaction interface.
> IUnknown::QueryInterface returned 0x80004002].
>
>
|||Here is the code. inherited it ;-)
*******************************************
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE DeleteJobRunResults
-- procedure to delete job run results given the source system's job id
-- INPUT Parameters
@.SourceSystemVARCHAR(80),
@.SourceSystemCodeVARCHAR(255)
-- OUTPUT Parameters
AS
BEGIN
DECLARE @.ErrNumINT
DECLARE @.CountINT
DECLARE @.ResultsType CHAR(2)-- 'MD' = market data
-- 'TV' = trade valuations
DECLARE @.JobRunUID INT
SELECT
@.JobRunUID = JobRunUID
FROM
JobRun jr
INNER JOIN
CodeLegend cl
ON jr.SourceSystemUID = cl.CodeLegendUID
WHERE
jr.SourceSystemCode = @.SourceSystemCode AND
cl.FullName = @.SourceSystem
-- determine if the job results are market data or trade valuations
IF EXISTS (SELECT 1 FROM JobMarketData WHERE JobRunUID = @.JobRunUID)
SELECT @.ResultsType = 'MD'
ELSE
SELECT @.ResultsType = 'TV'
IF @.ResultsType = 'TV'
BEGIN
CREATE TABLE #TradeValueUIDs (
TradeValueUID INT,
PRIMARY KEY CLUSTERED (TradeValueUID))
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
INSERT #TradeValueUIDs
SELECT TradeValueUID
FROM
JobTradeValue jtv1
WHERE
JobRunUID = @.JobRunUID AND
(SELECT COUNT(*) FROM JobTradeValue jtv2 WHERE jtv1.TradeValueUID =
jtv2.TradeValueUID) = 1
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
-- This holds shared locks on TradeValue until the transaction commits.
The count is not used.
SELECT @.Count = COUNT(*) FROM TradeValue tv WITH (HOLDLOCK) INNER JOIN
#TradeValueUIDs tvu ON tv.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE PnlComponentFROM PnlComponent pcINNER JOIN #TradeValueUIDs tvu ON
pc.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE PnLMark FROM PnLMark pm INNER JOIN #TradeValueUIDs tvu ON
pm.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE CDSens FROM CDSens cdsINNER JOIN #TradeValueUIDs tvu ON
cds.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE CSSens FROM CSSens css INNER JOIN #TradeValueUIDs tvu ON
css.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE IRSens FROM IRSens irs INNER JOIN #TradeValueUIDs tvu ON
irs.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE IRVega FROM IRVega irv INNER JOIN #TradeValueUIDs tvu ON
irv.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE SimpleValue FROM SimpleValue sv INNER JOIN #TradeValueUIDs tvu ON
sv.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE JobTradeValueWHERE JobRunUID = @.JobRunUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE TradeValueFROM TradeValue tvINNER JOIN #TradeValueUIDs tvu ON
tv.TradeValueUID = tvu.TradeValueUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE StatusMessageWHERE JobRunUID = @.JobRunUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE JobRunWHERE JobRunUID = @.JobRunUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
END
ELSE
BEGIN
CREATE TABLE #MarketDataUIDs (
MarketDataUID INT,
PRIMARY KEY CLUSTERED (MarketDataUID))
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
INSERT #MarketDataUIDs
SELECT MarketDataUID
FROM
JobMarketData jmd1
WHERE
JobRunUID = @.JobRunUID AND
(SELECT COUNT(*) FROM JobMarketData jmd2 WHERE jmd1.MarketDataUID =
jmd2.MarketDataUID) = 1
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
-- This holds shared locks on TradeValue until the transaction commits.
The count is not used.
SELECT @.Count = COUNT(*) FROM MarketData md WITH (HOLDLOCK) INNER JOIN
#MarketDataUIDs mdu ON md.MarketDataUID = mdu.MarketDataUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE FXRateFROM FXRate fxINNER JOIN #MarketDataUIDs mdu ON
fx.MarketDataUID = mdu.MarketDataUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE IRRate FROM IRRate ir INNER JOIN #MarketDataUIDs mdu ON
ir.MarketDataUID = mdu.MarketDataUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE CreditCurveSpreads FROM CreditCurveSpreads ccsINNER JOIN
#MarketDataUIDs mdu ON ccs.MarketDataUID = mdu.MarketDataUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE IRDiscountRate FROM IRDiscountRate idrINNER JOIN
#MarketDataUIDs mdu ON idr.MarketDataUID = mdu.MarketDataUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE JobMarketDataWHERE JobRunUID = @.JobRunUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE MarketDataFROM MarketData mdINNER JOIN #MarketDataUIDs mdu ON
md.MarketDataUID = mdu.MarketDataUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE StatusMessageWHERE JobRunUID = @.JobRunUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
DELETE JobRunWHERE JobRunUID = @.JobRunUID
SELECT @.ErrNum = @.@.ERROR
IF @.ErrNum <> 0 GOTO Exit_no_log
END
RETURN 0
Exit_no_log:
RETURN 999
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
"srini" wrote:
[vbcol=seagreen]
> Hilary:
> Is there a way to figure that out ? Just joined a new job and this
> workstation was being used by another developer. Let me look at the proc in
> more detail
> -srini
> "Hilary Cotter" wrote:
|||there is no ADSI there. Let me look into this further.
Hilary Cotter
Looking for a book on SQL Server replication?
http://www.nwsu.com/0974973602.html
"srini" <srini@.discussions.microsoft.com> wrote in message
news:6543B87F-DA49-44AC-A2D1-FD4340A5969F@.microsoft.com...
> Here is the code. inherited it ;-)
> *******************************************
> SET QUOTED_IDENTIFIER ON
> GO
> SET ANSI_NULLS ON
> GO
> CREATE PROCEDURE DeleteJobRunResults
> -- procedure to delete job run results given the source system's job id
> -- INPUT Parameters
> @.SourceSystem VARCHAR(80),
> @.SourceSystemCode VARCHAR(255)
> -- OUTPUT Parameters
> AS
> BEGIN
> DECLARE @.ErrNum INT
> DECLARE @.Count INT
>
> DECLARE @.ResultsType CHAR(2) -- 'MD' = market data
> -- 'TV' = trade valuations
> DECLARE @.JobRunUID INT
>
> SELECT
> @.JobRunUID = JobRunUID
> FROM
> JobRun jr
> INNER JOIN
> CodeLegend cl
> ON jr.SourceSystemUID = cl.CodeLegendUID
> WHERE
> jr.SourceSystemCode = @.SourceSystemCode AND
> cl.FullName = @.SourceSystem
>
> -- determine if the job results are market data or trade valuations
> IF EXISTS (SELECT 1 FROM JobMarketData WHERE JobRunUID = @.JobRunUID)
> SELECT @.ResultsType = 'MD'
> ELSE
> SELECT @.ResultsType = 'TV'
>
> IF @.ResultsType = 'TV'
> BEGIN
> CREATE TABLE #TradeValueUIDs (
> TradeValueUID INT,
> PRIMARY KEY CLUSTERED (TradeValueUID))
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
>
> INSERT #TradeValueUIDs
> SELECT TradeValueUID
> FROM
> JobTradeValue jtv1
> WHERE
> JobRunUID = @.JobRunUID AND
> (SELECT COUNT(*) FROM JobTradeValue jtv2 WHERE jtv1.TradeValueUID =
> jtv2.TradeValueUID) = 1
>
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
>
> -- This holds shared locks on TradeValue until the transaction commits.
> The count is not used.
> SELECT @.Count = COUNT(*) FROM TradeValue tv WITH (HOLDLOCK) INNER JOIN
> #TradeValueUIDs tvu ON tv.TradeValueUID = tvu.TradeValueUID
>
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE PnlComponent FROM PnlComponent pc INNER JOIN #TradeValueUIDs tvu ON
> pc.TradeValueUID = tvu.TradeValueUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE PnLMark FROM PnLMark pm INNER JOIN #TradeValueUIDs tvu ON
> pm.TradeValueUID = tvu.TradeValueUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE CDSens FROM CDSens cds INNER JOIN #TradeValueUIDs tvu ON
> cds.TradeValueUID = tvu.TradeValueUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE CSSens FROM CSSens css INNER JOIN #TradeValueUIDs tvu ON
> css.TradeValueUID = tvu.TradeValueUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE IRSens FROM IRSens irs INNER JOIN #TradeValueUIDs tvu ON
> irs.TradeValueUID = tvu.TradeValueUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE IRVega FROM IRVega irv INNER JOIN #TradeValueUIDs tvu ON
> irv.TradeValueUID = tvu.TradeValueUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE SimpleValue FROM SimpleValue sv INNER JOIN #TradeValueUIDs tvu ON
> sv.TradeValueUID = tvu.TradeValueUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE JobTradeValue WHERE JobRunUID = @.JobRunUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE TradeValue FROM TradeValue tv INNER JOIN #TradeValueUIDs tvu ON
> tv.TradeValueUID = tvu.TradeValueUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE StatusMessage WHERE JobRunUID = @.JobRunUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE JobRun WHERE JobRunUID = @.JobRunUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> END
> ELSE
> BEGIN
> CREATE TABLE #MarketDataUIDs (
> MarketDataUID INT,
> PRIMARY KEY CLUSTERED (MarketDataUID))
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> INSERT #MarketDataUIDs
> SELECT MarketDataUID
> FROM
> JobMarketData jmd1
> WHERE
> JobRunUID = @.JobRunUID AND
> (SELECT COUNT(*) FROM JobMarketData jmd2 WHERE jmd1.MarketDataUID =
> jmd2.MarketDataUID) = 1
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> -- This holds shared locks on TradeValue until the transaction commits.
> The count is not used.
> SELECT @.Count = COUNT(*) FROM MarketData md WITH (HOLDLOCK) INNER JOIN
> #MarketDataUIDs mdu ON md.MarketDataUID = mdu.MarketDataUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
>
> DELETE FXRate FROM FXRate fx INNER JOIN #MarketDataUIDs mdu ON
> fx.MarketDataUID = mdu.MarketDataUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE IRRate FROM IRRate ir INNER JOIN #MarketDataUIDs mdu ON
> ir.MarketDataUID = mdu.MarketDataUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE CreditCurveSpreads FROM CreditCurveSpreads ccs INNER JOIN
> #MarketDataUIDs mdu ON ccs.MarketDataUID = mdu.MarketDataUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE IRDiscountRate FROM IRDiscountRate idr INNER JOIN
> #MarketDataUIDs mdu ON idr.MarketDataUID = mdu.MarketDataUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE JobMarketData WHERE JobRunUID = @.JobRunUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE MarketData FROM MarketData md INNER JOIN #MarketDataUIDs mdu ON
> md.MarketDataUID = mdu.MarketDataUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE StatusMessage WHERE JobRunUID = @.JobRunUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> DELETE JobRun WHERE JobRunUID = @.JobRunUID
> SELECT @.ErrNum = @.@.ERROR
> IF @.ErrNum <> 0 GOTO Exit_no_log
> END
> RETURN 0
> ----
--[vbcol=seagreen]
> Exit_no_log:
> RETURN 999
> END
> GO
> SET QUOTED_IDENTIFIER OFF
> GO
> SET ANSI_NULLS ON
> GO
>
> "srini" wrote:
in[vbcol=seagreen]
am[vbcol=seagreen]
in[vbcol=seagreen]
provider[vbcol=seagreen]

error 7390 when isolation level is set to serializable...

I am trying to replicate the execution of a stored procedure and hence am using isolation level of serializable as recommended by BOL for purge operations.
This following code works fine when executed on the server ( logging in via terminal services) bu gives me an error when executed thru Query Analyzer.
Really puzzled.
________________________________________________________
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
begin transaction
exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
@.SourceSystemCode = '13397'
commit transaction
go
_________________________________________________________
***************************************************
Server: Msg 7390, Level 16, State 1, Line 1
The requested operation could not be performed because the OLE DB provider 'ADSDSOObject' does not support the required transaction interface.
OLE DB error trace [OLE/DB Provider 'ADSDSOObject' IUnknown::QueryInterface returned 0x80004002].
*****************************************************
Any help will be appreciated
thanks
-sriniHi srinivas,
Check the following registry key and make sure it is set to 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\ Providers\ADSDSOObject
Thanks,
Chandan
"srinivas" wrote:
> I am trying to replicate the execution of a stored procedure and hence am using isolation level of serializable as recommended by BOL for purge operations.
> This following code works fine when executed on the server ( logging in via terminal services) bu gives me an error when executed thru Query Analyzer.
> Really puzzled.
> ________________________________________________________
> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
> GO
> begin transaction
> exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
> @.SourceSystemCode = '13397'
> commit transaction
> go
> _________________________________________________________
> ***************************************************
> Server: Msg 7390, Level 16, State 1, Line 1
> The requested operation could not be performed because the OLE DB provider 'ADSDSOObject' does not support the required transaction interface.
> OLE DB error trace [OLE/DB Provider 'ADSDSOObject' IUnknown::QueryInterface returned 0x80004002].
> *****************************************************
> Any help will be appreciated
> thanks
> -srini

error 7390 when isolation level is set to serializable...

I am trying to replicate the execution of a stored procedure and hence am us
ing isolation level of serializable as recommended by BOL for purge operatio
ns.
This following code works fine when executed on the server ( logging in via
terminal services) bu gives me an error when executed thru Query Analyzer.
Really puzzled.
________________________________________
________________
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
begin transaction
exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
@.SourceSystemCode = '13397'
commit transaction
go
________________________________________
_________________
****************************************
***********
Server: Msg 7390, Level 16, State 1, Line 1
The requested operation could not be performed because the OLE DB provider '
ADSDSOObject' does not support the required transaction interface.
OLE DB error trace [OLE/DB Provider 'ADSDSOObject' IUnknown::QueryInterf
ace returned 0x80004002].
****************************************
*************
Any help will be appreciated
thanks
-sriniHi srinivas,
Check the following registry key and make sure it is set to 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MS
SQLServer\ Providers\ADSDSOObject
Thanks,
Chandan
"srinivas" wrote:

> I am trying to replicate the execution of a stored procedure and hence am
using isolation level of serializable as recommended by BOL for purge operat
ions.
> This following code works fine when executed on the server ( logging in vi
a terminal services) bu gives me an error when executed thru Query Analyzer.
> Really puzzled.
> ________________________________________
________________
> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
> GO
> begin transaction
> exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
> @.SourceSystemCode = '13397'
> commit transaction
> go
> ________________________________________
_________________
> ****************************************
***********
> Server: Msg 7390, Level 16, State 1, Line 1
> The requested operation could not be performed because the OLE DB provider
'ADSDSOObject' does not support the required transaction interface.
> OLE DB error trace [OLE/DB Provider 'ADSDSOObject' IUnknown::QueryInte
rface returned 0x80004002].
> ****************************************
*************
> Any help will be appreciated
> thanks
> -srini

error 7390 when isolation level is set to serializable...

I am trying to replicate the execution of a stored procedure and hence am using isolation level of serializable as recommended by BOL for purge operations.
This following code works fine when executed on the server ( logging in via terminal services) bu gives me an error when executed thru Query Analyzer.
Really puzzled.
__________________________________________________ ______
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
begin transaction
exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
@.SourceSystemCode = '13397'
commit transaction
go
__________________________________________________ _______
************************************************** *
Server: Msg 7390, Level 16, State 1, Line 1
The requested operation could not be performed because the OLE DB provider 'ADSDSOObject' does not support the required transaction interface.
OLE DB error trace [OLE/DB Provider 'ADSDSOObject' IUnknown::QueryInterface returned 0x80004002].
************************************************** ***
Any help will be appreciated
thanks
-srini
Is DeleteJobRunResults performing a linked server query using the ADSI
OLEDB provider? This is what the ADSDSOObject is referring to. What is the
MDAC version on the SQL Server and on the machine where Query Analyzer is
running on? If the MDAC on the client is at a lower version, then upgrade
it so that it is at the same level as the SQL Server. You can use Component
Checker to get the MDAC versions. It is available at
http://www.microsoft.com/downloads/d...df6-4a21-4b43-
bf53-14332ef092c9&displaylang=en.
Regards,
Farooq Mahmud [MS SQL Support]
This posting is provided "AS IS" with no warranties, and confers no rights.
Are you secure? For information about the Strategic Technology Protection
Program and to order your FREE Security Tool Kit, please visit
http://www.microsoft.com/security.

error 7390 when isolation level is set to serializable...

I am trying to replicate the execution of a stored procedure and hence am using isolation level of serializable as recommended by BOL for purge operations.
This following code works fine when executed on the server ( logging in via terminal services) bu gives me an error when executed thru Query Analyzer.
Really puzzled.
__________________________________________________ ______
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
begin transaction
exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
@.SourceSystemCode = '13397'
commit transaction
go
__________________________________________________ _______
************************************************** *
Server: Msg 7390, Level 16, State 1, Line 1
The requested operation could not be performed because the OLE DB provider 'ADSDSOObject' does not support the required transaction interface.
OLE DB error trace [OLE/DB Provider 'ADSDSOObject' IUnknown::QueryInterface returned 0x80004002].
************************************************** ***
Any help will be appreciated
thanks
-srini
Hi srinivas,
Check the following registry key and make sure it is set to 1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\ Providers\ADSDSOObject
Thanks,
Chandan
"srinivas" wrote:

> I am trying to replicate the execution of a stored procedure and hence am using isolation level of serializable as recommended by BOL for purge operations.
> This following code works fine when executed on the server ( logging in via terminal services) bu gives me an error when executed thru Query Analyzer.
> Really puzzled.
> __________________________________________________ ______
> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
> GO
> begin transaction
> exec dbo.DeleteJobRunResults @.SourceSystem = 'GSP Risk Engine',
> @.SourceSystemCode = '13397'
> commit transaction
> go
> __________________________________________________ _______
> ************************************************** *
> Server: Msg 7390, Level 16, State 1, Line 1
> The requested operation could not be performed because the OLE DB provider 'ADSDSOObject' does not support the required transaction interface.
> OLE DB error trace [OLE/DB Provider 'ADSDSOObject' IUnknown::QueryInterface returned 0x80004002].
> ************************************************** ***
> Any help will be appreciated
> thanks
> -srini