System Requirements
The XX1 Server is a multi-threaded process with SMP support that can handle a large number of concurrent users. The minimum hardware requirements depend on the expected load on a single machine. The relevant components for performance and stability are processor speed, virtual memory (RAM) and network bandwidth. XX1 supports SMP systems. The recommended memory minimum is 512MB. Hard disk space or speed is not relevant for the base server software.
XX1 is currently available for the following operating environments:
- MS Windows
- Sun Solaris 2.5 or higher (SPARC)
- Linux
Configuration files are portable across platforms. You only need to verify that an adapter, module or service is available for a specific system.
TCP/IP Server Listening Ports
The default external interfaces of XX1 are SOAP interfaces, which are configured in the main configuration file.
- The SOAP interface (default 8800)
- The SOAP SSL interface (default 443)
- The Trace interface (default is 3070)
Multiple process instances on one machine
Sometimes it may be desirable or necessary to run multiple instances of XX1 on a single machine. Some typical scenarios would be:
- The server has lots of memory, but one XX1 instance (32Bit) can only address a part of it
- The server machine has multiple network interface cards
- You have more than one configuration
- The server has multiple CPU
When running multiple instances of the XX1 server you need to create a different main configuration file for each. When installing multiple Windows service instances you must specify a unique Service Display name for that service in the main configuration file. If you have multiple network interfaces you can specify the specific IP address for SOAP and Trace with the <bind>
parameter. If you have more than one configuration but one network interface only, you have to specify different listening ports for each instance. If you have more than one CPU you may bind a process to a selected CPU by selecting it in the main configuration file.
Load Balancing
For load balancing use out-of-the-box DNS / HTTP products. XX1 Transactions are normally stateless. If a context-lock across multiple transactions (using a session) is required make sure that the HTTP request is created properly to keep the socket connection. This is either be done automatically by our client software (see XX1 Client SDK) or is described in the Session handling part of the XX1 Client SOAP description, so that DNS load-balancing is safe.
SMP Processor Selection
SMP (= Symmetric Multiprocessing)
By default processor assignment for a client transaction thread is balanced across multiple processors automatically by XX1 and the operating system.
If desired, you can force XX1 to select a specific processor by specifying the CPU number in the SOAP interface section of the main configuration file. On low-to-medium throughput volume this may actually yield a better transaction performance on certain systems.
Thread Pooling
Each client transaction is executed on a separate thread. By default, this thread is created when a client connects, and then destroyed when the client disconnects. On certain machines thread creation represents an overhead. If you know the average transaction load for the machine, you can improve performance by up to 15% by defining client thread pools, that are created at server startup. This is also configured in the SOAP interface section of the main configuration file.
Provider Resource Pooling with Proxy Adapter
In many cases you may need to operate multiple XX1 Servers on different locations, however maintain only one site with physical lines (VPNs) and resources (sessions) to underlying providers. Or for some providers it is not possible to handle a limited number of ressources on different XX1 servers at the same time. For these type of scenarios the XX1 Proxy Adapter can be used.
The XX1 Proxy Adapter allows you to use the resources and session pool of a provider adapter that is located and configured on a remote XX1 Server. Adapter resources on the remote server are allocated and assigned only for the lifetime of a transaction. When starting the local server, no resources are used on the remote provider adapter.