Below are our environment and web application details:
SDL Tridion 2013 SP1 HR1, Oracle DB, DXA1.2
We are facing an intermittent error “exception while deserializing into CP” in the publisher log in PROD whenever there is an high load.
I have raised a question about this already DXA 1.2 intermittent issue in JSON output and got feedback that upgrade would fix the issue. But, I see the same issue with DXA1.5 as posted here DXA 1.5 intermittent issue in JSON output
To explore this issue more, we have started to download/build and debug the DXA 1.2 content management solutions by adding more logs in the following classes.
- “DD4T.Templates.Base.Builder.ComponentPresentationBuilder.cs”,
- “DD4T.Serialization.SerializerServiceFactory.cs”,
- “DD4T.Serialization.JSONSerializerService.cs”.
To debug/add more logs we have followed the below steps to get the solution up and running:
- Downloaded the DXA1.2 CM solutions from here. https://github.com/sdl/dxa-content-management/tree/release/1.2
- We checked this page https://github.com/sdl/dxa-content-management/tree/release/1.2/_references/dd4t-update and found that DD4T used in DXA1.2 CMS side is from here https://github.com/sdl/DD4T.TridionTemplates/tree/feature/ecl-data and downloaded the DD4T CM solution as well.
- We wanted to debug the “DD4T.Model” project as well. So, we have downloaded the “DD4T.Model” project from here https://github.com/sdl/DD4T.Model/tree/DXA_1.2_Release "The reason why we didn’t downloaded the “2.0.4-beta1” is this does not have the updates to deal the “ECL” which is required in the “DD4T ecl” branch “EclProcessor.cs” class"
- Now, after downloading all the above 3 solutions, we are able to build and compile the solutions without any issue.
- To create the “DD4T.Templates.merged.dll”, we have followed the steps from here. DD4T - Generate DD4T.Templates.merged.dll using ILMerge manually
Question:
- Can anyone confirm the GitHub repositories that were used to download the solutions are correct?
Also, can anyone confirm the steps that were recommended to create the “DD4T.Templates.merged.dll” are correct? Especially the “DLL’s” order and no of input DLL’s.
a. The reason behind this question is to avoid any merge issue when we are adding more custom logs in a working PROD environment.
When we check this class https://github.com/dd4t/DD4T.Model/blob/master/source/DD4T.Serialization/JSONSerializerService.cs we found that there is an fix for the concurrency issue. We don’t have that fix in the above mentioned solution’s and in our PROD (decompiled the dll and checked that). Will this fix also potentially resolve the intermittent issue “exception while deserializing into CP”?
a. This concurrency fix is done in the “DD4T” repository not in the “SDL” repository. But we have downloaded all the 3 solutions from the “SDL” repository. So, we are not sure we can have this fix in our downloaded code and not sure whether this will fix the deserializing error. Any thoughts on this?
b. Also, we have opened an issue here https://github.com/dd4t/DD4T.Model/issues/35
Note:
- When I decompile the dll “DD4T.Templates.merged.dll” from PROD, I found that the dll version is “2.0.4.0”. I understand that the first input DLL (DD4T.ContentModel.Contracts.dll) version will be carried to merged dll.
- But in the above DD4T ecl branch solution the referred “DD4T.Model” version is “2.0.5.19-alpha”. So to get the closest DD4T.Model project, we have downloaded the DD4T.Model solution from here.