A socket server program was created by Kosday to provide faster database access than Telnet, which incurs a performance penalty during the initial login, and can be subject to protocol overhead when processing transactions.
The socket connection type is currently supported over all database configurations, except D3 Windows, mvBASE, and jBASE.
Once the environment is setup, Linkar Client requests are first received by an EntryPoint on its unique socket port. Then they are forwarded to the database on the socket port(s) configured here.
Some process is required to start the socket servers (listeners) on DBMS ports. It is recommended that these listeners are started with the database, during its coldstart sequence. If that is not setup, the sockets configuration screen includes fields to describe a login process to the database from Linkar SERVER, where an initialization connection will be made (Terminal = Telnet or SSH), and listeners started on other ports. When complete, the Terminal startup process will disconnect. This leaves the socket servers running with no Terminal connections remaining or used for transactions. For details about all fields relating to the initial Terminal connection that then starts the sockets, please see Terminal configuration.
If the database or its startup processes are configured to run the socket servers automatically, Linkar SERVER will not need those auxiliary Telnet or SSH sessions, and the Login String details will not need to be defined. The initial opening of connections from Linkar SERVER to the database will also be faster.
Note that because socket listeners are setup before transactions are processed that an EntryPoint defined to use this socket connection type should not define temporary/temporal sessions. A temporary connection would need to first establish a Telnet session, start the listener, and then logout. Then a new connection would be made to the listener for the transaction. This would not be effective in a production environment.
As a guideline:
•Use Terminal connections when required and when it's desirable to have a minimal number of DBMS processes pre-started, with occasional temporary sessions created during peak time. This is the slowest connection type.
•Use DBMS-specific connection library types where possible in preference over the others, for performance and to better support temporary sessions. This is generally considered to be the fastest and most direct connection type.
•Use Socket connections when it is acceptable to pre-define the maximum number of expected DBMS licenses for high performance. This is faster than Telnet connections, but benchmarks are not yet available to compare with DBMS-specific types.
(Screenshots on this page show the bottom part of EntryPoint Configuration)
In Linkar MANAGER, properties with a green label do not need a restart of the EntryPoint after a change.
Database address IP or Hostname
|
Display Only |
|
Shows the database server host from the Profile. |
Terminal Type |
Ignored if Linkar SERVER does not need to do initial startup |
|
Telnet or SSH : only if Linkar SERVER needs to do initial startup |
Database Port |
Mandatory only if Linkar SERVER needs to do initial startup
|
|
Normal Telnet/SSH port, commonly 23, 22, or 4242 for QM. |
Timeout in Database Answers
|
Mandatory, used at transaction time |
hot-change New received requests |
The maximum time in seconds to wait for a response from the database. The operation is canceled and an error is returned to the Linkar Client when there is no response after this time period. The Database Session remains until closed by the client or other normal processes. If an expiration time of 0 is defined, requests default to never timeout. It would therefore be strongly recommended to set a timeout in the Linkar CLIENT application code.
|
First Socket Port |
Mandatory only if Linkar SERVER needs to do initial startup |
|
TCP port on which the first socket server will be listening. Default is 11100. The number of socket servers is defined with the EntryPoint, and each listener is assigned the next socket number in sequence. |
Last Socket Port |
Display Only |
|
Shows the last TCP port used, based on the number of lines assigned to the EntryPoint. |
Username |
Mandatory
|
|
First User ID response on initial Telnet/SSH connection. May be for OS or database, depending on environment. Please see Terminal configuration for details. |
Password (URL)
|
|
|
First password, if required. Or URL to obtain the password via REST web service |
Password2 (URL)
|
|
|
Second password or other login response, if required. Or URL to obtain the password via REST web service |
Password3 (URL)
|
|
|
Third password or other login response, if required. Or URL to obtain the password via REST web service |
MV Account
|
Mandatory |
|
Data account on which the requests will be executed. The data account must already be enabled for use with Linkar SERVER. |
Terminal Session EXIT command
|
|
|
Command that is required by the DBMS to close the Telnet / SSH session. It usually is "exit" or "quit" and may be case-sensitive. |
Show Database Commands Button:
This button shows the command that must be executed in the database to enable a socket server for a single DBMS port.
LKLISTENING -SOCKET,IP,PORT,TIMEOUT
in D3: LKLISTENING -SOCKET,PORT
The command must be executed in a loop to create new listeners for data accounts up to the number required to support all EPs.
For details about all fields relating to the initial Terminal connection that then starts the sockets, please see Terminal configuration. That setup is only required if the database is not auto-starting these socket listeners.