November 29, 2016

Topology manager Tips and Tricks

While working on Web 8 from last 7 months i have few tricks to share

Register multiple Url for single websites : While in development here are various scenarios where we need multiple domain url for the website.

e.g Mobile testing, as we mock the url using IIS host entry, but it does not work on Android and IOS very well, so we have to test on IP on those devices.

Another case when multiple CMS developer working on their on their own DXA copy and they need separate URL for developer's local websites.

With following command you can register multiple Urls for same website.

 PS C:\Windows\system32> Set-TtmWebsite -id Website1 -BaseUrls 
"", ""  

Change Topology Manager database: I changed my VM machine's Server name and suddenly Tridion stopped working. now i have to update server name everywhere in the system from CM to CD. it took me 2-3 days to find out all the instances where Server name was referred.  but still i could not figured out topology manger database reference, then after wasting lots of time i figured out TM's connection string with server-name is embedded in the web.config in encrypted form.

Use following commands to change server name/database of Topology manager. take backup of the web.config file of your Topology manager website, and decrypt it using following command then change the connection string and encrypt it again.

Take backup of your config first

Decryption command
 C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -pdf "database" "C  
 :\Program Files (x86)\SDL Web\TopologyManager\web"  

Encryption command
 C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -pef "database" "C  
 :\Program Files (x86)\SDL Web\TopologyManager\web"  

November 18, 2016

Sdl Web 8 Dxa Installation - Content Delivery

Content Delivery installation requires few services to be installed and configured. SDL also introduced all new Discovery Service in the web 8 which acts as gateway for all the CD services.
Please find below Different services to be installed.
  • Content/Session-enabled Content Service
  • Content Deployer Service
  • Preview Service
  • Context Service
  • Discovery Service

Content/Session-enabled Content Service
if staging environment,  where XPM etc is enabled, is being configured only Session-Enabled content service is required to be installed and configured. other Content Service is not required to be installed.

Content Deployer Service: Pre web-8 separate http-upload website was hosted on IIS, but with web 8 deployer windows service itself host the required service to deploy the content. Installation is pretty state-forward, just follow the steps mentioned in installation document

Discovery Service 

Once all the above services are installed now you can registered these capabilities into the Discovery Service Registered these capabilities into Discovery Service using Discovery Service registration command.

The discovery service cd_storage_conf config file should have the service entries as shown below.

When you install discovery service, Separate database is recommended for it. This database share same structure as content database but purpose is to keep discovery information separately. 

Run power shell and execute following command

 java -jar discovery-registration.jar update  

This command will update the Discovery database with latest values from cd_storage_conf file. basically it will register the services with different capabilities defined in storage config file.

Discovery Service become gateway service for all the installed capabilitiy. e.g earlier we used to configure http-upload endpoint in the CMS, which actually was source of lots of error when CMS db was backed up from live to UAT etc.

but now Discovery service is registered in CMS, so when something is published request goes to discovery service, its checks whether it has that deploying capability or not. if yes it pass the torch to Content-Deployer and subsequent request goes to Content deployer directly.

Same case with content service etc.

so your ports etc for all the services should be open for your website. e.g you have local sanddbox for DXA and content service is installed at 8089 port. 8089 port should also be accessible at your website box because after discovery resolve the dependency then direct communication between service happens.