Descargue este archivo zip [1] a su servidor AEM.
Después de cargar ciertos PDF, la instancia de AEM se bloquea. En los archivos de registro, verá OutOfMemoryError. En los volcados de subprocesos, se ven subprocesos como el de abajo que muestra los fragmentos pegados en el código JVM sun.java2d.cmm.lcms.LCMS.createNativeTransform:
"JobHandler: /etc/workflow/instances/server0/2017-02-16/update_asset_833:/content/dam/geometrixx/documents/Test.pdf/jcr:content/renditions/original" #168 daemon prio=1 os_prio=0 tid=0x00007ff525c59800 nid=0x1ab7 runnable [0x00007ff3feffc000] java.lang.Thread.State: RUNNABLE at sun.java2d.cmm.lcms.LCMS.createNativeTransform(Native Method) at sun.java2d.cmm.lcms.LCMS.createTransform(LCMS.java:156) at sun.java2d.cmm.lcms.LCMSTransform.doTransform(LCMSTransform.java:155) - locked <0x000000077e9ae718> (a sun.java2d.cmm.lcms.LCMSTransform) at sun.java2d.cmm.lcms.LCMSTransform.colorConvert(LCMSTransform.java:268) at java.awt.image.ColorConvertOp.ICCBIFilter(ColorConvertOp.java:355) at java.awt.image.ColorConvertOp.filter(ColorConvertOp.java:282) at com.adobe.internal.pdftoolkit.image.ARGBImage.convertToRGB(ARGBImage.java:340) at com.adobe.internal.pdftoolkit.image.ARGBImage.handleICCColorSpace(ARGBImage.java:177) at com.adobe.internal.pdftoolkit.image.ARGBImage.convertToRGB(ARGBImage.java:310) at com.adobe.internal.pdftoolkit.image.ARGBImage.access$1300(ARGBImage.java:59) at com.adobe.internal.pdftoolkit.image.ARGBImage$ARGBTilesIterator.ConvertToRGB(ARGBImage.java:587) at com.adobe.internal.pdftoolkit.image.ARGBImage$ARGBTilesIterator.hasNext(ARGBImage.java:640) at com.adobe.internal.pdftoolkit.services.rasterizer.impl.RasterContentImageItem.writeToDisplayArea(RasterContentImageItem.java:211) at com.adobe.internal.pdftoolkit.services.rasterizer.impl.RasterDocument.createPage(RasterDocument.java:131) at com.adobe.internal.pdftoolkit.services.rasterizer.impl.PDFToRasterConverter.toBufferedImage(PDFToRasterConverter.java:127) at com.adobe.internal.pdftoolkit.services.rasterizer.PageRasterizer.next(PageRasterizer.java:98) at com.day.cq.dam.handler.standard.pdf.PdfHandler.getImage(PdfHandler.java:583) at com.day.cq.dam.handler.standard.pdf.PdfHandler.getImage(PdfHandler.java:546) at com.day.cq.dam.core.impl.cache.CQBufferedImageCache.getImage(CQBufferedImageCache.java:116) at com.day.cq.dam.core.impl.gfx.CommonsGfxRenderer.createImageLayer(CommonsGfxRenderer.java:460) at com.day.cq.dam.core.impl.gfx.CommonsGfxRenderer.createLayer(CommonsGfxRenderer.java:138) at com.day.cq.dam.core.impl.gfx.CommonsGfxRenderer.render(CommonsGfxRenderer.java:91) at com.adobe.cq.gfx.impl.GfxImpl.render(GfxImpl.java:94) at com.day.cq.dam.core.impl.RenditionMakerImpl$PlanBasedTemplate.apply(RenditionMakerImpl.java:127) at com.day.cq.dam.core.impl.RenditionMakerImpl.generateRenditions(RenditionMakerImpl.java:184) at com.day.cq.dam.core.process.CreateThumbnailProcess.createThumbnails(CreateThumbnailProcess.java:119) at com.day.cq.dam.core.process.ThumbnailProcess.execute(ThumbnailProcess.java:76) at com.day.cq.workflow.compatibility.CQWorkflowProcessRunner.execute(CQWorkflowProcessRunner.java:93) at com.adobe.granite.workflow.core.job.HandlerBase.executeProcess(HandlerBase.java:184) at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:234) at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:512) at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:303) - locked <0x00000005cd6dab40> (a org.apache.sling.event.impl.jobs.queues.JobExecutionContextImpl) at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:66) at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:238) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
AEM 6.x usando JDK 8
Es un problema conocido con el procesamiento de PDF en AEM (CQ-4202164) causado por un problema de Oracle JVM.
Si utiliza Oracle JVM en Windows o Mac, configure Java para utilizar la API de KCMS heredada en lugar de LCMS. Hay un problema conocido que hace que esto no funcione en JDK8 en Linux.
Modifique su script de inicio AEM y añada este parámetro JVM a la variable CQ_JVM_OPTS:
-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider
Por ejemplo (fragmento del script de inicio):
# default JVM options if [ -z "$CQ_JVM_OPTS" ]; then CQ_JVM_OPTS='-server -Xmx1024m -XX:MaxPermSize=256M -Djava.awt.headless=true -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider' fi
Esto borra todos los trabajos de Sling activos para PDF que están colapsando AEM.
Descargue este archivo zip [1] a su servidor AEM.
Descomprima el archivo zip a una nueva carpeta en el servidor.
Suba un archivo PDF al servidor en la misma carpeta en la que extrajo el archivo zip.
Ejecute este comando en esa carpeta para asegurarse de que el rasterizador funciona (reemplace pdffilename.pdf con el nombre de archivo del documento PDF).
/opt/aem/author62/rasterizer/PDFRasterizer -d -p 1 -s 1280 -t PNG -i pdffilename.pdf
El resultado sería algo así como se muestra abajo:
Total time in image conversion (in ms): 163 Total time (in ms): 896. Time to initialize: 12. Time for conversion: 884
Asumiendo que el rasterizador funciona bien en la línea de comandos, siga los pasos de este artículo para configurarlo para que funcione en AEM.
Además de los pasos de esa página, también debe modificar el paso del flujo de trabajo de DAM Update Asset Rasterizar PDF/Rendición de visualización de imagen. Eliminar aplicación/pdf de la lista de tipos MIME.
Haga clic en Guardar para guardar el modelo de flujo de trabajo.
Ahora intente cargar archivos PDF y las variantes de representación se generarán rápidamente y sin necesidad de utilizar mucha memoria.
Inicia sesión en tu cuenta