Unable to load protocol class org.jgroups.protocols.openshift.DNS_PING when using customized standalone-openshift.xml
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
| Protocol | JBoss EAP version |
|---|---|
openshift.DNS_PING | deprecated from EAP 7.2 - removed in EAP 7.3 |
dns.DNS_PING | JBoss EAP 7.3+ |
openshift.KUBE_PING | replaced with kubernetes.KUBE_PING |
kubernetes.KUBE_PING | JBoss 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.
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.