|
Home > Archive > Commerce Server General > October 2006 > Deadlocks in Catalog Web Service Calls
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Deadlocks in Catalog Web Service Calls
|
|
| Colin Bowern 2006-10-31, 7:21 pm |
| I'm doing the first test deployment of our completed CS2007 site. I'm
running into some SQL deadlocks when there is only a single user hitting the
server. Has anyone else seen similar behaviour?
---
Event Type: Error
Event Source: Commerce Server Web Services
Event Category: None
Event ID: 1
Date: 10/31/2006
Time: 3:02:03 PM
User: N/A
Computer: TESTWEB02
Description:
An exception occurred in the 'CatalogWebService' Web service. Exception
details follow:
Microsoft.CommerceServer.Catalog.CatalogDatabaseException: Could not get the
root products for the catalog. ---> System.Data.SqlClient.SqlException:
Transaction (Process ID 67) was deadlocked on lock resources with another
process and has been chosen as the deadlock victim. Rerun the transaction.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection)
at
System.Data.SqlClient.TdsParser. ThrowExceptionAndWarning(TdsParserStateO
bject
stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.HasMoreRows()
at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
at System.Data.SqlClient.SqlDataReader.Read()
at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset,
DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32
startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object
parentChapterValue)
at System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable,
IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset,
DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String
srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32
startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String
srcTable)
at
Microsoft.CommerceServer.Catalog.Internal.SqlHelper.ExecuteDataset(SqlConnection
connection, CommandType commandType, String commandText, CatalogDataSetType
catalogDataSetType, SqlParameter[] commandParameters, String
outParameterName, Object& outParameterValue)
at
Microsoft.CommerceServer.Catalog.Internal.SqlHelper.ExecuteDataset(SqlConnection
connection, String spName, CatalogDataSetType catalogDataSetType, Object[]
parameterValues, String outParameterName, Object& outParameterValue)
at
Microsoft.CommerceServer.Catalog.Internal.SqlHelper.ExecuteDataset(ExecutionContext
executionContext, String spName, Object[] parameterValues,
CatalogDataSetType catalogDataSetType, String outParameterName, Object&
outParameterValue)
at
Microsoft.CommerceServer.Catalog.Internal.CatalogCache.GetDataset(ExecutionContext
executionContext, CacheItemType cacheItemType, String storedProcedureName,
CatalogDataSetType catalogDataSetType, Boolean getFromCache, Object[]
parameters, String outParameterName, Object& recordCount, Boolean&
obtainedFromCache)
at
Microsoft.CommerceServer.Catalog.Internal.CatalogProducts.GetRootProducts(CatalogExecutionContext
executionContext, String catalogName, Boolean isVirtualCatalog, String
language, CatalogJoinType joinType, String targetTableName, String
sourceJoinKey, String targetJoinKey, CatalogSearchOptions searchOptions,
InventoryOptions inventoryOptions, Boolean getFromCache, Int32&
totalRecords)
--- End of inner exception stack trace ---
at
Microsoft.CommerceServer.Catalog.Internal.CatalogProducts.GetRootProducts(CatalogExecutionContext
executionContext, String catalogName, Boolean isVirtualCatalog, String
language, CatalogJoinType joinType, String targetTableName, String
sourceJoinKey, String targetJoinKey, CatalogSearchOptions searchOptions,
InventoryOptions inventoryOptions, Boolean getFromCache, Int32&
totalRecords)
at
Microsoft.CommerceServer.Catalog.Internal.Category. GetChildProducts(CatalogExecutionContext
context, String baseCatalogName, Boolean isVirtualCatalog, String
catalogName, String categoryName, Int32 oid, CatalogSearchOptions
searchOptions, InventoryOptions inventoryOptions, Boolean recursive,
JoinTableInformation joinTableInformation, String language, Boolean
getFromCache, Int32& totalRecords)
at
Microsoft.CommerceServer.Catalog.Internal.Category. GetChildProducts(CatalogExecutionContext
context, String baseCatalogName, Boolean isVirtualCatalog, String
catalogName, String categoryName, Int32 oid, CatalogSearchOptions cso,
InventoryOptions inventoryOptions, Boolean recursive, String swc,
JoinTableInformation joinTableInformation, String language, Boolean
getFromCache, Int32& totalRecords)
at
Microsoft.CommerceServer.Catalog.Internal.Category.PreLoadCategory(CatalogExecutionContext
context, Category category, CategoryConfiguration config, Boolean
getFromCache, Boolean relationshipsExist)
at
Microsoft.CommerceServer.Catalog.Internal.Category.GetCategoryData(CatalogExecutionContext
catalogExecutionContext, String catalogName, String categoryName, String
language, Nullable`1 isVC, Nullable`1 validateLanguage,
CategoryConfiguration config, Boolean getFromCache)
at
Microsoft.CommerceServer.Catalog.Internal.CatalogServerContextBase.GetCategory(String
catalogName, String categoryName, String language, CategoryConfiguration
config, Boolean getFromCache, Nullable`1 isVirtualCatalog, Nullable`1
validateLanguage)
For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.
---
thanks,
Colin
| |
| Joseph Johnson 2006-10-31, 7:21 pm |
| Colin,
Just out of curiousity, why is your ASP.Net application making a call to the
CatalogWebService? You should be able to access the same functionality
using the local CommerceContext object.
Joe
"Colin Bowern" <colin.bowern@nospam.officialcommunity.com> wrote in message
news:uU8elhS$GHA.4708@TK2MSFTNGP05.phx.gbl...
> I'm doing the first test deployment of our completed CS2007 site. I'm
> running into some SQL deadlocks when there is only a single user hitting
> the server. Has anyone else seen similar behaviour?
>
> ---
> Event Type: Error
> Event Source: Commerce Server Web Services
> Event Category: None
> Event ID: 1
> Date: 10/31/2006
> Time: 3:02:03 PM
> User: N/A
> Computer: TESTWEB02
> Description:
> An exception occurred in the 'CatalogWebService' Web service. Exception
> details follow:
>
> Microsoft.CommerceServer.Catalog.CatalogDatabaseException: Could not get
> the root products for the catalog. --->
> System.Data.SqlClient.SqlException: Transaction (Process ID 67) was
> deadlocked on lock resources with another process and has been chosen as
> the deadlock victim. Rerun the transaction.
> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
> Boolean breakConnection)
> at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
> exception, Boolean breakConnection)
> at
> System.Data.SqlClient.TdsParser. ThrowExceptionAndWarning(TdsParserStateO
bject
> stateObj)
> at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
> SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
> bulkCopyHandler, TdsParserStateObject stateObj)
> at System.Data.SqlClient.SqlDataReader.HasMoreRows()
> at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
> at System.Data.SqlClient.SqlDataReader.Read()
> at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
> at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset,
> DataTable datatable, String srcTable, DataReaderContainer dataReader,
> Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn,
> Object parentChapterValue)
> at System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable,
> IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
> at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset,
> DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String
> srcTable, IDbCommand command, CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32
> startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
> CommandBehavior behavior)
> at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String
> srcTable)
> at
> Microsoft.CommerceServer.Catalog.Internal.SqlHelper.ExecuteDataset(SqlConnection
> connection, CommandType commandType, String commandText,
> CatalogDataSetType catalogDataSetType, SqlParameter[] commandParameters,
> String outParameterName, Object& outParameterValue)
> at
> Microsoft.CommerceServer.Catalog.Internal.SqlHelper.ExecuteDataset(SqlConnection
> connection, String spName, CatalogDataSetType catalogDataSetType, Object[]
> parameterValues, String outParameterName, Object& outParameterValue)
> at
> Microsoft.CommerceServer.Catalog.Internal.SqlHelper.ExecuteDataset(ExecutionContext
> executionContext, String spName, Object[] parameterValues,
> CatalogDataSetType catalogDataSetType, String outParameterName, Object&
> outParameterValue)
> at
> Microsoft.CommerceServer.Catalog.Internal.CatalogCache.GetDataset(ExecutionContext
> executionContext, CacheItemType cacheItemType, String storedProcedureName,
> CatalogDataSetType catalogDataSetType, Boolean getFromCache, Object[]
> parameters, String outParameterName, Object& recordCount, Boolean&
> obtainedFromCache)
> at
> Microsoft.CommerceServer.Catalog.Internal.CatalogProducts.GetRootProducts(CatalogExecutionContext
> executionContext, String catalogName, Boolean isVirtualCatalog, String
> language, CatalogJoinType joinType, String targetTableName, String
> sourceJoinKey, String targetJoinKey, CatalogSearchOptions searchOptions,
> InventoryOptions inventoryOptions, Boolean getFromCache, Int32&
> totalRecords)
> --- End of inner exception stack trace ---
> at
> Microsoft.CommerceServer.Catalog.Internal.CatalogProducts.GetRootProducts(CatalogExecutionContext
> executionContext, String catalogName, Boolean isVirtualCatalog, String
> language, CatalogJoinType joinType, String targetTableName, String
> sourceJoinKey, String targetJoinKey, CatalogSearchOptions searchOptions,
> InventoryOptions inventoryOptions, Boolean getFromCache, Int32&
> totalRecords)
> at
> Microsoft.CommerceServer.Catalog.Internal.Category. GetChildProducts(CatalogExecutionContext
> context, String baseCatalogName, Boolean isVirtualCatalog, String
> catalogName, String categoryName, Int32 oid, CatalogSearchOptions
> searchOptions, InventoryOptions inventoryOptions, Boolean recursive,
> JoinTableInformation joinTableInformation, String language, Boolean
> getFromCache, Int32& totalRecords)
> at
> Microsoft.CommerceServer.Catalog.Internal.Category. GetChildProducts(CatalogExecutionContext
> context, String baseCatalogName, Boolean isVirtualCatalog, String
> catalogName, String categoryName, Int32 oid, CatalogSearchOptions cso,
> InventoryOptions inventoryOptions, Boolean recursive, String swc,
> JoinTableInformation joinTableInformation, String language, Boolean
> getFromCache, Int32& totalRecords)
> at
> Microsoft.CommerceServer.Catalog.Internal.Category.PreLoadCategory(CatalogExecutionContext
> context, Category category, CategoryConfiguration config, Boolean
> getFromCache, Boolean relationshipsExist)
> at
> Microsoft.CommerceServer.Catalog.Internal.Category.GetCategoryData(CatalogExecutionContext
> catalogExecutionContext, String catalogName, String categoryName, String
> language, Nullable`1 isVC, Nullable`1 validateLanguage,
> CategoryConfiguration config, Boolean getFromCache)
> at
> Microsoft.CommerceServer.Catalog.Internal.CatalogServerContextBase.GetCategory(String
> catalogName, String categoryName, String language, CategoryConfiguration
> config, Boolean getFromCache, Nullable`1 isVirtualCatalog, Nullable`1
> validateLanguage)
>
> For more information, see Help and Support Center at
> http://go.microsoft.com/fwlink/events.asp.
> ---
>
> thanks,
> Colin
>
| |
| Colin Bowern 2006-10-31, 7:21 pm |
| Hey Joseph,
It was actually the Catalog Manager that was triggering this. It may have
been an unpack issue. I re-ran the SQL scripts for the Inventory database
components and checked permissions and things seem to be working now. Weird
though because I'm still unsure as to the root cause.
Thanks,
Colin
"Joseph Johnson" <joe8t88@hotmail.com> wrote in message
news:OUui8zS$GHA.4704@TK2MSFTNGP04.phx.gbl...
> Colin,
>
> Just out of curiousity, why is your ASP.Net application making a call to
> the CatalogWebService? You should be able to access the same
> functionality using the local CommerceContext object.
>
> Joe
>
> "Colin Bowern" <colin.bowern@nospam.officialcommunity.com> wrote in
> message news:uU8elhS$GHA.4708@TK2MSFTNGP05.phx.gbl...
>
>
|
|
|
|
|