Content type cache (commerce & cms)

Vote:
 

Dear epi developers, 

Background:

We're having performance issues when loading content-types. When spinning up the app-pool, the content-types are loaded in around 2 minutes of time. At first our solution couldn't initialize at all because the ajax-call (for loading content types) timed out (timeout of 60 sec.). Thus the initialization of the structuremap container failed. Raising the timeouts to 3 minutes fixed the problem. Even though the initialization time is somwhat anoying, this is however acceptable taken into regard that we have a lot of content types.

The problem:

When logging in into the editmode as an epi webmaster/administrator, the initialization starts over once again. An ajax method (GET /epiui/edit/cms/Stores/contenttype/) is once again loading, taking more than 2 minutes, and delaying all subsequent ajax calls. Thus the epi backend is hanging for 2 minutes, resulting in frustation with the webmaster. 

The question:

  1. Is there a way to share the content type cache between regular users and the backend users? Is the ioc container different for the two user types or why is the content type cache loading again?
  2. Is there a way to speed up content type loading?

System info: 

Episerver CMS + Commerce: Version 8.

inRiver PIM + Episerver connector: Version 6.

Thanks. 

/Jonas Johansen

#151359
Jul 18, 2016 14:51
Vote:
 

That's strange. You are sure it's the content types that are the cause of the performance problem and not something else that initializes at the same time? Does log4net logs say anything on info level?

I know there was a performance problem earlier if you had the same sort order on many properties. So that might be an idea if the content types really is a problem. Adding guids to all of them will probably help a little too. How many content types are we talking about :)

#151378
Jul 19, 2016 9:34
Vote:
 

By default all dll's in the bin will be scanned for content types and such. You can exclude dll's form being scanned.

David Knipe made a tool for it once, to scan your bin folder dor dll's that can be excluded form scanning, I have updated it to work with v9 and vs2015, have not blogged about it yet, but it's on GitHub, you can easily adapt it to work with v8, or maybe you don't need to.

You could also exclude dll's manually of course in the episerver.framework node

<scanAssembly forceBinFolderScan="true">
      <add assembly="*" />
      <remove assembly="Antlr3.Runtime" />
      <remove assembly="Castle.Core" />
      <remove assembly="Castle.Windsor" />      
      
      ....
     
</scanAssembly>

This should at least spead up the loading

#151382
Jul 19, 2016 12:59
Vote:
 

Thank you both. 

@Daniel: This is the AJAX call that is 2 mins to finish loading: 

Request: GET /epiui/edit/cms/Stores/contenttype/ HTTP/1.1 

Respond can be found here: http://pastebin.com/XxUtT9Fi and inspected with http://jsonviewer.stack.hu/ or other similar tools. 

#151389
Jul 19, 2016 15:30
Vote:
 

@Jeroen: The scan-trick speeded up the initialization with a couple of seconds, but I can't see any effect when loading the content types.

@Daniel: Does the response seem sane to you? To me it seems quite comprehensive - even though I still cannot see why it would take 2 minutes to create the data.

#151395
Jul 20, 2016 9:45
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.