Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

StreamServer fails to start Kafka

SA-77990

Summary


An environment is set up to run Pega Platform 8.2.1 on the Docker. The 'StreamServer.Default' service does not start. As a result, the StreamServer fails to start the Kafka.


Error Messages



[StreamServer.Default] [STANDARD] [ ] (dsm.kafka.Kafka) ERROR - Failed to start Kafka on 1 attempt, kafka log [ ] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)

[StreamServer.Default] [STANDARD] [ ] (dsm.kafka.Kafka) ERROR - Failed to start Kafka on 2 attempt, kafka log Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 9999; nested exception is:

                java.net.BindException: Address already in use (Bind failed)

sun.management.AgentConfigurationError: java.rmi.server.ExportException: Port already in use: 9999; nested exception is:
               java.net.BindException: Address already in use (Bind failed)

                at sun.management.jmxremote.ConnectorBootstrap.startRemoteConnectorServer(ConnectorBootstrap.java:480)

                at sun.management.Agent.startAgent(Agent.java:262)

                at sun.management.Agent.startAgent(Agent.java:452)

Caused by: java.rmi.server.ExportException: Port already in use: 9999; nested exception is:

                java.net.BindException: Address already in use (Bind failed)


Steps to Reproduce



Install Pega Platform 8.2.1  on Oracle WebLogic 12.2.1.3 with a Patch Set Update (PSU) and JDK 1.8.0_201.


Root Cause



A defect or configuration issue in the operating environment.

With the recent Oracle JDK versions (JDK 7 Update 131 or later/JDK 8 Update 121 or later) and WebLogic Server October 2017 PSU or later, WebLogic implements JEP 290 support which increases security on the Remote Method Invocation (RMI) (see Oracle Fusion Middleware - Configuring a Custom JEP 290 Deserialization Filter).

After starting the Kafka JVM, Pega Platform attempts to connect on local Kafka Java Management Extensions (JMX)port (default 9999) to control the instance. With WebLogic default security configuration, despite Kafka JVM being correctly started and the JMX port being open and reachable (note it is local and bound to a localhost), the Pega Platform will indefinitely wait for the connection to the JMX port to complete successfully.


Resolution



Perform the following local-change:

To allow the Platform to control the Kafka instance on its local JMX port, add the following to the Pega Platform JVM parameters:


-Dweblogic.oif.serialFilterMode=combine
-Dweblogic.oif.serialFilter=java.rmi.server.RemoteObjectInvocationHandler;java.rmi.server.RemoteObject

Published May 12, 2019 - Updated December 2, 2021

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us