Wednesday I had a nice Axis service that was running quite well. Then I tightened up a bit of synchronisation and logging, to make it more robust, and it all went to pieces.
Somehow I can't seem to put it back together in any way that works, which is a bit scary. I have run out of ideas of where to look. My service has a couple of query functions that will return the state of affairs. Then it has an action function which will queue the action, and leave the processing to a separate worker thread. This scenario worked ok, although there was one concurrency issue, which I then tried to deal with. After things broke, I tried to put it back together by disabling the worker thread, but it hasn't made any difference. Could someone explain how threading is used in servicing RPC in Axis, and possibly how I should proceed in finding the problem. P.S. I made a servlet that dumps the current threads, but it didn't give my any clues.
