2

I have setup JMS in SDL Web 8.5 to synchronize the cache for both the Staging and Live targets. The microservices for both Staging and Live are installed on the same machine. There is one Apache MQ server installed with one topic (Tridion) and 2 values (TridionCcsLive and TridionCcsLive).

When publishing new content, only the content on Staging is updated and not on live.

It appears that only the first deployer service which is started is able to send invalidation messages and to invalidate the content. The second deployer which is started is not able to sent invalidation messages.

When looking in the cd_core.log from the Live deployer service the following errors are logged:

2018-02-23 12:28:29,374 ERROR StepActor - Step 'PageDeploy' for 'tcm:0-
581874-66560' can NOT retry
2018-02-23 12:28:29,374 ERROR StepActor - Step 'PageDeploy' for 'tcm:0-
581874-66560': 
org.springframework.beans.factory.BeanCreationException: Error creating 
bean with name 'cacheConfigurationLoader': Invocation of init method 
failed; nested exception is 
com.tridion.configuration.ConfigurationException: Unable to construct 
CacheChannel

And

Caused by: java.rmi.server.ExportException: Port already in use: 0; nested exception is: 
java.net.BindException: Address already in use: JVM_Bind

I have used the following connection string for Live:

<RemoteSynchronization FlushCacheDuringDisconnectInterval="20000" Queuesize="5120" ServiceMonitorInterval="10000">
            <Connector Class="com.tridion.cache.JMSCacheChannelConnector" Strategy="AsyncJMS11MDB" Topic="Tridion">
                <JndiContext>
                    <Property Name="java.naming.factory.initial" Value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
                    <Property Name="java.naming.provider.url" Value="tcp://localhost:61616?soTimeout=5000"/>
                    <Property Name="topic.Tridion" Value="TridionCcsLive"/>
                </JndiContext>
            </Connector>
        </RemoteSynchronization>

And the following string for Staging:

<RemoteSynchronization FlushCacheDuringDisconnectInterval="20000" Queuesize="5120" ServiceMonitorInterval="10000">
        <Connector Class="com.tridion.cache.JMSCacheChannelConnector" Strategy="AsyncJMS11MDB" Topic="Tridion">
            <JndiContext>
                <Property Name="java.naming.factory.initial" Value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
                <Property Name="java.naming.provider.url" Value="tcp://localhost:61616?soTimeout=5000"/>
                <Property Name="topic.Tridion" Value="TridionCcsStaging"/>
            </JndiContext>
        </Connector>
    </RemoteSynchronization>

Addtional errors logged in cd_core.log. It looks like it is starting the RMI Cachechannel as well

018-02-23 11:40:19,142 TRACE ParentLastClassLoader - Loading class: com.tridion.cache.CacheChannelConnector using ServiceLoader

2018-02-23 11:40:19,142 TRACE ParentLastClassLoader - Class: java.rmi.RemoteException is excluded 2018-02-23 11:40:19,158 TRACE ParentLastClassLoader - Loading class: com.tridion.cache.CacheChannel_Stub using ServiceLoader 2018-02-23 11:40:19,158 TRACE ParentLastClassLoader - Could not find class: com.tridion.cache.CacheChannel_Stub in ServiceLoader 2018-02-23 11:40:19,158 TRACE ParentLastClassLoader - Loading class: com.tridion.cache.CacheEvent using ServiceLoader 2018-02-23 11:40:19,158 INFO TridionRMISocketFactory - TridionRMISocketFactory.createServerSocket: Called with port '0' 2018-02-23 11:40:19,158 INFO TridionRMISocketFactory - TridionRMISocketFactory.createServerSocket: Overriding server socket to port '1050' 2018-02-23 11:40:19,158 TRACE ParentLastClassLoader - Class: java.net.ServerSocket is excluded

Any ideas how to resolve this?

2

The error is a sign of you starting up the CacheChannel service twice on the same port. Did you maybe merge the CCS in your Deployer startup?

If you use ActiveMQ JMS, you don't actually need to setup the CacheChannel service at all.

  • I didn't setup the CacheChannel microservice and afaik I also didn't merge the CCS in the deployer setup but I do see some weird entries in the cd_core.log – Gert de Heul Feb 28 '18 at 7:38
2

Problem was caused by the RMIChannel Listenerport which is by default enabled in the quickinstall configs (SDL Web 8.5\Content Delivery\resources\quickinstall\config\deployer-combined\deployer-conf.xml). After commenting out this Port problem was resolved.

<!-- RMI Channel Port -->
<RMIChannel ListenerPort="1050"/>
  • In that case, might I suggest accepting your own answer so the question becomes "closed"? – Atila Sos Mar 3 '18 at 12:05

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.