We call "BROKEN LINES" to those lines in the Database opened by Linkar SERVER that for some reason have ceased to be operational and Linkar SERVER cannot use.
Linkar SERVER has two mechanisms for the detection of "BROKEN LINES":
1."Ping prior to all operations". When an operation leaves the Linkar SERVER operations queue, it is assigned a Linkar line through which to execute the operation. In other words, it is assigned one of the lines that Linkar SERVER has open with the Database.
Before execution, Linkar SERVER launches a special operation, a kind of PING to determine if the line is operational or not. It is a very fast operation and if a response is obtained, it means that the Database line is operational and the operation is launched through it. |
However, if there is no response from that special PING operation, the line is not operational. There can be several reasons why a line is not operational. For instance, the line was closed from the Database, or for some reason, the line is "blocked", in "DEBUG", or in some situation that prevents communication between Linkar SERVER and the Database. |
If the line is not operational, it is a Linkar "BROKEN LINE". |
The operation that originated the "BROKEN LINE" will be redirected to another free database line. If there are no more free database lines, the operation will be queued until the "BROKEN LINES" state is solved. |
2. | "Timeout of operations". The execution of the operations has a fixed maximum time for its completion. This maximum time is set by the Linkar SERVER administrator in the “Timeout in Database Answers” property of each EntryPoint. |
When this time is exceeded, a timeout error is returned to the client application that sent the operation to Linkar SERVER. |
For sure, Linkar SERVER does not know what happened to that operation. That operation could be a call to a subroutine that has entered an infinite loop and does not terminate, or that has brought the Database line into a DEBUG situation. Or it is simply an operation, the execution of which takes longer than that specified in "Timeout in Database Answers". In any case, Linkar SERVER will treat this line as a “BROKEN LINE”. |
Every time Linkar SERVER detects a “BROKEN LINE”, it takes it to a list for further processing. At the same time that the “BROKEN LINE” is detected a new line will be opened in its place. BROKEN LINES do not affect the number of your Linkar used licenses.
The opening of the new line that replaces the “BROKEN LINE” is done in a “background” process. Depending on the type of connection (QMCLIENT, D3MVSP, TERMINAL, SOCKET, ...) of Linkar SERVER with the Database, the opening of the new line may take some time.
An attempt to close the "BROKEN LINES" takes place in a background process of the Database. This process is invoked by Linkar SERVER every 60 seconds while there are "BROKEN LINES" unresolved. If the list of “BROKEN
LINES ”of Linkar SERVER is empty, the Database process is not invoked.
The Database process will examine the status of each “BROKEN LINE” and will try to close it. In some cases, it can be detected that the "BROKEN LINE" is not "dead", that is, it has some process running, and if not you will be able to close until finished. This case is the one that could occur when an operation is executed that does not finish before the time established by the "Timeout in Database Answers" property. Therefore, the line will not be closed until the process is finished. For this decision, the process uses the state of the line reflected in the LK.TRACE file.