Expand my Community achievements bar.

SOLVED

Upgrading from 6.0 to 6.4.x

Avatar

Level 2

We are aiming to perform a big migration from 6.0 to 6.4.x (where x=1 or 2).

In the adobe documentation I can see that a recommended step is to perform a "Pattern Detector" to help with the migration, however the pattern detector is only supported from 6.1 onwards.

1) Should we migrate first from AEM 6.0 to 6.1 run the pattern detector and then move from 6.1 to 6.4. Or do you advise moving from 6.0 directly to 6.4.

2) The documentation also says that crx2oak tool should be run from 5.6.1 to 6.x .Since we are already on 6.0 do we still need to run this tool to move to 6.4.

3) Lastly any other things we should look out for when moving for such a big jump?

Thanks!

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

1) We did the same upgrade (AEM 6.0 to AEM 6.4.2) without using pattern detector. We had to manually validate all overlays, but that wasn't a real big issue here.

2) yes and no :-) When you switch from AEM 6.[012] to AEM 6.3 or higher, you need to run crx2oak to "convert" your old tarMK to the new segmentTar format, otherwise on AEM 6.4 the repository wil refuse to start.

3) Test the migration, and make sure that you get your indexes right. And you should test with production-like content to get the right impression for migration times and potential problems. But it should be quite painless.

(We postponed the switch from ClassicUI to Touch ... and I don't recommend to mix that into the migration as well.)

Jörg

View solution in original post

8 Replies

Avatar

Correct answer by
Employee Advisor

1) We did the same upgrade (AEM 6.0 to AEM 6.4.2) without using pattern detector. We had to manually validate all overlays, but that wasn't a real big issue here.

2) yes and no :-) When you switch from AEM 6.[012] to AEM 6.3 or higher, you need to run crx2oak to "convert" your old tarMK to the new segmentTar format, otherwise on AEM 6.4 the repository wil refuse to start.

3) Test the migration, and make sure that you get your indexes right. And you should test with production-like content to get the right impression for migration times and potential problems. But it should be quite painless.

(We postponed the switch from ClassicUI to Touch ... and I don't recommend to mix that into the migration as well.)

Jörg

Avatar

Level 2

Thank you so much for the answers Jorg!

Do you run the crx2oak directly on the crx of the 6.4? For instance, deploy all our 6.0 stuff on 6.4 and then run the tool against the 6.4 crx?

Avatar

Employee Advisor

Our way was like this:

* Shut down AEM 6.0

* migrate the repository

* replace the quickstart jar

* start up this instance with the new quickstart (now as AEM 6.4)

* deploy the application in the AEM 6.4 version

Jörg

Avatar

Level 2

Thanks so much for responding Jorg. I understand that but unfortunately my problem lies with the "Migrate the repository part".

I've followed the instructions here Using the CRX2Oak Migration Tool but the information is very limited. I've set the env variables to export SLING_HOME="/usr/aem602/crx-quickstart".

(I have AEM6.0 shutdown and sling_home is pointing to AEM6.0 crx-quickstart)

Problem is when I run: Java -jar crx2oak-*.jar I get the error below. I don't want an s3datastore or any of the sort, I just want to migrate the content repository to be able to run 6.4. Any idea how can I run the crx2oak jar?

The error message I get is as follows:

java -jar crx2oak-1.8.6-all-in-one.jar

12.02.2019 13:06:13.876 INFO   c.a.g.c.CRX2Oak: started with args: []

12.02.2019 13:06:13.973 INFO   c.a.g.c.s.SlingHomeDetector: Detected Quickstart/Sling instance in: /home/filipe/development/programs/64/aem_environments/aem60/crx-quickstart

12.02.2019 13:06:13.974 INFO   c.a.g.c.l.LoggingRedirector: logs are going to be redirected to: /home/filipe/development/programs/64/aem_environments/aem60/crx-quickstart/logs/upgrade.log file (using INFO level)

12.02.2019 13:06:13.987 INFO   c.a.g.c.c.VersionPrinter: CRX2Oak version: 1.8.6 (QUICKSTART_EXTENSION mode)

12.02.2019 13:06:14.234 INFO   c.a.g.c.c.VersionPrinter: crx2oak-1.8.6-all-in-one.jar (version: 1.8, checksum: c326e9150ba060ad89aa84f817ea3e501615d4d26354ae2e41adac992a7154284940e470beef28457f56d75220b879f41ae6e5168f838bb545fdc9e9e7eaa8f8)

12.02.2019 13:06:14.366 INFO   c.a.g.c.p.ProfileHandler: Applying partly the command line (before loading a profile): []

12.02.2019 13:06:14.392 INFO   c.a.g.c.p.ProfileHandler: The following template tags has been defined: {}

12.02.2019 13:06:14.392 ERROR  c.a.g.c.p.ProfileHandler: Tags: [datastore-path] are required but their values were not resolved or not passed at command line.

This might indicate:

1) Some dynamic tags weren't determined correctly (please check all WARN/ERROR log entries)

