如何停止單個 Progress OpenEdge 伺服器程序而不是整個數據庫?
有沒有辦法停止
_mprosrv
由數據庫代理啟動的單個程序?我可以從文件和Google搜尋中找到的所有方法都是斷開單個使用者連接或關閉整個數據庫。就上下文而言,問題在於,我們正在執行一個 OpenEdge 10.2 數據庫,該數據庫主要由遠端 4GL 客戶端和一個使用 SQL over ODBC 每週執行一次數據導出查詢的單一客戶端使用。在我們目前的配置中重新啟動整個伺服器後,數據庫啟動並且代理生成
_mprosrv
的伺服器程序達到代理允許的最大伺服器數量。因此它不能再啟動一個_sqlsrv2
程序,因為所有的槽都被佔用了。即使在沒有連接遠端 4GL 客戶端的低使用期間,ODBC 連接也不會成功,因為空閒伺服器不會關閉以允許生成新伺服器。因此,問題是——我可以關閉單個 4GL 伺服器程序以觸發 SQL 連接的新伺服器創建,而無需使整個數據庫和應用程序離線嗎?
在用不同的查詢搜尋了更多內容之後,我終於從進度知識庫中找到了答案。
首先,事實證明,遠端伺服器程序在預設情況下保持活動狀態,直到數據庫關閉。所以如果所有的slot都被4GL伺服器佔用了,他們自己就不會為SQL server開闢一個slot。
但是,該
PROMON
實用程序具有可以正常終止特定伺服器程序以釋放伺服器插槽的命令。PROMON
主菜單中的命令順序如下:
R&D
對於高級選項4
行政職能7
伺服器選項7
用於終止伺服器從伺服器列表中找到需要終止的伺服器 ID 並輸入。發出命令後,使用
R
選項刷新螢幕,終止的伺服器 ID 應顯示為非活動狀態。終止伺服器後,如果啟動了與系統的 ODBC 連接,則應生成新的 SQL 伺服器。
在 Windows 上,您可能需要使用管理員組中的本地使用者帳戶。屬於管理員組的域使用者不允許終止伺服器。
資料來源:
這是經紀人工作方式的一個已知特徵。最簡單的解決方案是為 SQL 連接啟動輔助代理,並將主代理限制為僅 4GL 連接。您應該始終將代理限制為一種連接類型。這被認為是當今的最佳實踐。
除了您概述的明顯內容之外,這種方法還有其他好處。SQL 連接通常用於報告目的,並且會對其他使用者的系統性能產生重大影響。使用輔助代理,您可以通過調整伺服器數量和每台伺服器的使用者數量等內容來非常輕鬆地限製或提高連接類型的性能。
我希望這有幫助。