App Connect

 View Only

 SOAP Input node port assignment

Rodney De Beer's profile image
Rodney De Beer posted 12/30/24 03:46 AM

Hello.

I am battling to understand how to use a single port for all SOAP communication into IBM ACE.

According to this support article (Ports needed for Web Services with App Connect Enterprise or IBM Integration Bus), ports for servers (EG's) containing flows with SOAP input nodes are assigned incrementally as each server starts up.

This means that if a server starts up first today, but second tomorrow, the listener SOAP port will be different. In my mind this could create problems with client applications trying to call the SOAP services on ACE.

What am I missing?

Thanks

ahmad taha's profile image
ahmad taha

@Rodney De Beer,

You are correct. In Execution groups/Integration servers (EG), the input nodes (HTTP/SOAP) are assigned incremental port numbers. For example, if EG1 is assigned port 7800, EG2 will be assigned port 7801, and so on.

While this approach is generally acceptable in non-production environments (e.g., DEV, staging) where typically only one node is deployed, it can pose challenges in production environments with multiple nodes. Configuring the same port (e.g., 7800) for the SOAP service on each node in a production environment can lead to port conflicts; to solve this conflict you can use load balancer with round-robin to distribute the transactions between the nodes for High availability.

Regards,

Rodney De Beer's profile image
Rodney De Beer

Thanks for confirming Ahmad.

It feels so awkward this IBM design. Been in integration for 20 years and never seen this with other toolsets.

Why would you implement a default node wide listener for flat http requests but for soap (also running over http) have a "server" based port assignment.

Strange.

Cheers

Rodney

Matthias Blomme's profile image
Matthias Blomme IBM Champion

Hi Rodney

Small clarification here, the ports are assigned during first create/startup. If an integration server is created and started, it gets assigned a port. That port is written into the (override) server.conf.yaml. You can also manually choose this port and put it in the yaml file, thus choosing what port is used.

The node wide listener is still legacy from older versions. If you look at containers and standalone integration servers, it's all server based.

Rodney De Beer's profile image
Rodney De Beer

Thanks Matthias!

I tested this on our development instances (13.0.2.0) after your post and concur. 

IBM should update the document, it could be a bit misleading.

Thanks

Rodney