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.
  • July 22, 2014 12:17 pm

    AEM 6.0 HotFixes

  • July 6, 2014 4:34 pm

    How to improve your site’s Google PageSpeed Insights score - including the use of Yeoman and HTML5 BoilerPlate.

  • June 20, 2014 10:32 am

    Debug Data Collection Tool for CQ5 from Adobe Daycare

    Adobe Daycare has made available a tool called “Support Info Collector" that collects all relevant data about a particular CQ instance to be able to debug a problem, including config files and multiple (10), consecutive thread dumps.

    1) Create a folder for the collected information

    2) Change Directory to this folder

    3) Run it with a command such as this:

    java -jar C:\Programs\system-info-collector-1.1.jar -r D:\CQ\author -u admin -p password -a http://localhost:4502 -t

    This will create a 7zip zipped file (collected_information-1403273989985.7z) that contains thread dumps (with names such as jstack-1403273881053.txt) and the following configuration files:

    repository.xml
    workspace.xml
    custom_nodetypes.xml
    custom_privileges.xml

    Here’s how the tool output will look like:

    Using:
    {
    rootFolder:D:\CQ\author
    offline:false
    threadDumps:true
    logsLocation:null
    serverURL:http://localhost:4502
    serverLogin:admin
    serverPassword:******
    destination:null
    logsMaxDays:2
    }

    Collecting common info
    Copying D:\CQ\author\crx-quickstart\repository\repository\nodetypes\custom_nodetypes.xml to c:\TEMP\Test.\tmp1403273878115\xml_files
    Copying D:\CQ\author\crx-quickstart\repository\repository\privileges\custom_privileges.xml to c:\TEMP\Test.\tmp1403273878115\xml_files
    Copying D:\CQ\author\crx-quickstart\repository\repository.xml to c:\TEMP\Test.\tmp1403273878115\xml_files
    Copying D:\CQ\author\crx-quickstart\repository\workspaces\crx.default\workspace.xml to c:\TEMP\Test.\tmp1403273878115\xml_files
    CQ process id found = 9280

    Taking thread dump 1/10 … for process 9280
    Taking thread dump 2/10 … for process 9280
    Taking thread dump 3/10 … for process 9280
    Taking thread dump 4/10 … for process 9280
    Taking thread dump 5/10 … for process 9280
    Taking thread dump 6/10 … for process 9280
    Taking thread dump 7/10 … for process 9280
    Taking thread dump 8/10 … for process 9280
    Taking thread dump 9/10 … for process 9280
    Taking thread dump 10/10 … for process 9280
    Collecting online info
    SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
    Compressing collected file into a single archive file
    Removing temporary files
    Collected information completed, attach it to your ticket or send it to our ftp

  • June 20, 2014 9:48 am

    How to Clone Jackrabbit Oak from Git in Windows

    Jackrabbit “Oak” is an Apache open-source project.  Source code is available on GitHub.

    The following instructions assume that you have Git installed.  If not, get the Windows version here.

    1) Start the “Git Bash” shell

    C:\Programs\Git\bin\sh.exe --login -i

    2) Change directory to the folder you want to download the source to.  Example (for D:\Jayan\Projects\Git):

    cd /d/Jayan/Projects/Git

    3) Download (“clone”) the project with:

    git clone http://github.com/apache/jackrabbit-oak.git

    4) Verify the download at D:\Dropbox\Projects\Git\jackrabbit-oak

  • June 16, 2014 3:26 pm

    CQ5 Package Filter Include/Exclude RegEx Examples

    Blog entry from Adobe’s Sham Hassan Chikkegowda.

  • June 16, 2014 3:13 pm

    How to Switch between Touch and Classic UIs in AEM6

    Blog entry from Adobe’s Sham Hassan Chikkegowda.

  • June 16, 2014 11:19 am

    How to Configure AEM6 DataStore for Amazon S3

    1) Obtain the featurepack from your Adobe contact and unzip it (it is NOT a content package) to /crx-quickstart

    unzip cq-6.0-featurepack-4137-1.0.zip

    2) This will create the following folder/file structure

    install/
    install/15/
    install/15/crx-ext-s3-1.0.30.jar
    install/15/jackrabbit-data-2.8.0-r1601551.jar
    install/org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.cfg
    install/org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.cfg
    install/org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.cfg

    NOTE: DocumentNodeStoreService.cfg is for MongoMK, SegmentNodeStoreService.cfg is for TarMK

    2) Delete the .zip file /crx-quickstart/cq-6.0-featurepack-4137-1.0.zip

    3) Depending on the MK you are using, delete the .cfg file you don’t need.  For example, if you’re using TarMK, delete /crx-quickstart/install/org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.cfg

    4) Edit org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.cfg so that it looks something like this.

    See this for information on different S3 endpoints.

    Also edit /crx-quickstart/bin/start to look something like this.

    5) Start AEM.

    This will create about 5,800+ objects of total size about 940 MB in the designated S3 bucket.  Use a tool such as CloudBerry Explorer for Amazon S3 to verify.

    It will also create an on-disk cache at /crx-quickstart/repository/datastore

    6) Login to AEM and make sure everything works.  Test by dragging in an image into a folder in “Assets” and make sure that all renditions and thumbnails get created.  Check the error.log as well.

    6) Shutdown AEM6

    7) Backup the /crx-quickstart folder as well as the S3 bucket.

    Backup crx-quickstart with:

    tar -zcvf crx-quickstart.s3.tarmk.tgz crx-quickstart

    To backup the S3 bucket, create another S3 bucket in another AWS Region and then use the AWS CLI (Command Line Interface):

    aws s3 sync s3://my-aem6 s3://my-aem6-backup

  • June 14, 2014 5:43 pm
    AEM 6 performance comparison across various platform options.  The index is the time taken (in seconds) to finish workflow processing when two threads simultaneously (remotely) ingest 100 (1 MB) JPGs and 2,000 (1 MB) PDFs.
The Windows machine was a Dell Precision T7500 workstation.
The AWS instance type was m3.xlarge.
The MongoMK test used a three-mongod (2.6.1) replicaset, all instances within the same Amazon AWS “Region”, but in separate “Availability Zones”.  1.7.0_60 JDK. View high resolution

    AEM 6 performance comparison across various platform options.  The index is the time taken (in seconds) to finish workflow processing when two threads simultaneously (remotely) ingest 100 (1 MB) JPGs and 2,000 (1 MB) PDFs.

    The Windows machine was a Dell Precision T7500 workstation.

    The AWS instance type was m3.xlarge.

    The MongoMK test used a three-mongod (2.6.1) replicaset, all instances within the same Amazon AWS “Region”, but in separate “Availability Zones”.  1.7.0_60 JDK.

  • June 6, 2014 11:32 am

    Eclipse Jetty Configuration File Location

    If you make changes to the Eclipse Jetty servlet engine configuration in /system/console/configMgr (“Apache Felix Jetty Based Http Service”), and end up making a mistake, it is possible that AEM will become inaccessible across the entire cluster.  At this point, you’ll need to edit the changes you made on each cluster member one-by-one, and re-start AEM on each.

    A common mistake is to edit one of the settings in the OSGi console, and forgetting to make sure that the “HTTP Port” is set to 4502 (it defaults to 8080).

    The file to edit is at /crx-quickstart/launchpad/config/org/apache/felix/http.config

    If you don’t see this file at that location, note that it’ll only show up once you edit the config at least once.

  • June 2, 2014 11:07 pm