Performance Issue during the conversion from Excel to PDF

CPU Starvation Issue during the conversion of Excel sheets to PDF

Application Server : Websphere V9
JDK :8

IBM Support Commented


Hi Ahmed

i have reviewed the latest dumps and these are showing the following large consumer of the heap -

The thread com.ibm.ws.util.ThreadPool$Worker @ 0x69b0e7f80 [HUNG] WebContainer : 103 keeps local variables with total size 3,608,811,968 (68.03%) bytes.

The memory is accumulated in one instance of “com.ibm.ws.util.ThreadPool$Worker” which occupies 3,608,811,968 (68.03%) bytes.

[HUNG] WebContainer : 103

at com.aspose.cells.b.a.d.j44.b(I)V (null(Compiled Code))

at com.aspose.cells.b.a.d.j44.c(I)Z (null(Compiled Code))

at com.aspose.cells.b.a.d.j44.a_(B)V (null(Compiled Code))

at com.aspose.cells.a.b.s1.a(Ljava/lang/String;)V (null(Compiled Code))

at com.aspose.cells.a.b.s1.b(Ljava/lang/String;)V (null(Compiled Code))

at com.aspose.cells.a.b.w1.c(Ljava/lang/String;)V (null(Compiled Code))

at com.aspose.cells.a.b.w_.a(Lcom/aspose/cells/a/b/j;)V (null(Compiled Code))

at com.aspose.cells.a.b.j9.a(Lcom/aspose/cells/a/b/j;)V (null(Compiled Code))

at com.aspose.cells.a.b.j.a(Lcom/aspose/cells/a/b/k2;)V (null(Compiled Code))

at com.aspose.cells.a.b.g.a(Lcom/aspose/cells/a/b/k2;)V (null(Compiled Code))

at com.aspose.cells.a.b.x.a(Lcom/aspose/cells/a/b/k2;)V (null(Compiled Code))

at com.aspose.cells.a.b.g.a(Lcom/aspose/cells/a/b/k2;)V (null(Compiled Code))

at com.aspose.cells.a.b.x.a(Lcom/aspose/cells/a/b/k2;)V (null(Compiled Code))

at com.aspose.cells.a.b.g.a(Lcom/aspose/cells/a/b/k2;)V (null(Compiled Code))

at com.aspose.cells.a.b.x.a(Lcom/aspose/cells/a/b/k2;)V (null(Compiled Code))

at com.aspose.cells.a.b.g.a(Lcom/aspose/cells/a/b/k2;)V (null(Compiled Code))

at com.aspose.cells.a.b.r9w.a(Lcom/aspose/cells/a/b/k2;)V (null)

at com.aspose.cells.p_0.a(Lcom/aspose/cells/a/b/k2;)V (null)

at com.aspose.cells.a.b.j9.a(Lcom/aspose/cells/a/b/y9;)V (null)

at com.aspose.cells.x8l.a(Lcom/aspose/cells/PdfSaveOptions;)V (null)

at com.aspose.cells.x8l.a(Lcom/aspose/cells/b/a/d/n0b;Lcom/aspose/cells/PdfSaveOptions;)V (null)

at com.aspose.cells.x8l.a(Lcom/aspose/cells/b/a/d/n0b;Lcom/aspose/cells/SaveOptions;)V (null)

at com.aspose.cells.h6g.a(Lcom/aspose/cells/b/a/d/n0b;)V (null)

at com.aspose.cells.Workbook.a(Lcom/aspose/cells/b/a/d/n0b;Lcom/aspose/cells/SaveOptions;)V (null)

at com.aspose.cells.Workbook.save(Ljava/io/OutputStream;Lcom/aspose/cells/SaveOptions;)V (null)

at com.ebla.cms.service.handler.viewer.PDFConverter.convertExcelToPdf(Ljava/io/InputStream;Ljava/io/OutputStream;)V (PDFConverter.java:254)

at com.ebla.cms.service.handler.viewer.PDFConverter.convertAnyFileToPdf(Ljava/io/InputStream;Ljava/lang/String;Z)Lcom/ebla/cms/model/service/Pair; (PDFConverter.java:161(Compiled Code))

at com.ebla.cms.service.handler.cmsentity.correspondence.TawasolDocumentHandler.getPdfInputStream(Ljava/io/InputStream;Ljava/lang/String;ZZ)Lcom/ebla/cms/service/handler/cmsentity/correspondence/TawasolDocumentHandler$PDFFileView; (TawasolDocumentHandler.java:345(Compiled Code))

