1

We have migrated our DXA 2.0 website from development to production environment by CMS DB Export/Import. we have reimported the CMS data and republished all contents to a previously migrated broker DB.

While final testing, we found that some page URLs are linked to the 2 different Page Ids in Broker DB and CMS show only 1 page id.

eg. url: /private/savings/al-danah-account, Ids in broker db: 9443 and 13278, id in cms: 13278, and id 9443 not exist in cms

We are updating the page(13278) through CMS but changes are not reflecting on website because broker is always delivering another page(9443).

How can we delete Extra Id reference from the broker DB?

  • You mean you have done direct DB level export and import not used ContentPorter? – Velmurugan Jun 22 '18 at 8:43
  • @Velmurugan yes we performed a DB level export/import of the CM database. But the content broker db was not purged/recreated. After reimporting the CM DB contents we republished to an existing Broker DB and now we are seeing different Page IDs for the same page URL. – Husain Zahid Jun 22 '18 at 8:46
  • I'm afraid, Direct DB level changes not recommended and it will break your SDL support contract, Please raise a support ticket to SDL Support? – Velmurugan Jun 22 '18 at 8:53
  • @Velmurugan we did not perform any DB level changes, we did a full export/import of the CM database and we have done it many times in the past. Anyway, we have already contacted SDL support. Thanks. – Husain Zahid Jun 22 '18 at 9:01
3

As stated in your comment, the problem indeed was in situation where your broker db was not purged, but exported/imported. This is an interesting issue, and also one that should maybe be tackled by SDL. What i found out is that you can have 2 pages with same url in Broker: Take this situation:

  1. you have page index.html published to broker

  2. you rename page to indexChanged.html in CM without republish (keep in mind that its still published as index.html in broker)

  3. you create again page index.html in CM and publish it (it will be published in broker as index.html)

So this way you have 2 index.html pages in broker with different IDs!

The only solution i came upon to fix it is to have event system for auto republishing pages after url change.

UPDATE: There is one way you can remove these pages from broker, which is kind of a supported way. You can create undeploy packages and give them to deployer. It will pick them up and undeploy pages, just like they were unpublished. I explained it in this answer. So you just need to create undeploy packages for pages (you can check the structure by getting one package), and update it to remove extra pages.

  • You could also roll your own deployer extension that extended the standard com.tridion.deployer.modules.PageDeploy but that checks if a page path already exists but for a different Id than the one for the page begin published. You can then throw a ProcessingException when this situation occurs. – Neil Jun 22 '18 at 12:50
  • yes, i agree. There are couple of ways we can fix it. But the main problem is that URL in broker is not unique. By my opinion, it should be :D – Marko Milic Jun 22 '18 at 13:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.