-xo option

Sets network protocol and protocol options for version 8 and 9 MobiLink clients.

Syntax
mlsrv11 -c "connection-string" 
  -xo protocol[ protocol-options ] ...
protocol-options : ( keyword=value; ... )
Remarks

Specify communications protocol through which to communicate with client applications. The default is TCPIP with port 2439.

The allowed values of protocol are as follows:

  • tcpip   Accept connections from applications via TCP/IP.

  • http   Accept connections using the standard Web protocol. Client applications can pick their HTTP version and the MobiLink server adjusts on a per-connection basis.

  • https   Accept connections using a variant of HTTP that handles secure transactions. The HTTPS protocol implements HTTP over SSL/TLS using RSA encryption, and is compatible with any other HTTPS server.

  • https_fips   Accept connections using the HTTPS protocol and FIPS-approved algorithms for encryption. HTTPS_FIPS uses separate FIPS 140-2 certified software. Servers using rsa_tls are compatible with clients using rsa_tls_fips, and servers using rsa_tls_fips are compatible with clients using rsa_tls.

Optionally, you can also specify network protocol options, in the form option=value. You must separate multiple options with semicolons. The options you can specify depends on the protocol you choose.

  • TCP/IP options   If you specify the tcpip protocol, you can optionally specify the following protocol options:

    • backlog=number-of-connections   The maximum number of remote connections before MobiLink server should reject new synchronization requests, causing synchronization to fail on the client side. By specifying a backlog size, you can prevent clients from waiting to synchronize when the server is busy. If you do not specify a backlog size, MobiLink server accepts as many connections as possible, potentially reaching or exceeding the operating system limit on network connections. This may cause slow or erratic behavior.

      When a client attempts to synchronize with a MobiLink server that has accepted its maximum number of remote connections, it receives the error code -85 (SQLE_COMMUNICATIONS_ERROR). The client application should handle this error and try to connect again in a few minutes.

      For more information about SQLE_COMMUNICATIONS_ERROR, see Communication error.

      If you are using MobiLink in an environment where thousands of simultaneous synchronizations are possible, use the backlog option to specify a maximum number of remote connections that is less than the operating system limit. See Plan for operating system limitations.

    • host=hostname   The host name or IP number on which the MobiLink server should listen. The default value is localhost.

    • ignore=hostname   A host name or IP number that is ignored by the MobiLink server if it makes a connection. This option allows you to ignore requests from load balancers at the lowest possible level, preventing excessive output in the MobiLink server log and MobiLink Monitor output files. You can specify multiple hosts to ignore; for example -x tcpip(ignore=lb1;ignore=123.45.67.89).

    • liveness_timeout=n   The amount of time, in seconds, after the last communication with a client before MobiLink terminates the synchronization. A value of 0 means that there is no timeout. The default is 120 seconds.

    • port=portnumber   The socket port number on which the MobiLink server should listen. The default port is 2439, which is the IANA registered port number for the MobiLink server.

      Note

      The mlsrv11 -x and -xo options use the same default port, and -x is started even if you don't specify it. Therefore you must change the port for -xo unless you change it in the -x option.

    • security=cipher(keyword=value;...)   All communication through this connection is to be encrypted and authenticated using transport-layer security. Cipher can be one of:

      Cipher Description
      rsa_tls RSA encryption.
      rsa_tls_fips RSA encryption that is FIPS-approved. rsa_tls_fips uses separate FIPS 140-2 certified software but is compatible with clients using https (and SQL Anywhere version 9.0.2 or later).
      ecc_tls Elliptic-curve cryptography. For backward compatibility, ecc_tls can also be specified as certicom_tls.

      The security parameters are certificate (the path and file name of the identity file that is to be used for server authentication), and certificate_password. You must use a certificate that matches the cipher suite you choose.

      For more information, see Starting the MobiLink server with transport-layer security.

      Separately licensed component required

      ECC encryption and FIPS-certified encryption require a separate license. All strong encryption technologies are subject to export regulations.

      See Separately licensed components.

  • HTTP options   If you specify the http protocol, you can optionally specify the following protocol options:

    • backlog=number-of-connections    The maximum number of remote connections before MobiLink server should reject new synchronization requests, causing synchronization to fail on the client side. By specifying a backlog size, you can prevent clients from waiting to synchronize when the server is busy. If you do not specify a backlog size, MobiLink server accepts as many connections as possible, potentially reaching or exceeding the operating system limit of network connections. This may cause slow or erratic behavior.

      When a client attempts to synchronize with a MobiLink server that has accepted its maximum number of remote connections, it receives the error code -85 (SQLE_COMMUNICATIONS_ERROR). The client application should handle this error and try to connect again in a few minutes.

      For more information about SQLE_COMMUNICATIONS_ERROR, see Communication error.

      If you are using MobiLink in an environment where thousands of simultaneous synchronizations are possible, use the backlog option to specify a maximum number of remote connections that is less than the operating system limit. For more information, see Plan for operating system limitations.

    • buffer_size=number   The maximum body size for an HTTP message sent from MobiLink server, in bytes. Changing the option decreases or increase the amount of memory allocated for sending HTTP messages. The default is 65535 bytes.

    • contd_timeout=seconds   The number of seconds the MobiLink server waits to receive the next part of a partially completed synchronization before the synchronization is abandoned. You can tune this option to free MobiLink server resources when the wait time indicates that the client can not continue the connection. The default value is 30 seconds.

    • host=hostname   The host name or IP number on which the MobiLink server should listen. The default value is localhost.

    • port=portnumber   The socket port number on which the MobiLink server should listen. The port number must match the port that the MobiLink server is monitoring. The default port is 80.

      Note

      The mlsrv11 -x and -xo options use the same default port, and -x is started even if you don't specify it Therefore, you must change the port for -xo unless you change it in the -x option.

    • session_key={ cookie | header }   Creates an alternative to the JSESSIONID for tracking connections. This may be necessary if your network already uses the JSESSIONID.

    • unknown_timeout=seconds   The number of seconds the MobiLink server waits to receive HTTP headers on a new connection before the synchronization is abandoned. You can tune this option to free MobiLink server resources when the wait time indicates that a network failure has occurred. The default value is 30 seconds.

    • version=http-version   The MobiLink server automatically detects the HTTP version used by a client. This parameter is a string specifying the default version of HTTP to use in case the server cannot detect the method used by the client. You have a choice of 1.0 or 1.1. The default value is 1.1.

  • HTTPS or HTTPS_FIPS options   The https protocol uses RSA digital certificates for transport-layer security. The https_fips protocol uses separate FIPS 140-2 certified software but is compatible with https.

    For more information, see Starting the MobiLink server with transport-layer security.

    Separately licensed component required

    ECC encryption and FIPS-certified encryption require a separate license. All strong encryption technologies are subject to export regulations.

    See Separately licensed components.

    If you specify the https protocol, you can optionally specify the following protocol options:

    • backlog=number-of-connections    The maximum number of remote connections before MobiLink should reject new synchronization requests, causing synchronization to fail on the client side. By specifying a backlog size, you can prevent clients from waiting to synchronize when the server is busy. If you do not specify a backlog size, clients attempts to synchronize regardless of the size of the backlog.

    • buffer_size=number    The maximum body size for an HTTPS message sent from MobiLink server, in bytes. Changing the option decreases or increases the amount of memory allocated for sending HTTPS messages. The default is 65535 bytes.

    • contd_timeout=seconds   The number of seconds the MobiLink server waits to receive the next part of a partially completed synchronization before the synchronization is abandoned. You can tune this option to free MobiLink server resources when the wait time indicates that the client can not continue the connection. The default value is 30 seconds.

    • host=hostname   The host name or IP number on which the MobiLink server should listen. The default value is localhost.

    • port=portnumber   The socket port number on which the MobiLink server should listen. The port number must match the port that the MobiLink server is set up to monitor. The default port is 443.

      Note

      The mlsrv11 -x and -xo options both use the same default port and -x is started even if you don't specify it, so you must change the port for -xo unless you change it in the -x option.

    • certificate   The path and file name of the certificate file that is to be used for server authentication. This must be an RSA certificate.

    • certificate_password   An optional parameter that specifies a password for the certificate file.

      For more information about security, see Transport-layer security.

    • session_key={ cookie | header }   Creates an alternative to the JSESSIONID for tracking connections. This may be necessary if your network already uses the JSESSIONID.

    • unknown_timeout=seconds   The number of seconds the MobiLink server waits to receive HTTP headers on a new connection before the synchronization is abandoned. You can tune this option to free MobiLink server resources when the wait time indicates that a network failure has occurred. The default value is 30 seconds.

    • version=http-version   The MobiLink server automatically detects the HTTP version used by a client. This parameter is a string specifying the default version of HTTP to use in case the server cannot detect the method used by the client. You have a choice of 1.0 or 1.1. The default value is 1.1.

Example

The following command line sets the backlog size to 10 connections.

mlsrv11 -c "dsn=SQL Anywhere 11 CustDB;uid=DBA;pwd=sql" -xo http(backlog=10)