at com.ebla.cms.service.handler.cmsentity.correspondence.TawasolDocumentHandler.getPdfInputStream(Lcom/filenet/api/collection/ContentElementList;I)Lcom/ebla/cms/service/handler/cmsentity/correspondence/TawasolDocumentHandler$PDFFileView; (TawasolDocumentHandler.java:397(Compiled Code))

at com.ebla.cms.service.impl.cmsentity.correspondence.TawasolDocumentService.getPdfInputStream(Lcom/filenet/api/collection/ContentElementList;I)Lcom/ebla/cms/service/handler/cmsentity/correspondence/TawasolDocumentHandler$PDFFileView; (TawasolDocumentService.java:107(Compiled Code))

at com.ebla.cms.service.impl.cmsentity.correspondence.CorrespondenceService.fetchContentAsPDFContentList(Lcom/ebla/cms/model/ce/docclass/TawasolDocument;ZZ)Lcom/ebla/cms/model/service/Pair; (CorrespondenceService.java:1278(Compiled Code))

at com.ebla.cms.service.impl.cmsentity.correspondence.CorrespondenceService.fetchContentAsPDFHelper(Ljava/lang/String;Lcom/ebla/cms/model/ce/docclass/TawasolDocument;ZZ)Lcom/ebla/cms/model/service/Pair; (CorrespondenceService.java:1268(Compiled Code))

at com.ebla.cms.service.impl.cmsentity.correspondence.CorrespondenceService.fetchContentAsPDF(Ljava/lang/String;Lcom/ebla/cms/model/ce/docclass/TawasolDocument;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/springframework/http/ResponseEntity; (CorrespondenceService.java:1229(Compiled Code))

at com.ebla.cms.service.impl.cmsentity.correspondence.CorrespondenceService$$FastClassBySpringCGLIB$$95d5ff6a.invoke(ILjava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; ((Compiled Code))

at org.springframework.cglib.proxy.MethodProxy.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (MethodProxy.java:218(Compiled Code))

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint()Ljava/lang/Object; (CglibAopProxy.java:792(Compiled Code))

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:163(Compiled Code))

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed()Ljava/lang/Object; (CglibAopProxy.java:762(Compiled Code))

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation()Ljava/lang/Object; (TransactionInterceptor.java:123(Compiled Code))

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(Ljava/lang/reflect/Method;Ljava/lang/Class;Lorg/springframework/transaction/interceptor/TransactionAspectSupport$InvocationCallback;)Ljava/lang/Object; (TransactionAspectSupport.java:341(Compiled Code))

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (TransactionInterceptor.java:119(Compiled Code))

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186(Compiled Code))

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed()Ljava/lang/Object; (CglibAopProxy.java:762(Compiled Code))

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object; (ExposeInvocationInterceptor.java:97(Compiled Code))

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed()Ljava/lang/Object; (ReflectiveMethodInvocation.java:186(Compiled Code))

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed()Ljava/lang/Object; (CglibAopProxy.java:762(Compiled Code))

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Lorg/springframework/cglib/proxy/MethodProxy;)Ljava/lang/Object; (CglibAopProxy.java:707(Compiled Code))

at com.ebla.cms.service.impl.cmsentity.correspondence.OutgoingService$$EnhancerBySpringCGLIB$$127b50ba.fetchContentAsPDF(Ljava/lang/String;Lcom/ebla/cms/model/ce/docclass/TawasolDocument;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/springframework/http/ResponseEntity; ((Compiled Code))

at com.ebla.cms.service.ctrl.cmsentity.correspondence.CorrespondenceCommonCtrl.fetchAttachmentContentAsPDF(Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/springframework/http/ResponseEntity; (CorrespondenceCommonCtrl.java:92(Compiled Code))

at sun.reflect.GeneratedMethodAccessor1486.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (null)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (DelegatingMethodAccessorImpl.java:55(Compiled Code))

at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Method.java:508(Compiled Code))

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke([Ljava/lang/Object;)Ljava/lang/Object; (InvocableHandlerMethod.java:205(Compiled Code))

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(Lorg/springframework/web/context/request/NativeWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;[Ljava/lang/Object;)Ljava/lang/Object; (InvocableHandlerMethod.java:150(Compiled Code))

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(Lorg/springframework/web/context/request/ServletWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;[Ljava/lang/Object;)V (ServletInvocableHandlerMethod.java:117(Compiled Code))

at

… more lines of spring code

at javax.servlet.http.HttpServlet.service(

this code is dropping the following objects on the heap -

@aissawi
Would you like to provide sample file and runnable test code? You can compress the file into zip format and upload it here. If the file is too large, you can upload it to the cloud server and share the link here. We will check them soon.