Unable to load protocol class org.jgroups.protocols.openshift.DNS_PING when using customized standalone-openshift.xml

Solution Verified - Updated

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 7.x image
  • Red hat OpenShift Container Platform (OCP)
    • 4/3

Issue

  • When using customized standalone-openshift.xml with openshift.DNS_PING, the following error occurred on startup container.
<protocol type="openshift.DNS_PING" socket-binding="jgroups-mping"/>
ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 24) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "jgroups"),
    ("channel" => "ee")
]) - failure description: "WFLYCLJG0016: Unable to load protocol class org.jgroups.protocols.openshift.DNS_PING"

Resolution

For enabling/disabling clustering capabilities, see solution EAP 7 image clustering in OCP 4.

Remove the line of the protocol customized as openshift.DNS_PING in your customized standalone-openshift.xml.

<protocol type="openshift.DNS_PING" socket-binding="jgroups-mping"/>

And make sure an environment variables JGROUPS_PING_PROTOCOL in deployment config set dns.DNS_PING as a value.
Then the ping would be set properly as follows when starting up the container.

<protocol type="dns.DNS_PING">
    <property name="dns_query">hello-ping</property>
    <property name="async_discovery_use_separate_thread_per_request">true</property>
</protocol>

Root Cause

ProtocolJBoss EAP version
openshift.DNS_PINGdeprecated from EAP 7.2 - removed in EAP 7.3
dns.DNS_PINGJBoss EAP 7.3+
openshift.KUBE_PINGreplaced with kubernetes.KUBE_PING
kubernetes.KUBE_PINGJBoss EAP 7.4

In EAP 7.3 documentation, the openshift.DNS_PING has been described but it is stale. Correct protocol is dns.DNS_PING. That is filed as doc bug This content is not included.JBEAP-16038.
openshift.DNS_PING is deprecated from EAP 7.2 for openshift. EAP 7.3 can not load the deprecated classes and will throw error.

openshift.DNS_PING was deprecated in EAP 7.2 and removed in EAP 7.3, meaning if one specifies openshift.DNS_PING in the config, it will not work (break as parsing) and must be updated to dns.DNS_PING.

Components
Category
Tags

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.