|
Home > Archive > Commerce Server General > September 2006 > Exception thrown from advertising pipeline (0x8002000a)
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 |
Exception thrown from advertising pipeline (0x8002000a)
|
|
| Phil Mellor 2006-09-01, 7:40 pm |
| Hi,
We're having problems with the advertising component in Commerce Server.
We're not sure what the specific cause is, but the problem only occurs when
we have too many page groups (more specifically, too many page groups
assigned to a particular campaign item, we think).
We have 203 page groups (this may rise - we assign page groups to channels
and/or postings in MCMS as necessary). We have 34 campaign items.
There are 230 rows in the page_group_xref table. Most campaign items are
only assigned to one page group, but a couple are assigned to about 100 page
groups each. Most page groups only have one campaign item assigned, but one
of them has 28.
When we use the advertising pipeline to select adverts, we get the following
error:
ProgID: Commerce.CSFInitPipeline.1
Failure during cache refresh in component Commerce.CSFLoadAdvertisements:
Hresult: 0x8002000a
at Microsoft.CommerceServer.Interop.PooledPipelineClass.Execute(Int32
lMode, Object pdispOrder, Object pdispContext, Int32 lFlags)
at
Microsoft.CommerceServer.Runtime.Pipelines.ContentSelectionPipeline.Execute(Object order, Object context)
--- End of inner exception stack trace ---
at
Microsoft.CommerceServer.Runtime.Pipelines.ContentSelectionPipeline.Execute(Object order, Object context)
at Microsoft.CommerceServer.Runtime.Targeting.ContentSelector.GetContent()
at WebCommerce.Adverts.WebAdvert.GetHtml()
This is the code that throws the exception:
public string GetHtml()
{
// Get the advertising selector from the current commerce server context
CommerceContext context = CommerceContext.Current;
ContentSelector selector =
context.TargetingSystem.SelectionContexts["advertising"].GetSelector();
// Specify the number of adverts required
selector.ItemsRequested = this.NumberOfAdverts; // usually 5
// Target at a particular page group
if (this.PageGroup != null)
{
Profile targetingContextProfile =
context.TargetingSystem.TargetingContextProfile;
targetingContextProfile["PageGroup"].Value = this.PageGroup;
selector.Profiles.Add("targetingContext", targetingContextProfile);
}
// Target at a particular user
if (this.User != null)
{
selector.Profiles.Add("user", this.User.GetCommerceServerProfile());
}
// Get the content - if an applicable ad is selected, return its HTML
StringCollection contents = selector.GetContent(); // <-- exception thrown
here
....
}
In web.config we have defined the advertising cache:
<cache
name="Advertising"
type="Advertising"
cacheSize="200000" <-- not sure if this setting helps?
refreshInterval="900"
retryInterval="30" />
We are running:
Commerce Server 2002, FP1, MSIB, and MCMS on Windows Server 2003;
SQL Server 2000 on Windows 2003
Is there a limitation in Commerce Server as to how many pagegroups/campaigns
we can assign, and if so can this be changed in a config file or registry
setting?
Is the cache size the problem, if so can it be increased? Is there a way to
calculate the required size?
Can anybody explain what is going wrong?
Cheers,
Phil Mellor
Diagonal Solutions
| |
| Colin Bowern 2006-09-07, 7:31 am |
| Hi Phil,
I don't have a lot of experience with the advertising and marketing bits in
CS but I can confirm that you are seeing an overflow exception based on the
error code. I'm assuming the component was working at a point in time. Has
the only change affecting the advertising components since then been the
growth in page groups?
Cheers,
Colin
"Phil Mellor" <Phil Mellor@discussions.microsoft.com> wrote in message
news:F9086E15-3ED3-4826-9613-3871A1099A51@microsoft.com...
> Hi,
>
> We're having problems with the advertising component in Commerce Server.
> We're not sure what the specific cause is, but the problem only occurs
> when
> we have too many page groups (more specifically, too many page groups
> assigned to a particular campaign item, we think).
>
> We have 203 page groups (this may rise - we assign page groups to channels
> and/or postings in MCMS as necessary). We have 34 campaign items.
>
> There are 230 rows in the page_group_xref table. Most campaign items are
> only assigned to one page group, but a couple are assigned to about 100
> page
> groups each. Most page groups only have one campaign item assigned, but
> one
> of them has 28.
>
>
> When we use the advertising pipeline to select adverts, we get the
> following
> error:
>
> ProgID: Commerce.CSFInitPipeline.1
> Failure during cache refresh in component Commerce.CSFLoadAdvertisements:
> Hresult: 0x8002000a
> at Microsoft.CommerceServer.Interop.PooledPipelineClass.Execute(Int32
> lMode, Object pdispOrder, Object pdispContext, Int32 lFlags)
> at
> Microsoft.CommerceServer.Runtime.Pipelines.ContentSelectionPipeline.Execute(Object
> order, Object context)
> --- End of inner exception stack trace ---
> at
> Microsoft.CommerceServer.Runtime.Pipelines.ContentSelectionPipeline.Execute(Object
> order, Object context)
> at
> Microsoft.CommerceServer.Runtime.Targeting.ContentSelector.GetContent()
> at WebCommerce.Adverts.WebAdvert.GetHtml()
>
>
> This is the code that throws the exception:
>
> public string GetHtml()
> {
> // Get the advertising selector from the current commerce server context
> CommerceContext context = CommerceContext.Current;
> ContentSelector selector =
> context.TargetingSystem.SelectionContexts["advertising"].GetSelector();
>
> // Specify the number of adverts required
> selector.ItemsRequested = this.NumberOfAdverts; // usually 5
>
> // Target at a particular page group
> if (this.PageGroup != null)
> {
> Profile targetingContextProfile =
> context.TargetingSystem.TargetingContextProfile;
> targetingContextProfile["PageGroup"].Value = this.PageGroup;
> selector.Profiles.Add("targetingContext", targetingContextProfile);
> }
>
> // Target at a particular user
> if (this.User != null)
> {
> selector.Profiles.Add("user", this.User.GetCommerceServerProfile());
> }
>
> // Get the content - if an applicable ad is selected, return its HTML
> StringCollection contents = selector.GetContent(); // <-- exception thrown
> here
> ...
> }
>
>
> In web.config we have defined the advertising cache:
> <cache
> name="Advertising"
> type="Advertising"
> cacheSize="200000" <-- not sure if this setting helps?
> refreshInterval="900"
> retryInterval="30" />
>
> We are running:
> Commerce Server 2002, FP1, MSIB, and MCMS on Windows Server 2003;
> SQL Server 2000 on Windows 2003
>
>
> Is there a limitation in Commerce Server as to how many
> pagegroups/campaigns
> we can assign, and if so can this be changed in a config file or registry
> setting?
>
> Is the cache size the problem, if so can it be increased? Is there a way
> to
> calculate the required size?
>
> Can anybody explain what is going wrong?
>
>
> Cheers,
>
> Phil Mellor
> Diagonal Solutions
| |
| Phil Mellor 2006-09-11, 1:23 pm |
| Hi Colin,
Yes, the main change is the increase in page groups (and, therefore, the
number of page groups assigned to each advert). I think it starts working
again once we assign fewer page groups to the adverts.
The only other changes are that we now require up to 5 adverts to be
returned (previously just 1), and we do not specify a size (previously we
did).
Cheers,
Phil
"Colin Bowern" wrote:
> Hi Phil,
>
> I don't have a lot of experience with the advertising and marketing bits in
> CS but I can confirm that you are seeing an overflow exception based on the
> error code. I'm assuming the component was working at a point in time. Has
> the only change affecting the advertising components since then been the
> growth in page groups?
>
> Cheers,
> Colin
>
>
> "Phil Mellor" <Phil Mellor@discussions.microsoft.com> wrote in message
> news:F9086E15-3ED3-4826-9613-3871A1099A51@microsoft.com...
>
|
|
|
|
|