We had a question recently regarding having multiple servers each with some custom server-side event handler code registered and running the Project Application service. Should this work? My immediate answer was yes, and I was fairly sure I had done this in the past but wanted to double check. So I installed the event handler I blogged about recently that did the automatic publish after status updates were applied – http://blogs.msdn.com/brismith/archive/2008/05/06/how-to-ensure-your-accepted-updates-get-published-in-project-server-2007.aspx. This handler does its stuff but also writes to the application event log. So In my twin application server farm I pushed through a few updates and accepted and applied them – and each of my servers took a turn at the event handling. I saw the application event log entries alternating between the two servers – so everything was working just fine.
But remember – it might make more sense for any logging in a complex farm to go to just one central location, or at least duplicated. Another thing to ensure in this type of scenario (which I think was the problem the customer may have been seeing) is that any other files the custom event handler needs should be applied on both servers. So if the event handler needs a setting file to get a URL or GUID to ensure it is working on the right site or entity – the setting file had better be where the event handler is expecting it to be – on each server – or one network location available to each. And for both settings and logs – ensure your code copes with any contention if you do centralize to a single log or settings file.