2) Your custom profile is incorrect (i.e. tag name typos, missing tag definitions)

3) The user should define the tag value at command line manually as profile doesn't specify the default value

The final profile is invalid (incomplete) hence the migration has been aborted.

Avatar

Employee Advisor

You need to specify the correct parameters for the crx2oak command, which are listed at the documentation page (included in your post) at the bottom.

Can you paste the complete command you are using? Do you have a datastore already configured?

Jörg

Avatar

Level 2

Hi Jorg,

Again, thank you so much for the support. The complete command that I am running is:

java -jar crx2oak-*.jar  \

/aem_environments/aem60/crx-quickstart/repository/ \

/aem_environments/aem60/crx-quickstart/repository/datastore \

How do I configure a datastore? I just want to move the content to 6.4 from 6.0

Avatar

Employee Advisor

The format of the command is

java -jar crx2oak.jar $old_repo $new_repo

plus some optional parameters. In your case it seems to me that you have the AEM 6.0 repository in .../aem60/crx-quickstart/repository and the new repository should reside in ../aem60/crx-quickstart/repository/datastore. But just from the naming this doesn't sound like your intention.

can you try this:

java -jar crx2oak.jar /aem_environments/aem60/crx-quickstart/repository /aem_environments/aem64/crx-quickstart/repository

that should be sufficient if you want to stick with the existing datastore (which I recommend).

Avatar

Level 7

Hi Jorg,

We are running into the same situation when migrating from aem60 to aem65. We store the aem60 content in a nfs mount point and that is used as a source repository, there are two directories underneath, "index" and "segmentstore".  My command is:

 

sudo java -Xmx4096m -jar crx2oak-1.8.10-all-in-one.jar /mnt/tisch.nyu.edu/tsoaauth/aem-crx /apps/aem65/crx-quickstart/repository/, where/mnt/tisch.nyu.edu/tsoaauth/aem-crx is the aem60 repository. But here is what we got:

08.09.2021 16:05:54.876 INFO   c.a.g.c.CRX2Oak: started with args: [/mnt/tisch.nyu.edu/tsoaauth/aem-crx, /apps/aem65/crx-quickstart/repository/]

08.09.2021 16:05:54.971 INFO   c.a.g.c.c.VersionPrinter: CRX2Oak version: 1.8.10 (STANDALONE mode)

08.09.2021 16:05:55.309 INFO   c.a.g.c.c.VersionPrinter: crx2oak-1.8.10-all-in-one.jar (version: 1.8, checksum: 317d3cb02618230100fd4976b22b2ab14c15b319b8cd8483dc6d91595cb8ebdab37e69d2c5c3d29c6fded77eca955945c93e28e224569f8a51ca3a0202b3f031)

08.09.2021 16:05:55.320 INFO   c.a.g.c.p.ProfileHandler: Applying partly the command line (before loading a profile): [/mnt/tisch.nyu.edu/tsoaauth/aem-crx, /apps/aem65/crx-quickstart/repository/]

08.09.2021 16:05:55.321 INFO   c.a.g.c.p.ProfileHandler: The following template tags has been defined: {}

08.09.2021 16:05:55.323 INFO   c.a.g.c.p.ProfileHandler: The command line (after loading a profile): [/mnt/tisch.nyu.edu/tsoaauth/aem-crx, /apps/aem65/crx-quickstart/repository/]

08.09.2021 16:05:55.324 INFO   c.a.g.c.c.MigrationSpecGenerator: The effective command line for migration: [/mnt/tisch.nyu.edu/tsoaauth/aem-crx, /apps/aem65/crx-quickstart/repository/]

08.09.2021 16:05:55.344 INFO   o.a.j.o.s.f.FileStore: Creating file store FileStoreBuilder{version=1.8.10, directory=/mnt/tisch.nyu.edu/tsoaauth/aem-crx/segmentstore, blobStore=null, maxFileSize=256, segmentCacheSize=256, stringCacheSize=256, templateCacheSize=64, stringDeduplicationCacheSize=15000, templateDeduplicationCacheSize=3000, nodeDeduplicationCacheSize=1048576, memoryMapping=false, gcOptions=SegmentGCOptions{paused=false, estimationDisabled=false, gcSizeDeltaEstimation=1073741824, retryCount=5, forceTimeout=60, retainedGenerations=2, gcType=FULL}}

08.09.2021 16:05:56.728 ERROR  c.a.g.c.c.MigrationSpecGenerator: I/O error during processing migration specification: org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException: Using oak-segment-tar, but oak-segment should be used

 

Can you please let me know what's wrong with my command?

 

Thanks!