0

We have an application on our WebSphere Application Server that calls a web service of a second application which is deployed on the same app server.

There are 100 available web containers (threads).

At times when there are many active users, application 1 allocates all available web container threads. When application 1 tries to call the web service (application 2) there are no free threads, so application 1 never finishes and therefore the whole system hangs.

How can I solve this? For example, is it possible to restrict the web container thread count per application? For example, I would only permit application 1 to use 50% of available threads.

A solution would be to add some code to application 1 that watches the count of requests being processed simultaneously. But I'd try to avoid that if possible, because I think this is very error prone. Earlier, we used the synchronized keyword. But that only allows 1 request at a time which caused even bigger problems.

fishbone
  • 3,140
  • 2
  • 37
  • 50

1 Answers1

1

It could be possible by defining separate transport chain and thread pool.

I dont have web console before me, so steps in rough order:

  • create separate thread pool for your soap service app
  • create separate web transport chain on new port e.g. 9045
  • associate that thread pool with transport chain
  • create new virtual host, with host alias *:9045
  • map your soap-service app to that port

If you will access app via 9045 port it will use your own separate thread pool for that.

Concerns:

  • if it is only local access (from one app to the other) then you just access it via localhost:9045 and you are good to go
  • if your soap service needs to be accessible ALSO from outside e.g. via plugin with the default https port (443), you would need to create different DNS hostname for that so it can be associadet with you soap sercvice app eg. soap-service.domain.com (and then you use that domain in the host alias instead of *. In that case plugin should use that 9045 port for transport also, but I dont have env at hand to verify that.

I hope I didnt complicate it too much. ;-)

Gas
  • 17,601
  • 4
  • 46
  • 93