CQ-OPS

Adobe Experience Manager (AEM) Operations
Blog by Jayan Kandathil that specializes in Adobe Experience Manager (CQ, now AEM) ops such as deployment architecture, server sizing, infrastructure, operations, cloud, performance etc.
  • October 15, 2014 4:06 pm

    CURL Command to Run AEM 6 TarMK Consistency Check

    curl -u admin:admin -X POST —data “workspace=crx.default&path=%2F&traversal=on&fixinconsistencies=on&log=off&datastoreconsistency=on” http://localhost:4502/system/console/repositorycheck

  • October 15, 2014 11:55 am

    How to Host AEM 6 TarMK Data Store on a Separate Disk Volume

    One of the common performance tuning techniques employed by system administrators is to multi-path the disk I/O of an application.  In the case of AEM, you can host java.io.tmpdir, the Node Store and the Data Store in three separate locations.

    Java Temporary Folder

    This is used heavily whenever an asset is uploaded to AEM.  This can be controlled in the startup script with an argument such as this (Windows example):

    -Djava.io.tmpdir=E:\JAVA_TEMP\author

    AEM Data Store

    This one requires more work.

    1) Unpack the AEM jar file with the following command (assume that this is on the D: drive):

    java -jar aem-6.0.0.20140515-generic.jar -unpack

    2) Create a folder named “install" under /crx-quickstart

    3) Copy the following files to it, as well as any service pack JARs (such as Service Pack 1).  Ensure that you edit these so that it makes sense for your particular environment.  More information on these files are available here.

    org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.cfg

    customBlobStore=true

    org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.cfg (Windows example - the Data Store is being hosted on the F: drive, which is a large RAID array)

    minRecordLength=4096
    path=F:\\BLOBStore
    cacheSizeInMB=128

    4) Start AEM 6 for the first time

    Note: You might see the following WARNings in error.log due to this Apache Sling issue (it can be ignored and is fixed in later releases):

    *WARN* [pool-5-thread-2] org.apache.sling.jcr.resource.internal.OakResourceListener processOsgiEventQueue: Resource at /var/classes/492f4fa1-dc1d-4879-a48d-b799620016e0/org/apache/jsp/libs/cq/gui/components/common/wcm/datasources/childpages/childpages_jsp.classtmp/jcr:content not found, which is not expected for an added or modified node

  • September 24, 2014 10:43 am

    AEM 6.0 SP1 - Whatever Happened to “Dynamic Imaging”

    AEM “Dynamic Media” is the newly re-branded Adobe Scene7.

    Introduced in AEM 6.0 GA, "Dynamic Imaging" (part of Dynamic Media which creates image renditions on demand) has been disabled (by default) in AEM 6.0 SP1.

    Here are instructions on how to enable it.  Please note that to deliver “dynamic media” to users, you would need an additional “Dynamic Media Add-on” license.  You don’t need this license for authoring “dynamic media”.

    If you try to enable it by setting the JCR property “dynamicMediaEnabled” to true in /etc/dam/dynamicmediaconfig, but forget the second important step of re-starting the OSGi bundle named “Adobe CQ DAM Scene7 Dynamic Imaging”, you’ll get the following exceptions in error.log when you ingest an asset (Windows example).

    It is because the native code for dynamic imaging is only unpacked when the OSGi bundle is re-started.

    *INFO* [JobHandler: /etc/workflow/instances/2014-09-24/model_5997527878366:/content/dam/adobetest/IMG_0714.JPG/jcr:content/renditions/original] com.day.cq.dam.s7dam.onprem.imagetools.ImageInfo ImageInfo.processFile: [D:\AEM\author\crx-quickstart\launchpad\felix\bundle312\data\image-server\is-home\bin64\ImageInfo.exe, C:\JAVA_TEMP\author\scene76165123532190866787.tmp, -xmlfile, C:\JAVA_TEMP\author\scene76165123532190866787.tmp.xml]

    *ERROR* [JobHandler: /etc/workflow/instances/2014-09-24/model_5997527878366:/content/dam/adobetest/IMG_0714.JPG/jcr:content/renditions/original] com.day.cq.dam.s7dam.onprem.util.RuntimeExec java.io.IOException: Cannot run program “D:\AEM\author\crx-quickstart\launchpad\felix\bundle312\data\image-server\is-home\bin64\ImageInfo.exe”: CreateProcess error=2, The system cannot find the file specified

    *WARN* [JobHandler: /etc/workflow/instances/2014-09-24/model_5997527878366:/content/dam/adobetest/IMG_0714.JPG/jcr:content/renditions/original] com.day.cq.dam.s7dam.onprem.imagetools.ImageInfo ImageInfo.processFile failed with return: -101

     *ERROR* [JobHandler: /etc/workflow/instances/2014-09-24/model_5997527878366:/content/dam/adobetest/IMG_0714.JPG/jcr:content/renditions/original] com.day.cq.dam.s7dam.onprem.process.S7damExtractImageInfoProcess Failed to extract s7dam image info for [IMG_0714.JPG]

  • September 16, 2014 9:23 am

    Demo of Java Mission Control (JMC) by Jim Weaver, Java Technology Ambassador at Oracle.

  • September 8, 2014 10:07 am
  • September 6, 2014 9:20 pm
  • September 5, 2014 7:17 pm

    Protocol for a Total System Test to Simulate a Traffic Surge

    If CQ/AEM is used to host a news website, a total system test must mimic a significant, international news event such as a political leader getting assassinated or a sovereign country invading another.

    Here’s one protocol to follow - this testing is disruptive/destructive and therefore should only be conducted on cloned instances or STAGING instances that are backed up:

    1) Using ToughDay, run a WCM workload against the “author” instances to mimic news editors feverishly creating and publishing new news content

    java -Xmx1024m -Dhostname=yourcqserver.domain.com -Dport=4502 -Duser=jayan -Dpw=password -DcreatePages.toplevels=600 -DcreatePages.sublevels=1 -DcreatePages.subsublevels=1 -DcreatePages.concurrentUsers=10 -DcreatePages.rampup=1 -DcreatePages.thinkt=2 -DcreatePages.activate=true -DcreatePages.delete=true -jar toughday-6.0.jar createPages

    2) Using ToughDay, run a DAM workload against the “author” instances to mimic the loading of images by content editors

    java -Xmx1024m -Dhostname=yourcqserver.domain.com -Dport=4502 -DuploadImage.count=1000 -jar toughday-6.0.jar uploadImage

    3) Using ToughDay, run a DAM workload against the “author” instances to mimic the loading of PDF documents by content editors - the resulting workflows really tax the system under test

    java -Xmx1024m -Dhostname=yourcqserver.domain.com -Dport=4502 -DuploadPdf.count=8000 -jar toughday-6.0.jar uploadPdf

    4) Using a web load testing tool (NeoLoad, SOASTALoadRunnerSilkPerformer, WebLOAD, JMeter) load up the Dispatchers/”publish” instances with 100s of 1000s of page requests.  In Adobe Managed Services, we use our internally developed tool Minions.

    The above four operations should ideally be run concurrently from four separate remote instances, so that their network interfaces are not saturated.

    The CQ/AEM system should NOT crash or become unavailable.

    For cloud deployments, the four load generators should also be in the cloud - otherwise you’ll just end up saturating your own company’s network infrastructure (NAT, firewalls, VPN etc).

  • August 12, 2014 3:09 pm

    Direct Access to Package Share

    Need (free registration) Adobe ID to login.

  • August 1, 2014 9:09 am
  • July 31, 2014 6:09 pm

    2014 MongoDB World Presentations