Feedback
Did this article resolve your question/issue?

   

Article

How to terminate a remote server process?

« Go Back

Information

 
TitleHow to terminate a remote server process?
URL NameP39432
Article Number000139510
EnvironmentProduct: Progress
Version: 9.1E
Product: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Question/Problem Description
How to terminate a remote server process?
How to stop a remote server process from Listening?
How to disconnect a remote server?
How to terminate a _sqlsrv2 process?
How to terminate a SQL server process from the database?
How to terminate a remote ABL server using PROMON?
Why won't SQL remote servers terminate through PROMON like ABL servers?
Is there an auto trim feature for remote database servers?
Is it possible to trim _mprosrv and _sqlsrv2 processes?
Is it possible to auto trim _sqlsrv2 or _mprosrv processes?
Can remote servers be disconnected like user connections through PROMON?
Can a remote SQL server timeout if no one is using it?
Steps to Reproduce
Clarifying Information
Error Message
Defect NumberEnhancement PSC00181840 / OE00136011
Enhancement Number
Cause
Resolution
Database remote Servers can neither be trimmed or timed-out like UBroker processes.
Since Progress 9.1E and later, a _mprosrv (ABL remote server process) can be terminated using PROMON. 
Since OpenEdge 10.1C and later, the capability to terminate a _sqlsrv2 (SQL remote server process) was added to PROMON.
 
After determining which remote server(s) need to be terminated use the following Steps after reading the cautionary notes below.
 
STEPS:
 
  1. Start the Progress Monitor utility:
$ promon <dbname>
  1. At the menu prompt, enter R&D
This is a hidden Option in earlier versions and does not appear within the standard menu but can be used once entered.
  1. Select Option 4: Administrative Functions > 7. Server Options > 7. Terminate a server
The "7. Terminate a server" was added to the "7. Server Options" submenu in OpenEdge 10.2B
 
The current view of spawned remote servers will be presented in the example below: 
 
Sv                                     Pend.   Cur.   Max.   Port
No    Pid  Type       Protocol Logins  Users  Users  Users    Num
 
  0   4872 Login      TCP           1      0      0     10   9832
  1    768 Login      TCP           0      0      0      2   8832
  2   6092 Auto       TCP           1      0      1      2   8864
  3   5088 Auto       TCP           1      0      1     10   9864
  4      0 Inactive                 0      0      0      0      0
 
  1. Enter the Server Number (first column number) associated with the remote server to be terminated.  
After terminating the Server the related remote server Type will change from Auto to Inactive once it has terminated. The Menu needs to be refreshed by reloading it (R).
  1. Repeat the above steps for remaining remote servers, or Select "X" to end the PROMON session.

To assist correlating the correct server number to be terminated:
  • The PID of the remote server process presented above can be used together with the SVR number when analyzing the database lg file.
  • The PROMON menu: R&D > 1. Status Displays > 17. Servers By Broker, shows the same information excluding Inactive servers and groups the remote servers by the LOGIN broker, for example:
Sv                                     Pend.   Cur.   Max.   Port
No    Pid  Type       Protocol Logins  Users  Users  Users    Num
 
  0   4872 Login      TCP           1      0      0     10   9832
  3   5088 Auto       TCP           1      0      1     10   9864
 
  1    768 Login      TCP           0      0      0      2   8832
  2   6092 Auto       TCP           1      0      1      2   8864

Cautionary Notes:
  • Caution should be exercised prior to terminating a remote server process to ensure that there are no users currently connected to the process being terminated, and no exclusive locks or latches are being held by the remote server process itself (for example remote servers cleaning up after disconnected clients).
  • Login Brokers (primary or secondary) cannot be terminated with this functionality. The Login Broker is the Broker that the client/server connection initially connects to with -S port that the Login Broker was started with _mprosrv, as opposed to the remote Server the client communicates with (on the -minport -maxport range) once connection is established which can be terminated with this PROMON utility.
  • The PROMON "Option 7: Terminate a Server" feature was first introduced in Progress 9.1E but only applies to terminating 4GL/ABL remote servers (_mprosrv).  This feature was extended to terminate remote SQL servers (_sqlsrv2) processes in OpenEdge 10.1C.
  • For versions prior to OpenEdge 10.1C a third party tool, such as kill -15 <pid> on UNIX or tskill.exe on Windows, can be used to kill the SQL servers. However this technique is not recommended and if exercised, ensure that all users connected to that remote SQL server have been disconnected beforehand or unexpected database shutdown could be triggered.
  • "sudo" access rights might be needed in some cases, for the promon R&D option.
Workaround
Notes
Last Modified Date11/20/2020 7:20 AM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.