"java.lang.AssertionError: No replication server channel' when HTTP port is Disabled" - this error came when I was trying to setup SSL within Oracle Weblogic. I had created the required keystores (identity.jks & trust.jks) and imported the certificate to these keystores. Post that I added the keystores to all server's (Admin & Managed) configuration and also mapped the certificate alias in SSL tab.
Post this, the only thing to do was to disable HTTP and enable HTTPS so I enabled HTTPS first, allowed the environment to run with both HTTP and HTTPS to see if it works fine & finally decided to disable HTTP and only let it run with HTTPS. As soon as I made these changes, below errors appeared in managed server log,
<Error> <Cluster> <BEA-003111> <No channel exists for replication calls for cluster MgdSvr1> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: java.lang.AssertionError: No replication server channel for <ManagedServerName> java.lang.AssertionError: No replication server channel for <ManagedServerName> at weblogic.cluster.replication.ReplicationManagerServerRef.initialize(ReplicationManagerServerRef.java:120) at weblogic.cluster.replication.ReplicationManagerServerRef.<clinit>(ReplicationManagerServerRef.java:83) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at weblogic.rmi.internal.BasicRuntimeDescriptor.getServerReferenceClass(BasicRuntimeDescriptor.java:469) at weblogic.rmi.internal.BasicRuntimeDescriptor.createServerReference(BasicRuntimeDescriptor.java:426) at weblogic.rmi.internal.OIDManager.makeServerReference(OIDManager.java:195) at weblogic.rmi.internal.OIDManager.getReplacement(OIDManager.java:175) at weblogic.rmi.utils.io.RemoteObjectReplacer.replaceRemote(RemoteObjectReplacer.java:120) at weblogic.rmi.utils.io.RemoteObjectReplacer.replaceObject(RemoteObjectReplacer.java:103) at weblogic.rmi.extensions.server.ServerHelper.exportObject(ServerHelper.java:241) at weblogic.cluster.replication.ReplicationManager.start(ReplicationManager.java:245) at weblogic.cluster.replication.ReplicationService.start(ReplicationService.java:28) at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
Problem:
Cluster communication relies on replication, typically using HTTP or T3. Disabling HTTP ports breaks this replication because the default HTTP channel becomes unavailable. Although replication over HTTPS is possible, it's disabled by default. To use HTTPS exclusively for cluster replication, the "Secure Replication Enabled" setting must be explicitly activated.
Solution:
The "java.lang.AssertionError: No replication server channel" error, preventing WebLogic Cluster instances from starting, can be resolved by enabling secure replication. This is done by setting the "Secure Replication Enabled" option to true in the WebLogic Administration Console. Here's how:
- Log in to the Administration Console.
- Navigate to Environment -> Clusters.
- Select your cluster (e.g., <MyCluster>).
- On the <MyCluster> -> Replication page, under Replication Channel, check the "Secure Replication Enabled" box.
I hope this helps !!
No comments:
Post a Comment