Selecting communications protocols

Any communication between a client application and a database server requires a communications protocol. SQL Anywhere supports a set of communications protocols for communications across networks and for same-computer communications.

By default, the database server starts all available protocols. You can limit the protocols available to a database server using the -x option. On the client side, many of the same options can be controlled using the CommLinks (LINKS) connection parameter.

For more information about running the server using these options, see Supported network protocols.

Available protocols for the personal server

The personal database server (dbeng11.exe) supports the following protocols:

  • Shared memory   This protocol is for same-computer communications, and always remains available. It is available on most platforms, see Supported platforms.

    For same-computer communications, Shared Memory tends to provide better performance than TCP/IP.

  • TCP/IP   This protocol is for same-computer communications from TDS clients, Open Client, or the jConnect JDBC driver. You must not disable TCP/IP if you want to connect from Open Client or jConnect.

    For more information about TDS clients, see Using SQL Anywhere as an Open Server.

Available protocols for the network server

The network database server (dbsrv11.exe) supports the following protocols:

  • Shared memory   This protocol is for same-computer communications, and always remains available. It is available on all platforms.

  • TCP/IP   This protocol is supported on most platforms, see Supported platforms.

Shared memory and terminal services

When using terminal services, shared memory clients can only find database servers running in the same terminal. If you use terminal services with a database server that is running as a service, only clients running on the console can connect. Clients running on non-console terminals cannot connect over shared memory. In these situations, you can use TCP/IP instead of shared memory to allow clients to connect.

For information about securing shared memory connections on Unix, see Security tips.

Specifying protocols

By using the -x option, you can instruct a database server to use only some of the available network protocols. The following command starts the sample database using the TCP/IP protocol:

dbsrv11 -x "tcpip" samples-dir\demo.db

Although not strictly required in this example, the quotes are necessary if there are spaces in any of the arguments to -x.

You can add additional parameters to tune the behavior of the server for each protocol. For example, the following command (typed all on one line) instructs the server to use two network cards, one with a specified port number.

dbsrv11 -x "tcpip(MyIP=192.75.209.12:2367,192.75.209.32)" samples-dir\demo.db

For more information about available network protocol options that can be used with the -x option, see Network protocol options.