Blog

Get Moving with AEM and Grabbit


In this era of digital transformation, organizations tend to be buried under a humongous amount of data or content. Websites form an integral part of any organization and encapsulate multiple formats of data, ranging from simple text to huge media asset files.

We see many business requirements to regroup/reorganize content, consolidate multiple sources of data, or convert legacy forms of data into new solutions. All these requirements involve content migration at its own scale, depending on the amount of data being migrated.

A common use case in any content management solution is how to move heavy content between the instances. AEM involves various methods, such as vlt process, recap, and package manager. Each option has its own pros and cons, but all of them have a common disadvantage: content migration takes a lot of time.

To overcome this, the latest versions of AEM have started supporting Grabbit as one of the quickest ways to transfer content between Sling environments. As per the AEM 6.4 documentation, there are two tools recommended for moving assets from one AEM instance to another.

Vault Remote Copy, or vlt rcp, allows you to use vlt across a network. You can specify a source and destination directory and vlt downloads all repository data from one instance and loads it into the other. Vlt rcp is documented at http://jackrabbit.apache.org/filevault/rcp.html.

Grabbit is an open source content synchronization tool developed by Time Warner Cable (TWC) for their AEM implementation. Because Grabbit uses continuous data streams, it has a lower latency compared to vlt rcp and claims a speed improvement of two to ten times faster than vlt rcp. Grabbit also supports synchronization of delta content only, which allows it to sync changes after an initial migration pass has been completed.

AEM 6.4 and Grabbit – possible?

We see a lot of questions in Adobe forums and TWC Grabbit forums asking if AEM 6.4 really supports Grabbit content transfer. The answer is yes!

Let’s look at the steps that needs to be followed to use Grabbit in an AEM 6.4 instance to make it work across environments.

STEP 1: Install the following packages. Ensure the Grabbit package is installed at the end.

1. Sun-Misc-Fragment-Bundle-1.0.0

2. Grabbit-Apache-Sling-Login-Whitelist-1.0

3. Grabbit-Deserialization-Firewall-Configuration-1.0

4. Grabbit-7.1.5

STEP 2: Add the twcable Grabbit package to the Sling login admin whitelist – com.twcable.grabbit

STEP 3: Adjust the Deserialization firewall configuration in the OSGi console.

Ensure the following items are removed from the blacklist:

org.springframework.beans.factory.ObjectFactory
org.springframework.core.SerializableTypeWrapper$MethodInvokeTypeProvider

Ensure to add this in the whitelist

org.springframework.

Debugging

To ensure Grabbit is successfully installed, try hitting the Grabbit URL to fetch the list of transactions or jobs (http://<host>:<port>/grabbit/transaction/all). If this returns an empty list [], Grabbit is successfully installed and ready to be used to send or receive data.

While running Grabbit.sh in Windows, to initiate the Grabbit job, if anything goes wrong, it is difficult to get the error details, as the command window closes immediately. One cannot see the error code returned from the job. To get the error code/message in the command prompt window, comment out the Clear command inside the Else block of the newGrabbitRequest() function in grabbit.sh.

This will help you review the errors and resolve them effectively.

We have been successful in migrating content between AEM 6.2 and 6.4 instances and between 6.4 AEM instances using Grabbit.

Try these steps to install and use Grabbit without any hiccups, and make your content migration quick and smooth.

Enjoy your content migration!

About Author

Saraswathy Kalyani is an experienced AEM and Portal consultant at Relevance Lab.

Author


Avatar