Running XPages in Notes® on a Domino® HTTP server

For better performance, server-based XPages applications that run in the Notes® client can instead run on the Domino® HTTP server.

By default, server-based XPages applications running in the Notes® client execute there through a series of data transfers between server and client using Notes® protocols. You can instead designate that such applications execute on the Domino® server using HTTP protocols.

Notes® functions work the same as when running in native XPages mode. For example, context menus (such as File > Save, File > Replication, File > Open), "dirty" document saves, client-side JavaScript, and so on, behave the same. One exception is that composite applications cannot use client property broker functionality when running on the server.

Designer requirements

On the Launch tab for Application Properties, where Open designated XPage (Standard client) is in effect, check Run server-based XPages applications directly on Domino server and save the application. This property can also be applied in Notes® through the properties box for an application.
Alternatively you can enable server execution for all applications by inserting the following line in the Notes® notes.ini file and restarting Notes®:
XPagesRunRemoteAppsOnServer=1

Notes® run-time requirements

The Notes® client should contain an HTTP account for the server containing the XPages application. To create or view Notes® accounts, click File > Preferences > Accounts. For documentation, see "Creating and editing accounts from the Notes® preference" in Notes® help.

Accounts can be set up on a Domino® server and provisioned to Notes® clients.

When a server-based XPages application is launched in the Notes® client, the XPages processor looks for an HTTP account for the server containing the application, and loads the application.

The Notes® accounts framework and the underlying XULRunner browser automatically pass user credentials to the web server for authentication. If the user is prompted for name and password, the Notes® configuration is not correctly set up, for example, SSO is wrong. You can verify this independently by entering a URL for the application in the Notes® browser address widget on the Notes® toolbar.

If no matching HTTP account exists, the user is challenged for credentials unless anonymous access is permitted. However the existence of an HTTP account can be made mandatory with the following notes.ini variable:
XPagesRunOnServerRequireAccount=1
If a matching account is required but not found, or the account information is invalid, the user is prompted to close the application window or revert to running the application using the local Notes® web container.
The following notes.ini variable disables running XPages in Notes® on a server:
XPagesRunOnServerDisable=1

Performance background

XPages applications that run in the Notes® client but reside on remote Domino® servers face particular performance challenges. This is chiefly because a lot of network transactions must be carried out when executing the XPages application in the Notes® client. It is important to understand that XPages Notes® applications run in the local Notes® XPD web container, and therefore all of the XPages Java classes (XPages and custom controls) must be copied across the network from the remote server to the Notes® client to be executed. Similarly, all page resources (CSS, JavaScript, GIFs, and so on) must be fetched from the remote server, as well as the actual data. Moreover, if your XPages application leverages other Notes® design artifacts (using the computeWithForm feature, for example), then arbitrarily large design elements like forms, subforms, and shared fields must also be fetched remotely. On high latency networks, this can have a significant performance impact, particularly if your application has been deigned primarily for the web and not optimized for the Notes® client.