SFCB 是 CIM 伺服器的輕量化實作,但設定的自由度很高。有多個選項可控制其行為。控制 SFCB 伺服器的方法主要有三種︰
設定相應的環境變數
使用指令行選項
變更其組態檔案
有多個環境變數會直接影響 SFCB 的行為。您需要透過 rcsfcb restart 重新啟動 SFCB 精靈,才能讓上述變更生效。
SFCB_PAUSE_PROVIDER
指定提供者名稱。SFCB 伺服器會在首次載入提供者後暫停。此時,您可以將執行時期除錯程式附加至提供者的程序,以進行除錯。
SFCB_PAUSE_CODEC
指定 SFCB 轉碼器的名稱。SFCB 伺服器會在首次載入轉碼器後暫停。此時,您可以將執行時期除錯程式附加至程序。
SFCB_TRACE
為 SFCB 指定除錯訊息的等級。有效值為 0 (無除錯訊息),或 1 (重要除錯訊息) 至 4 (所有除錯訊息)。預設值為 1。
SFCB_TRACE_FILE
SFCB 預設會將其除錯訊息輸出至標準錯誤輸出 (STDERR)。若要將除錯訊息改寫到指定的檔案,可以設定此變數。
SBLIM_TRACE
為 SBLIM 提供者指定除錯訊息的等級。有效值為 0 (無除錯訊息),或 1 (重要除錯訊息) 至 4 (所有除錯訊息)。
SBLIM_TRACE_FILE
SBLIM 提供者預設會將其追蹤訊息輸出至 STDERR。若要將追蹤訊息改寫到指定的檔案,可以設定此變數。
SFCB 精靈 sfcbd 具有多個指令行選項,可開啟或關閉特定的執行時期功能。請在 SFCB 精靈啟動時輸入這些選項。
-c、--config-file=檔案
SFCB 精靈啟動時,預設會從 /etc/sfcb/sfcb.cfg 中讀取組態。借助此選項,可以指定替代的組態檔案。
-d、--daemon
強制 sfcbd 及其子程序在背景執行。
-s、--collect-stats
開啟執行時期的統計資料收集。各種 sfcbd 執行時期統計資料將被寫入到目前工作目錄下的 sfcbStat 檔案。預設情況下,不會收集任何統計資料。
-l、--syslog-level=記錄層級
指定 syslog 的詳細層級。記錄層級可以是 LOG_INFO、LOG_DEBUG 或 LOG_ERR,預設為 LOG_ERR。
-t、--trace-components=數字
啟動元件層級的訊息追蹤,其中數字為使用 OR 指定的位元遮罩整數,用於定義要追蹤的元件。如果 -t ?,會列出所有元件及其關聯的整數位元
遮罩︰
tux@mercury:~> sfcbd -t ? --- Traceable Components: Int Hex --- providerMgr: 1 0x0000001 --- providerDrv: 2 0x0000002 --- cimxmlProc: 4 0x0000004 --- httpDaemon: 8 0x0000008 --- upCalls: 16 0x0000010 --- encCalls: 32 0x0000020 --- ProviderInstMgr: 64 0x0000040 --- providerAssocMgr: 128 0x0000080 --- providers: 256 0x0000100 --- indProvider: 512 0x0000200 --- internalProvider: 1024 0x0000400 --- objectImpl: 2048 0x0000800 --- xmlIn: 4096 0x0001000 --- xmlOut: 8192 0x0002000 --- sockets: 16384 0x0004000 --- memoryMgr: 32768 0x0008000 --- msgQueue: 65536 0x0010000 --- xmlParsing: 131072 0x0020000 --- responseTiming: 262144 0x0040000 --- dbpdaemon: 524288 0x0080000 --- slp: 1048576 0x0100000
-t 2019 會顯示 sfcbd 的內部函數,但不會產生過多訊息,因此很有用。
SFCB 會在啟動後從組態檔案 /etc/sfcb/sfcb.cfg 讀取其執行時期組態。若想覆寫啟動時的這一行為,可以使用 -c 選項。
組態檔案包含多組 option : 值,每行一組。變更此檔案時,可以使用以所用環境原生格式儲存檔案的任何文字編輯器。
如果設定中包含以數字符號 (#) 設為備註的選項,則該設定會使用預設設定。
可以辨識的選項包括︰
指定 SFCB 是否應接受 HTTP 用戶端連線。預設值為 false。
enableHttp: 選項
|
選項 |
描述 |
|---|---|
|
true |
啟用 HTTP 連線。 |
|
false |
停用 HTTP 連線。 |
指定 SFCB 是否接受 HTTPS 用戶端連線。預設值為 true。
enableHttps: 選項
|
選項 |
描述 |
|---|---|
|
true |
啟用 HTTPS 連線。 |
|
false |
停用 HTTPS 連線。 |
指定 SFCB 是否提供 interop 名稱空間,用於指示支援。預設值為 true。
enableInterOp: 選項
|
選項 |
描述 |
|---|---|
|
true |
啟用 interop 名稱空間。 |
|
false |
停用 interop 名稱空間。 |
接受請求之前,依據用戶端使用者識別碼開啟或關閉基本驗證。預設值為 true,表示執行用戶端驗證。
doBasicAuth: 選項
|
選項 |
描述 |
|---|---|
|
true |
啟用基本驗證。 |
|
false |
停用基本驗證。 |
此選項可啟用或停用 HTTP/HTTPS 區塊化功能。如果啟用,伺服器會將大量回應資料以較小的「區塊」傳回到用戶端,而不是採用緩衝資料,然後以一個區塊全部送回的方式。預設值為 true。
useChunking: 選項
|
選項 |
描述 |
|---|---|
|
true |
啟用 HTTP/HTTPS 資料區塊化功能。 |
|
false |
停用 HTTP/HTTPS 資料區塊化功能。 |
指定 SFCB HTTP 程序在同一個連線上兩次請求間的最長等待時間 (秒)。達到此時間後,程序將終止。如果將其設定為 0,則會停用 HTTP 保持連線功能。預設值為 0。
keepaliveTimeout: 秒數
如果提供者註冊檔案未指定其他任何群組,並且該選項設定為 true,則同一個共享程式庫中的所有提供者都會在同一個程序中執行。
providerAutoGroup: 選項
|
選項 |
描述 |
|---|---|
|
true |
啟用提供者分組。 |
|
false |
停用提供者分組。 |
指定包含伺服器證書的檔案名稱。檔案必須為 PEM (隱私增強郵件,採用 RFC 1421 與 RFC 1424 標準) 格式。不過,此檔案僅在 enableHttps 設定為 true 時才要求使用。預設值為 /etc/sfcb/server.pem。
sslCertificateFilePath: 路徑
指定包含伺服器證書之私密金鑰的檔案名稱。該檔案必須為 PEM 格式,可以不含密碼片語保護。不過,此檔案僅在 enableHttps 設定為 true 時才要求使用。預設值為 /etc/sfcb/file.pem。
sslKeyFilePath: 路徑
指定包含 CA 或自行簽署之客戶端證書的檔案名稱。此檔必須為 PEM 格式,不過僅在 sslClientCertificate 設定為 accept 或 require 時才要求使用。預設值為 /etc/sfcb/client.pem。
sslClientTrustStore: 路徑
指定 SFCB 處理用戶端證書驗證的方式。如果設定為 ignore,則不會要求用戶端提供證書。如果設定為 accept,則會要求用戶端提供證書,不過即使用戶端不提供,操作也不會失敗。如果設定為 require,則會在客戶端不提供證書時拒絕客戶端連線。預設值為 ignore。
sslClientCertificate: 選項
|
選項 |
描述 |
|---|---|
|
ignore |
停用用戶端證書的請求。 |
|
accept |
停用用戶端證書的請求。 即使不提供證書,也不會失敗。 |
|
require |
如果沒有有效的證書,便拒絕用戶端連線。 |