5

I'm trying to setup mirrored publishing in our production Web 8.5 environment so that content is published both to our production broker, as well as our fail-over broker but am unable to register two deployer capabilities.

I was able to register (and successfully publish content to) a single Deployer capability, however when I try to setup mirrored publishing I am getting an error when I run the discovery-registration utility.

Discovery Service Role:

<Role Name="DeployerCapability" Strategy="MIRROR" >
<Urls>
    <Url Value="https://www.my-domain.com/sdl/httpupload" />
    <Url Value="https://www-fo.my-domain.com/sdl/httpupload" />
</Urls>
<Property Name="encoding" Value="UTF-8"/>

I am able to hit both of the endpoints via Postman, and if I register either service as follows things work fine:

<Role Name="DeployerCapability" Url="https://www.my-domain.com/sdl/httpupload" >

I'm also able to hit the discovery service with a successful response. Like I said, publishing works fine when I setup a single deployer capability - but I can't register two for some reason.

When I try to register the capabilities via the role definition above with a mirror strategy, the discovery service is throwing errors:

2019-12-12 14:47:03,451 ERROR ODataRendererActor - Error during datasource access: 'Unexpected error while creating entity 'DeployerCapability{id='DefaultDeployer', lastUpdateTime=null, strategy='MIRROR', uri='https://www.my-domain.com/sdl/httpupload', uris='[DestinationURL{uri='https://www.my-domain.com/sdl/httpupload', destinationName='null'}, DestinationURL{uri='https://www-fo.my-domain.com/sdl/httpupload', destinationName='null'}]', ExtensionProperties='[KeyValue{key='encoding', value='UTF-8'}]'}'. null' com.sdl.odata.api.processor.datasource.ODataDataSourceException: Unexpected error while creating entity 'DeployerCapability{id='DefaultDeployer', lastUpdateTime=null, strategy='MIRROR', uri='https://www.my-domain.com/sdl/httpupload', uris='[DestinationURL{uri='https://www.my-domain.com/sdl/httpupload', destinationName='null'}, DestinationURL{uri='https://www-fo.my-domain.com/sdl/httpupload', destinationName='null'}]', ExtensionProperties='[KeyValue{key='encoding', value='UTF-8'}]'}'. null at com.sdl.web.discovery.datalayer.TridionConfigDataSource.create(TridionConfigDataSource.java:219) at com.sdl.web.discovery.datalayer.TridionConfigDataSource.create(TridionConfigDataSource.java:149)

2019-12-12 14:47:03,449 ERROR TridionConfigDataSource - Unexpected exception while creating entity java.lang.NullPointerException: null at com.sdl.web.discovery.datalayer.model.DestinationURL.hashCode(DestinationURL.java:58) at java.util.HashMap.hash(HashMap.java:339) at java.util.HashMap.containsKey(HashMap.java:596) at com.sdl.web.discovery.datalayer.TridionConfigItemMapper.convertODataEntityToDS(TridionConfigItemMapper.java:136)

6

I dug into the code and it appears as though while it says the DestinationName is optional, I was getting a null pointer in the code on it.

DestinationName The name of this particular Capability instance (optional)

I added a DestinationName for both of the capabilities, and then tried to register all of the capabilities which was successful.

<Role Name="DeployerCapability" Strategy="MIRROR" >
<Urls>
    <Url DestinationName="Production" Value="https://www.my-domain.com/sdl/httpupload" />
    <Url DestinationName="Failover" Value="https://www-fo.my-domain.com/sdl/httpupload" />
</Urls>
<Property Name="encoding" Value="UTF-8"/>

We are on a recent cumulative hotfix CD_8.5.0.16047.

|improve this answer|||||
  • 1
    Glad that you have the issue resolved. Please accept the answer so the question becomes closed. – Atila Sos Dec 12 '19 at 20:38

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.