Hi,
I have a client-server .NET system that uses an Enterprise Services
Serviced Component (COM+ component) for data access. Under high load,
I am getting deadlocking errors, they seem to be related to one table.
These situations are hard to debug, but I am guessing it is because
an update on a delete may be occurring on DIFFERENT ROWS in the same
table at the same time. This can't be right, can it?
I read something about problems when using indexes, but this table is
not indexed other than the primary key. The table definition is shown
below. Any suggestions would be appreciated.
Thanks!
*** TABLE DEFINITION (FIELDS HAVE BEEN RENAMED, BUT STRUCTURE IS
ACCURATE) ***
CREATE TABLE [Boo_Record_Foo] (
[Boo_Id] [int] NOT NULL ,
[Fooed_By_User_Id] [int] NULL ,
[Fooed_By_User_Name] [varchar] (30) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
CONSTRAINT [PK_Boo_Record_Foo] PRIMARY KEY CLUSTERED
(
[Boo_Id]
) WITH FILLFACTOR = 90 ON [PRIMARY]
) ON [PRIMARY]
GO
*** ERROR MESSAGE ***
Transaction (Process ID 53) was deadlocked on {lock} resources with
another process and has been chosen as the deadlock victim. Rerun the
transaction.COM+ tends to use the SERIALIZED isolation level which is never good for
multi-user apps. I would check to see what the isolation level is on all
the connections. You say your table has no index other than the PK
constraint. Is it ever accessed by anything other than the PK? Can you
show the 2 statements that are being used when it deadlocks?
--
Andrew J. Kelly
SQL Server MVP
"Don MacKenzie" <cd_mackenzie@.hotmail.com> wrote in message
news:2544f4a.0402131647.7bbd58cf@.posting.google.com...
> Hi,
> I have a client-server .NET system that uses an Enterprise Services
> Serviced Component (COM+ component) for data access. Under high load,
> I am getting deadlocking errors, they seem to be related to one table.
> These situations are hard to debug, but I am guessing it is because
> an update on a delete may be occurring on DIFFERENT ROWS in the same
> table at the same time. This can't be right, can it?
> I read something about problems when using indexes, but this table is
> not indexed other than the primary key. The table definition is shown
> below. Any suggestions would be appreciated.
> Thanks!
> *** TABLE DEFINITION (FIELDS HAVE BEEN RENAMED, BUT STRUCTURE IS
> ACCURATE) ***
> CREATE TABLE [Boo_Record_Foo] (
> [Boo_Id] [int] NOT NULL ,
> [Fooed_By_User_Id] [int] NULL ,
> [Fooed_By_User_Name] [varchar] (30) COLLATE
> SQL_Latin1_General_CP1_CI_AS NULL ,
> CONSTRAINT [PK_Boo_Record_Foo] PRIMARY KEY CLUSTERED
> (
> [Boo_Id]
> ) WITH FILLFACTOR = 90 ON [PRIMARY]
> ) ON [PRIMARY]
> GO
>
> *** ERROR MESSAGE ***
> Transaction (Process ID 53) was deadlocked on {lock} resources with
> another process and has been chosen as the deadlock victim. Rerun the
> transaction.|||Hi Don.
You can get the precise reason for the deadlock by writing it's detailed
deadlock report to the SQL error log & inspecting that report. It's complex
to analyse, but if you post it back perhaps we could help you analyse it.
To write the detailed deadlock report to the error log, issue the following
command:
dbcc traceon (1204, 3605, -1)
1204 is the trace flag for detailed deadlock reports
3605 is the instruction to write that report to the sqwl error log
-1 is the instruction that the trace should apply to all connections, not
just the current connection that is issuing the dbcc traceon command.
Regards,
Greg Linwood
SQL Server MVP
"Don MacKenzie" <cd_mackenzie@.hotmail.com> wrote in message
news:2544f4a.0402131647.7bbd58cf@.posting.google.com...
> Hi,
> I have a client-server .NET system that uses an Enterprise Services
> Serviced Component (COM+ component) for data access. Under high load,
> I am getting deadlocking errors, they seem to be related to one table.
> These situations are hard to debug, but I am guessing it is because
> an update on a delete may be occurring on DIFFERENT ROWS in the same
> table at the same time. This can't be right, can it?
> I read something about problems when using indexes, but this table is
> not indexed other than the primary key. The table definition is shown
> below. Any suggestions would be appreciated.
> Thanks!
> *** TABLE DEFINITION (FIELDS HAVE BEEN RENAMED, BUT STRUCTURE IS
> ACCURATE) ***
> CREATE TABLE [Boo_Record_Foo] (
> [Boo_Id] [int] NOT NULL ,
> [Fooed_By_User_Id] [int] NULL ,
> [Fooed_By_User_Name] [varchar] (30) COLLATE
> SQL_Latin1_General_CP1_CI_AS NULL ,
> CONSTRAINT [PK_Boo_Record_Foo] PRIMARY KEY CLUSTERED
> (
> [Boo_Id]
> ) WITH FILLFACTOR = 90 ON [PRIMARY]
> ) ON [PRIMARY]
> GO
>
> *** ERROR MESSAGE ***
> Transaction (Process ID 53) was deadlocked on {lock} resources with
> another process and has been chosen as the deadlock victim. Rerun the
> transaction.
Showing posts with label services. Show all posts
Showing posts with label services. Show all posts
Tuesday, March 27, 2012
Sunday, March 25, 2012
Deadlock: Trace flag 1205, 1204
I want to log deadlocks. In query analyzer I ran dbcc
traceon(1205, 1204) on two different SQL Server 2000, SP3a
boxes. Stopped SQL Services and restarted on each box.
Created deadlocks on both boxes via the problem
application. Deadlocks are being written to sql server
logs on one box but not the other.
What is the difference and how can I tell if 1205 and 1204
trace flags are active?dbcc tracestatus(-1)
--
Linchi Shea
linchi_shea@.NOSPAMml.com
"Mike Mullane" <mike.mullane@.hpinc.com> wrote in message
news:082101c38915$62471510$a301280a@.phx.gbl...
> I want to log deadlocks. In query analyzer I ran dbcc
> traceon(1205, 1204) on two different SQL Server 2000, SP3a
> boxes. Stopped SQL Services and restarted on each box.
> Created deadlocks on both boxes via the problem
> application. Deadlocks are being written to sql server
> logs on one box but not the other.
> What is the difference and how can I tell if 1205 and 1204
> trace flags are active?
>|||Hi Mike,
Thanks for Linchi's help. DBCC TRACESTATUS(-1) displays the status of all
currently enabled trace flags by specifying a value of -1.
Please make sure that you problem application can make deadlock every time
when you execute it. Here is a deadlock example, please to perform the on
both SQL Server using Query Analyzer and check to see if the deadlock is
recorded in both SQL Server's log.
Create a simple deadlock in pubs in two Query Analyzer windows.
Window 1:
dbcc traceon(3605)
dbcc traceon(1204)
begin tran update authors set contract = contract
Window 2: begin tran update titles set ytd_sales = ytd_sales
Window 1: update titles set ytd_sales = ytd_sales
Window 2: update authors set contract = contract
It works on my side and I am standing by for your response.
Regards,
Michael Shao
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.|||Hello Michael,
Perfect advice. I am able to recreate locks using your
example and validate the they are being written to the
log. However, I'm was having issues getting DBCC
TRACESTATUS(-1) or DBCC TRACESTATUS(1204) to behave as
described. When I run it I get: "Trace option(s) not
enabled for this connection. Use 'DBCC TRACEON()'.
DBCC execution completed. If DBCC printed error messages,
contact your system administrator."
So I ran "DBCC TRACEON" and then aftter running that I
ran "DBCC TRACESTATUS(-1)" and I get "TraceFlag Status
-- --
1204 1" which is what I want. So, it seems that the
order needed is "DBCC TRACEON(1204)" then "DBCC TRACEON"
must be run before "DBCC TRACESTATUS(-1)" will list.
Thanks for your help. I've learned a bit.
Mike
>--Original Message--
>Hi Mike,
>Thanks for Linchi's help. DBCC TRACESTATUS(-1) displays
the status of all
>currently enabled trace flags by specifying a value of -1.
>Please make sure that you problem application can make
deadlock every time
>when you execute it. Here is a deadlock example, please
to perform the on
>both SQL Server using Query Analyzer and check to see if
the deadlock is
>recorded in both SQL Server's log.
>Create a simple deadlock in pubs in two Query Analyzer
windows.
>Window 1:
>dbcc traceon(3605)
>dbcc traceon(1204)
>begin tran update authors set contract = contract
>Window 2: begin tran update titles set ytd_sales =ytd_sales
>Window 1: update titles set ytd_sales = ytd_sales
>Window 2: update authors set contract = contract
>It works on my side and I am standing by for your
response.
>Regards,
>Michael Shao
>Microsoft Online Partner Support
>Get Secure! - www.microsoft.com/security
>This posting is provided "as is" with no warranties and
confers no rights.
>.
>
traceon(1205, 1204) on two different SQL Server 2000, SP3a
boxes. Stopped SQL Services and restarted on each box.
Created deadlocks on both boxes via the problem
application. Deadlocks are being written to sql server
logs on one box but not the other.
What is the difference and how can I tell if 1205 and 1204
trace flags are active?dbcc tracestatus(-1)
--
Linchi Shea
linchi_shea@.NOSPAMml.com
"Mike Mullane" <mike.mullane@.hpinc.com> wrote in message
news:082101c38915$62471510$a301280a@.phx.gbl...
> I want to log deadlocks. In query analyzer I ran dbcc
> traceon(1205, 1204) on two different SQL Server 2000, SP3a
> boxes. Stopped SQL Services and restarted on each box.
> Created deadlocks on both boxes via the problem
> application. Deadlocks are being written to sql server
> logs on one box but not the other.
> What is the difference and how can I tell if 1205 and 1204
> trace flags are active?
>|||Hi Mike,
Thanks for Linchi's help. DBCC TRACESTATUS(-1) displays the status of all
currently enabled trace flags by specifying a value of -1.
Please make sure that you problem application can make deadlock every time
when you execute it. Here is a deadlock example, please to perform the on
both SQL Server using Query Analyzer and check to see if the deadlock is
recorded in both SQL Server's log.
Create a simple deadlock in pubs in two Query Analyzer windows.
Window 1:
dbcc traceon(3605)
dbcc traceon(1204)
begin tran update authors set contract = contract
Window 2: begin tran update titles set ytd_sales = ytd_sales
Window 1: update titles set ytd_sales = ytd_sales
Window 2: update authors set contract = contract
It works on my side and I am standing by for your response.
Regards,
Michael Shao
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.|||Hello Michael,
Perfect advice. I am able to recreate locks using your
example and validate the they are being written to the
log. However, I'm was having issues getting DBCC
TRACESTATUS(-1) or DBCC TRACESTATUS(1204) to behave as
described. When I run it I get: "Trace option(s) not
enabled for this connection. Use 'DBCC TRACEON()'.
DBCC execution completed. If DBCC printed error messages,
contact your system administrator."
So I ran "DBCC TRACEON" and then aftter running that I
ran "DBCC TRACESTATUS(-1)" and I get "TraceFlag Status
-- --
1204 1" which is what I want. So, it seems that the
order needed is "DBCC TRACEON(1204)" then "DBCC TRACEON"
must be run before "DBCC TRACESTATUS(-1)" will list.
Thanks for your help. I've learned a bit.
Mike
>--Original Message--
>Hi Mike,
>Thanks for Linchi's help. DBCC TRACESTATUS(-1) displays
the status of all
>currently enabled trace flags by specifying a value of -1.
>Please make sure that you problem application can make
deadlock every time
>when you execute it. Here is a deadlock example, please
to perform the on
>both SQL Server using Query Analyzer and check to see if
the deadlock is
>recorded in both SQL Server's log.
>Create a simple deadlock in pubs in two Query Analyzer
windows.
>Window 1:
>dbcc traceon(3605)
>dbcc traceon(1204)
>begin tran update authors set contract = contract
>Window 2: begin tran update titles set ytd_sales =ytd_sales
>Window 1: update titles set ytd_sales = ytd_sales
>Window 2: update authors set contract = contract
>It works on my side and I am standing by for your
response.
>Regards,
>Michael Shao
>Microsoft Online Partner Support
>Get Secure! - www.microsoft.com/security
>This posting is provided "as is" with no warranties and
confers no rights.
>.
>
Sunday, March 11, 2012
Deadlock bug in MoveItem or CreateReport
Reporting services is throwing deadlock exceptions which if retried (up to 10 times) sometimes succeed. When those exceptions happen Reporting Services is coming to a halt waiting for the deadlock to resolve. Performance is unacceptably degraded then.
In my test I am trying to run multiple concurrent SOAP sessions with a single admin level user account and in each session my process moves old report definitions into historical folders (saves with unique names) and then creates new report definition (again the report names are not overlapping) and finally creates a snapshot of the new report.
1. Is there a way to avoid those deadlocks?
2. From the SQL Server log files it looks like there is some level of pessimistic locking happening on some tables. Is that really necessary? It seems like the operations that are being performed deal with independent data elements that should not require any synchronization/serialization.
3. What level of parallelism is allowed when making concurrent calls to the server on the same user id but within separate sessions? Are there any restrictions?
4. Is there a place (maybe at MSDN) to report this as a real bug?
I can also provide sql server trace log file with information about the deadlock. No way to attach it here.
***********************************************************************
SOAP Exception message when the deadlock occurs is as follows:
***********************************************************************
Reason: An internal error occurred on the report server. See the error log for m
ore details. --> An internal error occurred on the report server. See the error
log for more details. --> Transaction (Process ID 55) was deadlocked on lock res
ources with another process and has been chosen as the deadlock victim. Rerun th
e transaction.
12:32:41,836 ERROR [STDERR] AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode:
faultString: An internal error occurred on the report server. See the error log
for more details. --> An internal error occurred on the report server. See t
he error log for more details. --> Transaction (Process ID 55) was deadlocked
on lock resources with another process and has been chosen as the deadlock vict
im. Rerun the transaction.
faultActor: http://engw03dmrs1/ReportServer/ReportService.asmx
faultNode:
faultDetail:
{http://www.microsoft.com/sql/reportingservices}ErrorCode: rsInternalErr
or
{http://www.microsoft.com/sql/reportingservices}HttpStatus: 400
{http://www.microsoft.com/sql/reportingservices}Message: An internal err
or occurred on the report server. See the error log for more details.
{http://www.microsoft.com/sql/reportingservices}HelpLink: http://go.micr
osoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnostic
s.Utilities.ErrorStrings.resources.Strings&EvtID=rsInternalError&ProdNam
e=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00
{http://www.microsoft.com/sql/reportingservices}ProductName: Microsoft S
QL Server Reporting Services
{http://www.microsoft.com/sql/reportingservices}ProductVersion: 8.00.878
.00
{http://www.microsoft.com/sql/reportingservices}ProductLocaleId: 127
{http://www.microsoft.com/sql/reportingservices}OperatingSystem: OsIndep
endent
{http://www.microsoft.com/sql/reportingservices}CountryLocaleId: 1033
{http://www.microsoft.com/sql/reportingservices}MoreInformation:
<Source>ReportingServicesLibrary</Source>
<Message msrs:ErrorCode="rsInternalError" msrs:HelpLink="http://go.mic
rosoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnosti
cs.Utilities.ErrorStrings.resources.Strings&EvtID=rsInternalError&ProdNa
me=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00" xmlns:msrs= "http://www.microsoft.com/sql/reportingservices">An internal error occurred on t
he report server. See the error log for more details.</Message>
<MoreInformation>
<Source>.Net SqlClient Data Provider</Source>
<Message>Transaction (Process ID 55) was deadlocked on lock resource
s with another process and has been chosen as the deadlock victim. Rerun the tra
nsaction.</Message>
</MoreInformation>
{http://www.microsoft.com/sql/reportingservices}Warnings: nullCan you contact me offline? Replace ms with microsoft.
Thanks
Tudor
--
Tudor Trufinescu
Dev Lead
Sql Server Reporting Services
This posting is provided "AS IS" with no warranties, and confers no rights.
"Tomasz" <Tomasz@.discussions.microsoft.com> wrote in message
news:B85F6392-B1B9-4FE0-B69B-D51E47C2EB4B@.microsoft.com...
> Reporting services is throwing deadlock exceptions which if retried (up to
10 times) sometimes succeed. When those exceptions happen Reporting Services
is coming to a halt waiting for the deadlock to resolve. Performance is
unacceptably degraded then.
> In my test I am trying to run multiple concurrent SOAP sessions with a
single admin level user account and in each session my process moves old
report definitions into historical folders (saves with unique names) and
then creates new report definition (again the report names are not
overlapping) and finally creates a snapshot of the new report.
> 1. Is there a way to avoid those deadlocks?
> 2. From the SQL Server log files it looks like there is some level of
pessimistic locking happening on some tables. Is that really necessary? It
seems like the operations that are being performed deal with independent
data elements that should not require any synchronization/serialization.
> 3. What level of parallelism is allowed when making concurrent calls to
the server on the same user id but within separate sessions? Are there any
restrictions?
> 4. Is there a place (maybe at MSDN) to report this as a real bug?
> I can also provide sql server trace log file with information about the
deadlock. No way to attach it here.
> ***********************************************************************
> SOAP Exception message when the deadlock occurs is as follows:
> ***********************************************************************
> Reason: An internal error occurred on the report server. See the error log
for m
> ore details. --> An internal error occurred on the report server. See the
error
> log for more details. --> Transaction (Process ID 55) was deadlocked on
lock res
> ources with another process and has been chosen as the deadlock victim.
Rerun th
> e transaction.
> 12:32:41,836 ERROR [STDERR] AxisFault
> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
> faultSubcode:
> faultString: An internal error occurred on the report server. See the
error log
> for more details. --> An internal error occurred on the report server.
See t
> he error log for more details. --> Transaction (Process ID 55) was
deadlocked
> on lock resources with another process and has been chosen as the
deadlock vict
> im. Rerun the transaction.
> faultActor: http://engw03dmrs1/ReportServer/ReportService.asmx
> faultNode:
> faultDetail:
> {http://www.microsoft.com/sql/reportingservices}ErrorCode:
rsInternalErr
> or
> {http://www.microsoft.com/sql/reportingservices}HttpStatus: 400
> {http://www.microsoft.com/sql/reportingservices}Message: An
internal err
> or occurred on the report server. See the error log for more details.
> {http://www.microsoft.com/sql/reportingservices}HelpLink:
http://go.micr
>
osoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnostic
> s.Utilities.ErrorStrings.resources.Strings&EvtID=rsInternalError&ProdNam
> e=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00
> {http://www.microsoft.com/sql/reportingservices}ProductName:
Microsoft S
> QL Server Reporting Services
> {http://www.microsoft.com/sql/reportingservices}ProductVersion:
8.00.878
> .00
> {http://www.microsoft.com/sql/reportingservices}ProductLocaleId:
127
> {http://www.microsoft.com/sql/reportingservices}OperatingSystem:
OsIndep
> endent
> {http://www.microsoft.com/sql/reportingservices}CountryLocaleId:
1033
> {http://www.microsoft.com/sql/reportingservices}MoreInformation:
> <Source>ReportingServicesLibrary</Source>
> <Message msrs:ErrorCode="rsInternalError"
msrs:HelpLink="http://go.mic
>
rosoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnosti
> cs.Utilities.ErrorStrings.resources.Strings&EvtID=rsInternalError&ProdNa
> me=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00"
xmlns:msrs=> "An">http://www.microsoft.com/sql/reportingservices">An internal error
occurred on t
> he report server. See the error log for more details.</Message>
> <MoreInformation>
> <Source>.Net SqlClient Data Provider</Source>
> <Message>Transaction (Process ID 55) was deadlocked on lock
resource
> s with another process and has been chosen as the deadlock victim. Rerun
the tra
> nsaction.</Message>
> </MoreInformation>
> {http://www.microsoft.com/sql/reportingservices}Warnings: null
>
In my test I am trying to run multiple concurrent SOAP sessions with a single admin level user account and in each session my process moves old report definitions into historical folders (saves with unique names) and then creates new report definition (again the report names are not overlapping) and finally creates a snapshot of the new report.
1. Is there a way to avoid those deadlocks?
2. From the SQL Server log files it looks like there is some level of pessimistic locking happening on some tables. Is that really necessary? It seems like the operations that are being performed deal with independent data elements that should not require any synchronization/serialization.
3. What level of parallelism is allowed when making concurrent calls to the server on the same user id but within separate sessions? Are there any restrictions?
4. Is there a place (maybe at MSDN) to report this as a real bug?
I can also provide sql server trace log file with information about the deadlock. No way to attach it here.
***********************************************************************
SOAP Exception message when the deadlock occurs is as follows:
***********************************************************************
Reason: An internal error occurred on the report server. See the error log for m
ore details. --> An internal error occurred on the report server. See the error
log for more details. --> Transaction (Process ID 55) was deadlocked on lock res
ources with another process and has been chosen as the deadlock victim. Rerun th
e transaction.
12:32:41,836 ERROR [STDERR] AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode:
faultString: An internal error occurred on the report server. See the error log
for more details. --> An internal error occurred on the report server. See t
he error log for more details. --> Transaction (Process ID 55) was deadlocked
on lock resources with another process and has been chosen as the deadlock vict
im. Rerun the transaction.
faultActor: http://engw03dmrs1/ReportServer/ReportService.asmx
faultNode:
faultDetail:
{http://www.microsoft.com/sql/reportingservices}ErrorCode: rsInternalErr
or
{http://www.microsoft.com/sql/reportingservices}HttpStatus: 400
{http://www.microsoft.com/sql/reportingservices}Message: An internal err
or occurred on the report server. See the error log for more details.
{http://www.microsoft.com/sql/reportingservices}HelpLink: http://go.micr
osoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnostic
s.Utilities.ErrorStrings.resources.Strings&EvtID=rsInternalError&ProdNam
e=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00
{http://www.microsoft.com/sql/reportingservices}ProductName: Microsoft S
QL Server Reporting Services
{http://www.microsoft.com/sql/reportingservices}ProductVersion: 8.00.878
.00
{http://www.microsoft.com/sql/reportingservices}ProductLocaleId: 127
{http://www.microsoft.com/sql/reportingservices}OperatingSystem: OsIndep
endent
{http://www.microsoft.com/sql/reportingservices}CountryLocaleId: 1033
{http://www.microsoft.com/sql/reportingservices}MoreInformation:
<Source>ReportingServicesLibrary</Source>
<Message msrs:ErrorCode="rsInternalError" msrs:HelpLink="http://go.mic
rosoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnosti
cs.Utilities.ErrorStrings.resources.Strings&EvtID=rsInternalError&ProdNa
me=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00" xmlns:msrs= "http://www.microsoft.com/sql/reportingservices">An internal error occurred on t
he report server. See the error log for more details.</Message>
<MoreInformation>
<Source>.Net SqlClient Data Provider</Source>
<Message>Transaction (Process ID 55) was deadlocked on lock resource
s with another process and has been chosen as the deadlock victim. Rerun the tra
nsaction.</Message>
</MoreInformation>
{http://www.microsoft.com/sql/reportingservices}Warnings: nullCan you contact me offline? Replace ms with microsoft.
Thanks
Tudor
--
Tudor Trufinescu
Dev Lead
Sql Server Reporting Services
This posting is provided "AS IS" with no warranties, and confers no rights.
"Tomasz" <Tomasz@.discussions.microsoft.com> wrote in message
news:B85F6392-B1B9-4FE0-B69B-D51E47C2EB4B@.microsoft.com...
> Reporting services is throwing deadlock exceptions which if retried (up to
10 times) sometimes succeed. When those exceptions happen Reporting Services
is coming to a halt waiting for the deadlock to resolve. Performance is
unacceptably degraded then.
> In my test I am trying to run multiple concurrent SOAP sessions with a
single admin level user account and in each session my process moves old
report definitions into historical folders (saves with unique names) and
then creates new report definition (again the report names are not
overlapping) and finally creates a snapshot of the new report.
> 1. Is there a way to avoid those deadlocks?
> 2. From the SQL Server log files it looks like there is some level of
pessimistic locking happening on some tables. Is that really necessary? It
seems like the operations that are being performed deal with independent
data elements that should not require any synchronization/serialization.
> 3. What level of parallelism is allowed when making concurrent calls to
the server on the same user id but within separate sessions? Are there any
restrictions?
> 4. Is there a place (maybe at MSDN) to report this as a real bug?
> I can also provide sql server trace log file with information about the
deadlock. No way to attach it here.
> ***********************************************************************
> SOAP Exception message when the deadlock occurs is as follows:
> ***********************************************************************
> Reason: An internal error occurred on the report server. See the error log
for m
> ore details. --> An internal error occurred on the report server. See the
error
> log for more details. --> Transaction (Process ID 55) was deadlocked on
lock res
> ources with another process and has been chosen as the deadlock victim.
Rerun th
> e transaction.
> 12:32:41,836 ERROR [STDERR] AxisFault
> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
> faultSubcode:
> faultString: An internal error occurred on the report server. See the
error log
> for more details. --> An internal error occurred on the report server.
See t
> he error log for more details. --> Transaction (Process ID 55) was
deadlocked
> on lock resources with another process and has been chosen as the
deadlock vict
> im. Rerun the transaction.
> faultActor: http://engw03dmrs1/ReportServer/ReportService.asmx
> faultNode:
> faultDetail:
> {http://www.microsoft.com/sql/reportingservices}ErrorCode:
rsInternalErr
> or
> {http://www.microsoft.com/sql/reportingservices}HttpStatus: 400
> {http://www.microsoft.com/sql/reportingservices}Message: An
internal err
> or occurred on the report server. See the error log for more details.
> {http://www.microsoft.com/sql/reportingservices}HelpLink:
http://go.micr
>
osoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnostic
> s.Utilities.ErrorStrings.resources.Strings&EvtID=rsInternalError&ProdNam
> e=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00
> {http://www.microsoft.com/sql/reportingservices}ProductName:
Microsoft S
> QL Server Reporting Services
> {http://www.microsoft.com/sql/reportingservices}ProductVersion:
8.00.878
> .00
> {http://www.microsoft.com/sql/reportingservices}ProductLocaleId:
127
> {http://www.microsoft.com/sql/reportingservices}OperatingSystem:
OsIndep
> endent
> {http://www.microsoft.com/sql/reportingservices}CountryLocaleId:
1033
> {http://www.microsoft.com/sql/reportingservices}MoreInformation:
> <Source>ReportingServicesLibrary</Source>
> <Message msrs:ErrorCode="rsInternalError"
msrs:HelpLink="http://go.mic
>
rosoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnosti
> cs.Utilities.ErrorStrings.resources.Strings&EvtID=rsInternalError&ProdNa
> me=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=8.00"
xmlns:msrs=> "An">http://www.microsoft.com/sql/reportingservices">An internal error
occurred on t
> he report server. See the error log for more details.</Message>
> <MoreInformation>
> <Source>.Net SqlClient Data Provider</Source>
> <Message>Transaction (Process ID 55) was deadlocked on lock
resource
> s with another process and has been chosen as the deadlock victim. Rerun
the tra
> nsaction.</Message>
> </MoreInformation>
> {http://www.microsoft.com/sql/reportingservices}Warnings: null
>
Wednesday, March 7, 2012
DCOM Error, Event ID 10016, DTS Server
Hi all,
I have a new SQL Server 2005 Standard SP2 install with just database
services and workstation components installed.
I've noticed the following system event error that appears twice each
time a maintenance task runs (the maintenance tasks do run
successfully):
--
Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10016
Date: 20/12/2007
Time: 11:00:00
User: [domain sql agent account]
Computer: [server name]
Description:
The application-specific permission settings do not grant Local Launch
permission for the COM Server application with CLSID
{SID}
to the user [domain sql agent account] SID (SID). This security
permission can be modified using the Component Services administrative
tool.
For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.
--
I've matched the CLSID given in the error to an entry an entry in the
registry that identifies Microsoft.SqlServer.Dts.Server.DtsServer. In
Component Services, there's a MsDtsServer listed under DCOM config.
Giving the domain sql agent account Local Launch access to this sorts
the error.
I'm a bit confused about this and am tempted to rebuild the server,
but would obviously like to avoid that if possible. I don't have SSIS
installed, so I don't understand why DTS is being used. I'd rather not
have an unnecessary service running, but I also don't want errors
showing up in the event log.
Any idea why this is happening? Does DTS need to be running even
though SSIS isn't installed? Any insight/suggestions are appreciated.
Regards.Hi
Have you checked out http://support.microsoft.com/kb/931355/en-us
John
"RJGiskard" wrote:
> Hi all,
> I have a new SQL Server 2005 Standard SP2 install with just database
> services and workstation components installed.
> I've noticed the following system event error that appears twice each
> time a maintenance task runs (the maintenance tasks do run
> successfully):
> --
> Event Type: Error
> Event Source: DCOM
> Event Category: None
> Event ID: 10016
> Date: 20/12/2007
> Time: 11:00:00
> User: [domain sql agent account]
> Computer: [server name]
> Description:
> The application-specific permission settings do not grant Local Launch
> permission for the COM Server application with CLSID
> {SID}
> to the user [domain sql agent account] SID (SID). This security
> permission can be modified using the Component Services administrative
> tool.
> For more information, see Help and Support Center at
> http://go.microsoft.com/fwlink/events.asp.
> --
> I've matched the CLSID given in the error to an entry an entry in the
> registry that identifies Microsoft.SqlServer.Dts.Server.DtsServer. In
> Component Services, there's a MsDtsServer listed under DCOM config.
> Giving the domain sql agent account Local Launch access to this sorts
> the error.
> I'm a bit confused about this and am tempted to rebuild the server,
> but would obviously like to avoid that if possible. I don't have SSIS
> installed, so I don't understand why DTS is being used. I'd rather not
> have an unnecessary service running, but I also don't want errors
> showing up in the event log.
> Any idea why this is happening? Does DTS need to be running even
> though SSIS isn't installed? Any insight/suggestions are appreciated.
> Regards.
>|||On 20 Dec, 16:41, John Bell <jbellnewspo...@.hotmail.com> wrote:
> Have you checked outhttp://support.microsoft.com/kb/931355/en-us
No, hadn't found that one. We are running SP2 on the W2K3 server, but
I gave that a go. I reveresed the changes I made earlier, tried the
changes suggested, but still get the error.
So is DTS required even though I don't have SSIS isn't installed? I
thought SSIS was the SQL Server 2005 replacement for DTS and that this
DTS Server was just a legacy naming thing but that it's actually SSIS.|||Hi
DTS is still the name behind the scenes.
I think Maintenance plans will use SSIS components, you could replace them
with the T-SQL scripts that do the equivalent tasks if you are using
Maintenance tasks.
John
"RJGiskard" wrote:
> On 20 Dec, 16:41, John Bell <jbellnewspo...@.hotmail.com> wrote:
> > Have you checked outhttp://support.microsoft.com/kb/931355/en-us
> No, hadn't found that one. We are running SP2 on the W2K3 server, but
> I gave that a go. I reveresed the changes I made earlier, tried the
> changes suggested, but still get the error.
> So is DTS required even though I don't have SSIS isn't installed? I
> thought SSIS was the SQL Server 2005 replacement for DTS and that this
> DTS Server was just a legacy naming thing but that it's actually SSIS.
>
I have a new SQL Server 2005 Standard SP2 install with just database
services and workstation components installed.
I've noticed the following system event error that appears twice each
time a maintenance task runs (the maintenance tasks do run
successfully):
--
Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10016
Date: 20/12/2007
Time: 11:00:00
User: [domain sql agent account]
Computer: [server name]
Description:
The application-specific permission settings do not grant Local Launch
permission for the COM Server application with CLSID
{SID}
to the user [domain sql agent account] SID (SID). This security
permission can be modified using the Component Services administrative
tool.
For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.
--
I've matched the CLSID given in the error to an entry an entry in the
registry that identifies Microsoft.SqlServer.Dts.Server.DtsServer. In
Component Services, there's a MsDtsServer listed under DCOM config.
Giving the domain sql agent account Local Launch access to this sorts
the error.
I'm a bit confused about this and am tempted to rebuild the server,
but would obviously like to avoid that if possible. I don't have SSIS
installed, so I don't understand why DTS is being used. I'd rather not
have an unnecessary service running, but I also don't want errors
showing up in the event log.
Any idea why this is happening? Does DTS need to be running even
though SSIS isn't installed? Any insight/suggestions are appreciated.
Regards.Hi
Have you checked out http://support.microsoft.com/kb/931355/en-us
John
"RJGiskard" wrote:
> Hi all,
> I have a new SQL Server 2005 Standard SP2 install with just database
> services and workstation components installed.
> I've noticed the following system event error that appears twice each
> time a maintenance task runs (the maintenance tasks do run
> successfully):
> --
> Event Type: Error
> Event Source: DCOM
> Event Category: None
> Event ID: 10016
> Date: 20/12/2007
> Time: 11:00:00
> User: [domain sql agent account]
> Computer: [server name]
> Description:
> The application-specific permission settings do not grant Local Launch
> permission for the COM Server application with CLSID
> {SID}
> to the user [domain sql agent account] SID (SID). This security
> permission can be modified using the Component Services administrative
> tool.
> For more information, see Help and Support Center at
> http://go.microsoft.com/fwlink/events.asp.
> --
> I've matched the CLSID given in the error to an entry an entry in the
> registry that identifies Microsoft.SqlServer.Dts.Server.DtsServer. In
> Component Services, there's a MsDtsServer listed under DCOM config.
> Giving the domain sql agent account Local Launch access to this sorts
> the error.
> I'm a bit confused about this and am tempted to rebuild the server,
> but would obviously like to avoid that if possible. I don't have SSIS
> installed, so I don't understand why DTS is being used. I'd rather not
> have an unnecessary service running, but I also don't want errors
> showing up in the event log.
> Any idea why this is happening? Does DTS need to be running even
> though SSIS isn't installed? Any insight/suggestions are appreciated.
> Regards.
>|||On 20 Dec, 16:41, John Bell <jbellnewspo...@.hotmail.com> wrote:
> Have you checked outhttp://support.microsoft.com/kb/931355/en-us
No, hadn't found that one. We are running SP2 on the W2K3 server, but
I gave that a go. I reveresed the changes I made earlier, tried the
changes suggested, but still get the error.
So is DTS required even though I don't have SSIS isn't installed? I
thought SSIS was the SQL Server 2005 replacement for DTS and that this
DTS Server was just a legacy naming thing but that it's actually SSIS.|||Hi
DTS is still the name behind the scenes.
I think Maintenance plans will use SSIS components, you could replace them
with the T-SQL scripts that do the equivalent tasks if you are using
Maintenance tasks.
John
"RJGiskard" wrote:
> On 20 Dec, 16:41, John Bell <jbellnewspo...@.hotmail.com> wrote:
> > Have you checked outhttp://support.microsoft.com/kb/931355/en-us
> No, hadn't found that one. We are running SP2 on the W2K3 server, but
> I gave that a go. I reveresed the changes I made earlier, tried the
> changes suggested, but still get the error.
> So is DTS required even though I don't have SSIS isn't installed? I
> thought SSIS was the SQL Server 2005 replacement for DTS and that this
> DTS Server was just a legacy naming thing but that it's actually SSIS.
>
Friday, February 24, 2012
dbo.f_myfunction only works for me and not other users using RS
I wrote a udf in sql server for my dataset for a report in Reporting
Services. I publish the report to the Report Server, and I can invoke the
report, but other users get an error message that they don't have the
permissions to run this udf. How do I establish permissions so that everyone
who is authorized to use RS reports on/from our intranet can run this udf?
Where do I set the permissions? Do I do this at the Sql Server end?
Thanks,
RichThis is set at SQL Server. If SQL 2005, right mouse click on the function,
properties, permission. You could give public permission to it. I have a
role specifically for RS users that I use for assigning rights to my stored
procedures and to my functions.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"Rich" <Rich@.discussions.microsoft.com> wrote in message
news:4FAA8268-64F0-49E8-AF13-EDCBE2552604@.microsoft.com...
>I wrote a udf in sql server for my dataset for a report in Reporting
> Services. I publish the report to the Report Server, and I can invoke the
> report, but other users get an error message that they don't have the
> permissions to run this udf. How do I establish permissions so that
> everyone
> who is authorized to use RS reports on/from our intranet can run this udf?
> Where do I set the permissions? Do I do this at the Sql Server end?
> Thanks,
> Rich|||Thank you for your reply. Of course, I am using Sql Server 2000. So, may I
ask, do I want to set a role for this udf or do I want to go to the server
security and assign permissions there?
Thanks,
Rich
"Bruce L-C [MVP]" wrote:
> This is set at SQL Server. If SQL 2005, right mouse click on the function,
> properties, permission. You could give public permission to it. I have a
> role specifically for RS users that I use for assigning rights to my stored
> procedures and to my functions.
>
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
> "Rich" <Rich@.discussions.microsoft.com> wrote in message
> news:4FAA8268-64F0-49E8-AF13-EDCBE2552604@.microsoft.com...
> >I wrote a udf in sql server for my dataset for a report in Reporting
> > Services. I publish the report to the Report Server, and I can invoke the
> > report, but other users get an error message that they don't have the
> > permissions to run this udf. How do I establish permissions so that
> > everyone
> > who is authorized to use RS reports on/from our intranet can run this udf?
> > Where do I set the permissions? Do I do this at the Sql Server end?
> >
> > Thanks,
> > Rich
>
>|||I think I got it. I right-clicked on the udf - all tasks - set permissions -
execute set to public. Hope that does it.
"Rich" wrote:
> Thank you for your reply. Of course, I am using Sql Server 2000. So, may I
> ask, do I want to set a role for this udf or do I want to go to the server
> security and assign permissions there?
> Thanks,
> Rich
> "Bruce L-C [MVP]" wrote:
> > This is set at SQL Server. If SQL 2005, right mouse click on the function,
> > properties, permission. You could give public permission to it. I have a
> > role specifically for RS users that I use for assigning rights to my stored
> > procedures and to my functions.
> >
> >
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> >
> > "Rich" <Rich@.discussions.microsoft.com> wrote in message
> > news:4FAA8268-64F0-49E8-AF13-EDCBE2552604@.microsoft.com...
> > >I wrote a udf in sql server for my dataset for a report in Reporting
> > > Services. I publish the report to the Report Server, and I can invoke the
> > > report, but other users get an error message that they don't have the
> > > permissions to run this udf. How do I establish permissions so that
> > > everyone
> > > who is authorized to use RS reports on/from our intranet can run this udf?
> > > Where do I set the permissions? Do I do this at the Sql Server end?
> > >
> > > Thanks,
> > > Rich
> >
> >
> >
Services. I publish the report to the Report Server, and I can invoke the
report, but other users get an error message that they don't have the
permissions to run this udf. How do I establish permissions so that everyone
who is authorized to use RS reports on/from our intranet can run this udf?
Where do I set the permissions? Do I do this at the Sql Server end?
Thanks,
RichThis is set at SQL Server. If SQL 2005, right mouse click on the function,
properties, permission. You could give public permission to it. I have a
role specifically for RS users that I use for assigning rights to my stored
procedures and to my functions.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"Rich" <Rich@.discussions.microsoft.com> wrote in message
news:4FAA8268-64F0-49E8-AF13-EDCBE2552604@.microsoft.com...
>I wrote a udf in sql server for my dataset for a report in Reporting
> Services. I publish the report to the Report Server, and I can invoke the
> report, but other users get an error message that they don't have the
> permissions to run this udf. How do I establish permissions so that
> everyone
> who is authorized to use RS reports on/from our intranet can run this udf?
> Where do I set the permissions? Do I do this at the Sql Server end?
> Thanks,
> Rich|||Thank you for your reply. Of course, I am using Sql Server 2000. So, may I
ask, do I want to set a role for this udf or do I want to go to the server
security and assign permissions there?
Thanks,
Rich
"Bruce L-C [MVP]" wrote:
> This is set at SQL Server. If SQL 2005, right mouse click on the function,
> properties, permission. You could give public permission to it. I have a
> role specifically for RS users that I use for assigning rights to my stored
> procedures and to my functions.
>
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
> "Rich" <Rich@.discussions.microsoft.com> wrote in message
> news:4FAA8268-64F0-49E8-AF13-EDCBE2552604@.microsoft.com...
> >I wrote a udf in sql server for my dataset for a report in Reporting
> > Services. I publish the report to the Report Server, and I can invoke the
> > report, but other users get an error message that they don't have the
> > permissions to run this udf. How do I establish permissions so that
> > everyone
> > who is authorized to use RS reports on/from our intranet can run this udf?
> > Where do I set the permissions? Do I do this at the Sql Server end?
> >
> > Thanks,
> > Rich
>
>|||I think I got it. I right-clicked on the udf - all tasks - set permissions -
execute set to public. Hope that does it.
"Rich" wrote:
> Thank you for your reply. Of course, I am using Sql Server 2000. So, may I
> ask, do I want to set a role for this udf or do I want to go to the server
> security and assign permissions there?
> Thanks,
> Rich
> "Bruce L-C [MVP]" wrote:
> > This is set at SQL Server. If SQL 2005, right mouse click on the function,
> > properties, permission. You could give public permission to it. I have a
> > role specifically for RS users that I use for assigning rights to my stored
> > procedures and to my functions.
> >
> >
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> >
> > "Rich" <Rich@.discussions.microsoft.com> wrote in message
> > news:4FAA8268-64F0-49E8-AF13-EDCBE2552604@.microsoft.com...
> > >I wrote a udf in sql server for my dataset for a report in Reporting
> > > Services. I publish the report to the Report Server, and I can invoke the
> > > report, but other users get an error message that they don't have the
> > > permissions to run this udf. How do I establish permissions so that
> > > everyone
> > > who is authorized to use RS reports on/from our intranet can run this udf?
> > > Where do I set the permissions? Do I do this at the Sql Server end?
> > >
> > > Thanks,
> > > Rich
> >
> >
> >
Subscribe to:
Posts (Atom)