I was among the people who was fortunate enough be be sent a review copy of the new “XPages Portable Command Guide” book that has just been published. While this review has been a long time in the making I wanted to get it out there never the less. You should first read the review Tim Tripcony wrote (“XPages Portable Command Guide is a book every Domino administrator should read“) as it is spot on and very good and accurate. The thing about XPages that many developers and administrators forget – or simply doesn’t know – is that it is running on a completely rewritten HTTP stack on the Domino server. It was even refactored recently to be based on OSGi technology to make it even better and more easily extensible. The XPages runtime is more like a traditional J2EE server (like Websphere Application Server) than a traditional Domino server. This means that the runtime is very configurable but out of the box it is configured to be a jack of all trades. You can change it though and you probably should if you run business critical applications of it.
For me the most important part of the book is the part about the xsp.properties file that is the main configuration file for the XPages runtime. The file is central to how an XPages application function and it’s crucial that it is configured and tuned correctly for the needs of the application. While having to do this kind of configuration by hand is prone to errors and that IBM really should provide better tooling for it doesn’t change its central role for XPages. It is therefore very important that you as a developer or administrator know how to edit it. For the developer you need to be able to configure the application so it functions at peak efficiency and as an administrator you need to know enough to throttle your developers to not configuration the applications to as to note starve one another for resources.
The important part about XPages is that where many of the settings for traditional Domino web applications are server settings many, if not all, of the xsp.properties settings can be thought as of deployment settings as well as server settings. As Tim writes – “There are plenty of settings that can be defined in this file that only the developer should care about, but many of them you don’t want the developer to decide. Trust me, if you leave it to me, I’m typically going to max out the RAM consumption in an attempt to provide lightning fast response times. But it’s your server. You should be overriding me on that decision… as long as it’s still in keeping with the end users’ business needs, of course.”
So if you do any work with XPages I therefore highly recommend you get a copy of this book. Get it as an e-book though as it’s a reference and IMHO a paper copy doesn’t make any sense. Most of the API calls you can also find good documentation on online but the xsp.properties part is lacking online and it’s critical to know about and understand if you want to get the maximum from the XPages runtime.