We develop a java Portal that calls the CA Service Desk SOAP web services to create change orders.
We are getting the same issue as what is described here:
How to resolve "Error 1010" being returned by Service Desk web Service Call when Service Desk is behind a Load Balancer.
Basically we are successfully authenticating to one instance, but then in subsequent web service calls, the session ID we pass in will not be valid if we are contacting the *other* server (the one that we didn't authenticate with).
There are 2 CASD servers being load balanced by the application itself. We are not using external load balancers.
The article suggests we enabled sticky sessions on the load balancer. What happens if the load balancing is done by the application? Where can we enable sticky sessions?
If we aren't able to enable sticky sessions, then we'll have to figure out how to get our requests to the correct CASD instance, the one that we were able to authenticate with. Does any one have any examples in Java for how to use the Axis library to direct our request to the correct CASD instance?
How long after the we can service session is created are the subsequent service calls issued? If there is a good amount of time in between it might be better to log back in.
Also how are you load balancing Web service calls? I'm not aware of a built in method to do that, you can however load balance user sessions with multiple Web engines.
We are making subsequent calls immediately after getting the session ID.
I'll find out how we are load balancing web service calls.
SDM Web Services application does not have any load balancing features out of the box. SDM Web Engines on the other hand do allow load balancing using Web Director feature.
It's the SDM Tomcat's AXIS servlet, that needs to be load balanced via sticky session enablement.
Without sticky sessions, I cannot see any easy way to get this functional.
Thank you Raghu. Do you have any documentation about how to enable sticky sessions in the SDM Tomcat's AXIS servlet?
To be honest, I personally had challenges with basic session Sticky and native AXIS. Basic session sticky (example, the OOTB ones on F5) seems to work fine for GUI based connections, but AXIS gave me trouble.
I believe you need to implement JVMRoute option -> http://www.ramkitech.com/2012/10/tomcat-clustering-series-part-2-session.html
Thank you Raghu for the link that describes the JVMRoute fix. The article described the load balancer issue very well.
After much digging I found that there is a TMG server in front of CA Service Desk. It was getting too difficult to try and configure the load balancers to have sticky sessions, so in the end we had to handle it in our Portal code by getting the load balancer cookie from the first login request and passing that cookie in future web service requests. So now it's working!
Thank you for sharing the info Andrea
Hi AndreaInNZ - Did Raghu.Rudraraju's response help answer your question? If so please mark as Correct Answer. Thanks!