Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn More

View all

Sign in to view all badges

[CQ5] - Publisher enviornment is having stale/old content

Avatar

Avatar
Give Back
Level 1
niks1
Level 1

Likes

0 likes

Total Posts

18 posts

Correct Reply

0 solutions
Top badges earned
Give Back
View profile

Avatar
Give Back
Level 1
niks1
Level 1

Likes

0 likes

Total Posts

18 posts

Correct Reply

0 solutions
Top badges earned
Give Back
View profile
niks1
Level 1

02-04-2021

Due to some reason , we need to bring our few publisher down. Now when i am trying to bring those back it is having old data or stale data which was published before we brought them down.

 

Can you please help me, how we can have the latest data on the publisher server.

 

Also, how i can setup parallel author instance and move content from one server to other.

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Springboard
Level 4
bilal_ahmad
Level 4

Likes

66 likes

Total Posts

106 posts

Correct Reply

16 solutions
Top badges earned
Springboard
Validate 10
Validate 1
Ignite 1
Establish
View profile

Avatar
Springboard
Level 4
bilal_ahmad
Level 4

Likes

66 likes

Total Posts

106 posts

Correct Reply

16 solutions
Top badges earned
Springboard
Validate 10
Validate 1
Ignite 1
Establish
View profile
bilal_ahmad
Level 4

02-04-2021

Hey @niks1 you need to republish that content(if you know the pages/paths/assets) again.

 

If you don't know the exact path(s) then you may need to run query to figure out the content (cq:Page/dam:Asset etc) which got added/modified and ten create a package using the same script(from groovyscript) and then getting it installed on publish server. I have not mentioned replicating those pages through programmatically replicating them because if the number of paths are way too many then it might slow down your instance(too many in replication queue), so I'd recommend creating a package and installing it on publish.

 

One drawback would be - that you'd end up losing the version in package creation.

 

Thanks,

Bilal.

niks1
Thanks for the reply @bilal_ahmad. I tried updating one of the page and publish it but still on the server it is showing old data. Package creation - as in whole site package ? If Yes, how to do it in CQ5 . I know how to do it in AEM but not sure on CQ5
bilal_ahmad

hey @niks1 CQ5 and AEM are the same things. Just that before Adobe procured Communique back in 2010, it was knows as CQ5, post procurement it was called Adobe Experience Manager.
Also, the content should/must get replicated to your publishers. Please take a look at your replication agent(s) if they are working fine(you can hit 'test' and it'd let you know).

I'm sharing a sample script with you, you should modify it based on your requirements and then package creation through the script will be super easy.

Please install Groovy Console  in your instance and then run(customize first!) this script:

 

 

import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
import javax.jcr.query.QueryResult;
import org.apache.jackrabbit.vault.packaging.JcrPackage;
import org.apache.jackrabbit.vault.packaging.PackagingService;
import org.apache.jackrabbit.vault.packaging.JcrPackageManager;
import org.apache.jackrabbit.vault.packaging.JcrPackageDefinition;
import org.apache.jackrabbit.vault.fs.api.PathFilterSet;
import org.apache.jackrabbit.vault.fs.config.DefaultWorkspaceFilter;

PACKAGE_GROUP_NAME="Test-Package-Group";
PACKAGE_NAME="Test-Package-Name"

checkIfPackageExists()
def checkIfPackageExists(){
    if(getNode("/etc/packages").hasNode(PACKAGE_GROUP_NAME)){
        getNode("/etc/packages/"+PACKAGE_GROUP_NAME).remove();
        save();
    }
    doQuery();
}
def doQuery(){
    String sqlStatement = 'SELECT * FROM [dam:Asset] AS asset WHERE ISDESCENDANTNODE ([/content/dam/myProject]) AND (asset.[jcr:created] >= CAST("2020-10-29T00:00:00.000+05:30" AS DATE) OR asset.[jcr:lastModified] >= CAST("2020-10-29T00:00:00.000+05:30" AS DATE)) ORDER BY asset.[jcr:created] DESC';
    QueryManager queryManager = session.getWorkspace().getQueryManager();
    Query query = queryManager.createQuery(sqlStatement, "JCR-SQL2");
    QueryResult result = query.execute();
    nodeIter = result.getNodes();
    
    DefaultWorkspaceFilter filters = new DefaultWorkspaceFilter();
    int counter;
        while(nodeIter.hasNext()){
            filters.add(new PathFilterSet(nodeIter.nextNode().getPath()));
            counter++;
        }
    println "Number of nodes added in filter path(s): "+counter;
    createPackage(filters);
}

def createPackage(DefaultWorkspaceFilter filters){
    JcrPackageManager packMgr = PackagingService.getPackageManager(session);
    JcrPackage pack = packMgr.create(PACKAGE_GROUP_NAME,PACKAGE_NAME,null);
    JcrPackageDefinition jcrPackageDefinition = pack.getDefinition();
    jcrPackageDefinition.setFilter(filters, true);
    jcrPackageDefinition.set("acHandling","acHandling",false);
    packMgr.assemble(pack, null);
    println "Package created successful";
}

 

 


Thanks,

Bilal.

niks1

Thanks @bilal_ahmad . Sorry for late reply. I was out sick from last couple of weeks due to this unable to check the response. Here is what i tried in query builder but it is not giving all pages :

type=cq:Page
path=/content
daterange.property=jcr:content/cq:lastModified
daterange.lowerBound=2020-10-01
orderby=@jcr:content/cq:lastModified
orderby.index=true
orderby.sort=asc

 

I want list of all pages which got published after  1st Oct'2020.

bilal_ahmad

Hi @niks1 for pages that got published on/after 1'Oct 2020 you can replace the existing query in the snippet I provided with this:

 

SELECT * FROM [cq:Page] AS page WHERE ISDESCENDANTNODE ([/content]) AND page.[cq:lastReplicated] >= CAST("2020-10-01T00:00:00.000+05:30" AS DATE)  ORDER BY page.[cq:lastReplicated] DESC

 

 

It worked for me.

 

Thanks,

Bilal.

Answers (0)