Sun Java 標誌     上一章      目錄      索引      下一章     

Sun 標誌
Sun Java System Message Queue 3.5 SP1 管理指南 

第 5 章
啟動與配置代理程式

安裝 Sun Java™ System Message Queue 之後,您可以使用 imqbrokerd 指定啟動代理程式。代理程式實例的配置由一組配置檔案和使用 imqbrokerd 指令傳送的選項管理,這些選項置換配置檔案中的相應特性。

本章介紹 imqbrokerd 指令的語法,以及如何使用指令行選項和配置檔案來配置代理程式實例。此外,還描述如何執行以下作業:

如需如何啟動與使用作為 Windows 服務的代理程式的說明,請參閱「將代理程式用作 Windows 服務」


配置檔案

用來配置代理程式的已安裝代理程式配置檔案範本,位於作業系統的某個目錄中,目錄位置因作業系統而異,如附錄 A「Message Queue 資料的位置」 中所述。

此目錄儲存以下檔案:

實例配置檔案

當您首次執行代理程式時,會建立實例配置檔案,您可以用來指定代理程式實例的配置特性。實例配置檔案儲存於以代理程式實例名稱 (instanceName) 作為辨別依據的目錄中,且代理程式實例與配置檔案相互關聯 (請參閱附錄 A「Message Queue 資料的位置」):

.../instances/instanceName/props/config.properties


備註

/instances/instanceName 目錄 (和實例配置檔案) 歸其對應的代理程式實例的建立者所有。之後必須以同一個使用者來啟動所有代理程式實例。


代理程式實例會維護實例配置檔案。當您使用管理工具變更配置時,即會修改實例配置檔案。您也可以以手動方式編輯實例配置檔案來變更配置 (請參閱「編輯實例配置檔案」)。若要執行此動作,您必須為 .../instances/instanceName 目錄的擁有者,或以超級使用者身分登入,才可變更目錄上的權限。

如果您連接叢集中的代理程式實例 (請參閱「多重代理程式叢集 (企業版)」),您可能還需要使用叢集配置檔案以指定叢集配置資訊。如需更多資訊,請參閱「叢集配置特性」

合併特性值

啟動時,系統會合併不同配置檔案中的特性值。它使用在安裝和實例配置檔案中配置的值置換在預設配置檔案中指定的值。您可以透過使用 imqbrokerd 指令選項置換結果值。此機制在圖 5-1 中有說明。

圖 5-1 代理程式配置檔案

圖表顯示指令行選項置換 config.properties 選項,config.properties 選項置換 install.properties 選項,而 install.properties 選項置換預設選項。

特性命名語法

配置檔案中的任何 Message Queue 特性定義均使用以下命名語法:

propertyName=value[[,value1]...]

例如,以下項目指定拒絕其他訊息前,代理程式會在記憶體和永久性倉庫中攔截 50,000 個訊息。

imq.system.max_count=50000

下列項目指定每天 (86400 秒) 會建立一個新的日誌檔:

imq.log.file.rolloversecs=86400

表 5-1 以字母順序列出代理程式配置特性 (及其預設值)。

編輯實例配置檔案

首次執行代理程式實例時,會自動建立 config.properties 檔案。您可以編輯此實例配置檔案,以自訂相應代理程式實例的運作方式和資源使用。

代理程式實例僅在啟動時讀取 config.properties 檔案。若要永久性變更 config.properties 檔案,您可以

表 5-1 以字母順序列出代理程式實例配置特性 (及其預設值)。如需有關每種特性的涵義和使用的更多資訊,請參閱指定的交叉參照部分。

表 5-1 代理程式實例配置特性 

特性名稱

類型

預設值

參考

imq.accesscontrol.enabled

布林

true

表 2-6

imq.accesscontrol.file.
filename

字串

accesscontrol.
properties

表 2-6

imq.authentication.basic.
user_repository

字串

file

表 2-6

imq.authentication.
client.response.timeout

整數
(秒)

180

表 2-6

imq.authentication.type

字串

digest

表 2-6

imq.autocreate.destination.
isLocalOnly

布林

false

表 2-10

imq.autocreate.destination.
limitBehavior

字串

REJECT_NEWEST

表 2-10

imq.autocreate.destination.
maxBytesPerMsg

位元組字串1

10k

表 2-10

imq.autocreate.destination.
maxNumMsgs

整數

100,000

表 2-10

imq.autocreate.destination.
maxNumProducers

整數

100

表 2-10

imq.autocreate.destination.
maxTotalMsgBytes

位元組字串1

10m

表 2-10

imq.autocreate.queue

布林

true

表 2-10

imq.autocreate.queue.
consumerFlowLimit

整數

1000

表 2-10

imq.autocreate.queue.
localDeliveryPreferred

布林

false

表 2-10

imq.autocreate.queue.
maxNumActiveConsumers

整數

1

表 2-10

imq.autocreate.queue.
maxNumBackupConsumers

整數

0

表 2-10

imq.autocreate.topic

布林

true

表 2-10

imq.autocreate.topic.
consumerFlowLimit

整數

1,000

表 2-10

imq.cluster.property_name

 

 

表 5-3

imq.hostname

字串

所有可用 IP 位址

表 2-3

imq.httpjms.http.property_name

 

 

表 C-1

imq.httpsjms.https.
property_name

 

 

表 C-3

imq.keystore.property_name

 

 

表 8-8

imq.log.console.output

字串

ERROR|WARNING

表 2-9

imq.log.console.stream

字串

ERR

表 2-9

imq.log.file.dirpath

字串

請參閱附錄 A「Message Queue 資料的位置」

表 2-9

imq.log.file.filename

字串

log.txt

表 2-9

imq.log.file.output

字串

ALL

表 2-9

imq.log.file.rolloverbytes

整數
(位元組)

-1
(無自動重建)

表 2-9

imq.log.file.rolloversecs

整數
(秒)

604800

表 2-9

imq.log.level

字串

INFO

表 2-9

imq.log.syslog.facility

字串

LOG_DAEMON

表 2-9

imq.log.syslog.identity

字串

imqbrokerd_${imq.
instanceName}

表 2-9

imq.log.syslog.logconsole

布林

false

表 2-9

imq.log.syslog.logpid

布林

true

表 2-9

imq.log.syslog.output

字串

ERROR

表 2-9

imq.log.timezone

字串

本地時區

表 2-9

imq.message.expiration.
interval

整數
(秒)

60

表 2-4

imq.message.max_size

位元組字串1

70m

表 2-4

imq.metrics.enabled

布林

true

表 2-9

imq.metrics.interval

整數
(秒)

-1
(永不)

表 2-9

imq.metrics.topic.enabled

布林

true

表 2-9

imq.metrics.topic.interval

整數
(秒)

60

表 2-9

imq.metrics.topic.persist

布林

false

表 2-9

imq.metrics.topic.timetolive

整數
(秒)

300

表 2-9

imq.passfile.dirpath

字串

請參閱附錄 A「Message Queue 資料的位置」

表 2-6

imq.passfile.enabled

布林

false

表 2-6

imq.passfile.name

字串

密碼檔案

表 2-6

imq.persist.file.
destination.message.
filepool.limit

整數

100

表 2-5

imq.persist.file.message.
cleanup

布林

false

表 2-5

imq.persist.file.message.
filepool.cleanratio

整數

0

表 2-5

imq.persist.file.message.
max_record_size

位元組字串1

1m

表 2-5

imq.persist.file.sync.
enabled

布林

false

表 2-5

imq.persist.jdbc.property_name

 

 

表 B-1

imq.persist.store

字串

file

表 2-5

imq.ping.interval

整數

120

表 2-3

imq.portmapper.backlog

整數

50

表 2-3

imq.portmapper.hostname

字串

繼承自 imq.hostname

表 2-3

imq.portmapper.port

整數

7676

表 2-3

imq.resource_state.count

整數
(百分比)

5000 (green)
500 (yellow)
50(orange)
0 (red)

表 2-4

imq.resource_state.
threshold

整數
(百分比)

0 (green)
80 (yellow)
90(orange)
98 (red)

表 2-4

imq.service.activelist

清單

jms, admin

表 2-3

imq.service_name.
accesscontrol.enabled

布林

繼承系統範圍的特性的值

表 2-6

imq.service_name.
accesscontrol.file.filename

字串

繼承系統範圍的特性的值

表 2-6

imq.service_name.
authentication.type

字串

繼承系統範圍的特性的值

表 2-6

imq.service_name.max_threads

整數

1000 (jms)
500 (ssljms)
500 (httpjms)
500 (httpsjms)
10 (admin)
10 (ssladmin)

表 2-3

imq.service_name.min_threads

整數

10 (jms)
10 (ssljms)
10 (httpjms)
10 (httpsjms)
4 (admin)
4 (ssladmin)

表 2-3

imq.service_name.protocol_type.
hostname

字串

繼承自 imq.hostname

表 2-3

imq.service_name.protocol_type.
port

整數

0
(動態配置)

表 2-3

imq.service_name.
threadpool_model

字串

dedicated (jms)
dedicated (ssljms)
dedicated (httpjms)
dedicated (httpsjms)
dedicated (admin)
dedicated (ssladmin)

表 2-3

imq.shared.
connectionMonitor_limit

整數

512 (Solaris & Linux)
64 (Windows)

表 2-3

imq.system.max_count

整數,
0 (無限制)

-1

表 2-4

imq.system.max_size

位元組字串1
0 (無限制)

-1

表 2-4

imq.transaction.autorollback

布林

false

表 2-4

imq.user_repository.ldap.
property_name

 

 

表 8-5

1 作為位元組字串鍵入的值,可以用位元組、千位元組和百萬位元組表示:例如:1000 表示 1000 位元組;7500b 表示 7500 位元組;77k 表示 77 千位元組 (77 x 1024 = 78848 位元組);17m 表示 17 百萬位元組 (17 x 1024 x 1024 = 17825792 位元組)


啟動代理程式

啟動代理程式實例可使用 imqbrokerd 指令。


備註

您無法使用管理主控台 (imqadmin) 或指令公用程式 (imqcmd) 啟動代理程式實例。代理程式實例必須已處於執行狀態,才能使用這些 Message Queue 管理工具。


若要置換一個或多個特性值,請指定有效的 imqbrokerd 指令行選項。指令行選項可置換代理程式配置檔案中的值,但僅用於目前的代理程式階段作業:指令行選項不能寫入至實例配置檔案。

imqbrokerd 指令的語法

imqbrokerd 指令的語法如下 (選項和引數用空格分隔):

 

imqbrokerd [[ -Dproperty=value]...]

    [ -backup fileName]

[ -cluster "[broker1] [[,broker2]...]"

[ -dbuser userName] [ -dbpassword password]

[ -force]

[ -h|-help]

[ -javahome path]

[ -ldappassword password]

[ -license licenseName]

[ -loglevel level]

[ -metrics interval]

[ -name instanceName]

[ -password keypassword] [ -passfile fileName]

[ -port number]

[ -remove instance]

[ -reset data]

[ -restore fileName]

[ -shared]

[ -silent|-s] [ -tty]

[ -upgrade-store-nobackup]

[ -version]

[ -vmargs arg1 [[arg2]]

 


備註

在 Solaris 上,您可以將代理程式配置為異常結束後自動重新啟動,方法為透過將 /etc/imq/imqborkerd.conf 配置檔案中的 RESTART 特性配置為 YES



備註

在 Solaris 和 Linux 平台上,包含配置資訊和永久性資料的目錄的許可權,取決於首次啟動代理程式實例的使用者的身份。因此,若要使代理程式實例運行正常,以後也必須僅由原來的使用者啟動它。


啟動範例

以下範例說明 imqbrokerd 指令的使用:如需更多 imqbrokerd 指令行選項的資訊,請參閱表 5-2


若要啟動預設代理程式名稱和配置的代理程式實例

請使用以下指令:

imqbrokerd

此指令可在本地機器上啟動代理程式的預設實例 (名為 imqbroker),連接埠對映器位於連接埠 7676。


若要啟動使用試用企業版授權的代理程式實例

如果您有平台版的授權,但想要試用為期 90 天的企業版功能,您可以使用 -license 指令行選項,並將「try」作為要使用的授權傳送,以啟動試用企業版授權:

imqbrokerd -license try

每次啟動代理程式實例時都必須使用此選項,否則它會預設回基本的平台版授權。


若要啟動包含外掛永久性的已命名代理程式實例

若要啟動使用外掛資料倉庫的 myBroker 代理程式 (請參閱附錄 B「設定外掛持續性」),且要求輸入使用者和密碼,請使用以下指令:

imqbrokerd -name myBroker -dbuser myName -dbpassword myPassword

imqbrokerd 選項的摘要

表 5-2 描述了 imqbrokerd 指令的選項,還描述了每個選項影響的配置特性 (如果有)。

表 5-2 imqbrokerd 選項 

選項

影響的特性

說明

-backup fileName

無影響的特性。

僅適用於代理程式叢集。將主代理程式的配置變更記錄備份至指定檔案。請參閱「備份配置變更記錄」

-cluster"[broker1]
[[,broker2]..."


其中 broker 為以下之一

  • host[:port]
  • [host]:port

imq.cluster.brokerlist 配置為與其連接的代理程式清單。

僅適用於代理程式叢集。連接至指定主機和連接埠上的所有代理程式。此清單已與 imq.cluster.brokerlist 特性中的清單合併。如果您沒有為主機指定值,則使用 localhost。如果您沒有為連接埠指定值,則使用值 7676。請參閱「使用叢集 (企業版)」,以獲得有關如何使用此選項連接多重代理程式的更多資訊。

-dbpassword password

imq.persist.jdbc.
password
配置為指定的密碼

為外掛 JDBC 相容資料倉庫指定密碼。請參閱附錄 B「設定外掛持續性」

-dbuser userName

imq.persist.jdbc.user
配置為指定的使用者名稱

為外掛 JDBC 相容資料庫指定使用者名稱。請參閱附錄 B「設定外掛持續性」

-Dproperty=value

配置系統特性。置換實例配置檔案中的相應特性值。

將指定的特性配置為指定的值。請參閱表 5-1,以獲得代理程式配置特性。

警告:請仔細檢查使用 D 選項配置的特性的拼寫與格式。如果您傳送了錯誤的值,系統將不警告您,並且 Message Queue 亦無法配置這些值。

-force

無影響的特性。

未經使用者確認即執行動作。此選項僅套用通常要求確認的
-remove instance-upgrade-store-nobackup 選項。

-h|-help

無影響的特性。

顯示說明。不執行指令行上的其他任何指令。

-javahome path

無影響的特性。

指定替代
Java 2 相容 JDK 的路徑。預設為使用隨附的運行時間。

-ldappassword
password

imq.user_repository.
ldap.password
配置為指定的密碼

為存取 LDAP 使用者儲存庫指定密碼。請參閱「將 LDAP 伺服器用於使用者儲存庫」

-license [licenseName]

無影響的特性。

如果要載入的授權與 Message Queue 產品版本預設的授權不同,則指定要載入的授權。如果您尚未指定授權名稱,則此項會列出系統上安裝的所有授權。根據已安裝的 Message Queue 版本,licenseName 值為 pe (平台版 - 基本功能)、try (平台版 - 90 天試用企業功能) 和 unl (企業版)。請參閱「產品版本」

-loglevel level

imq.broker.log.level 配置為指定的級別。

將記錄級別指定為以下之一:NONEERRORWARNINGINFO。預設值為 INFO。如需更多資訊,請參閱「記錄程式」

-metrics interval

Sets imq.metrics.
interval
配置為指定的秒數。

指定寫入記錄程式的代理程式度量的指定間隔時間 (以秒為單位)。

-name instanceName

imq.instancename 配置為指定的名稱。

指定此代理程式的實例名稱,並使用相應的實例配置檔案。如果您沒有指定代理程式名稱,則將實例名稱配置為 imqbroker
注意:如果您在同一主機上執行代理程式的多個實例,則每個實例必須具有唯一的名稱。

-passfile fileName

imq.passfile.
enabled
配置為 true。將 jmq.
passfile.dirpath
配置為包含此檔案的路徑。
imq.passfile.name 配置為此檔案的名稱。

指定檔案的名稱,您可從此檔案讀取 SSL 密鑰儲存、LDAP 使用者儲存庫或 JDBC 相容資料庫的密碼。如需更多資訊,請參閱「使用密碼檔案」

-password keypassword

imq.keystore.
password
配置為指定的密碼。

為 SSL 憑證密鑰儲存指定密碼。如需更多資訊,請參閱「安全性管理程式」

-port number

imq.portmapper.port 配置為指定的號碼。

指定代理程式的連接埠對映器連接埠號。依預設,此項配置為 7676。若要在同一伺服器上執行代理程式的兩個實例,則每個代理程式的連接埠對映器必須有埠同的連接埠號。Message Queue 用戶端會使用此連接埠號連接至代理程式實例。

-remove instance

無影響的特性。

導致移除代理程式實例:刪除此實例配置檔案、日誌檔、永久性倉庫以及與此實例相關聯的其他檔案和目錄。要求使用者確認,除非也指定了 -force 選項。

-reset store| messages|
durables|
props

無影響的特性。

依據給定的引數,重設資料倉庫 (或資料倉庫的子集) 或代理程式實例的配置特性。

重設資料倉庫,清除所有永久性資料,包括永久性訊息、長期訂閱和異動資訊。此項可讓您啟動沒有記錄的代理程式實例。您還可以僅清除所有永久性訊息或僅清除所有長期訂閱。(如果您不想在後續的重新啟動中重設永久性倉庫,請重新啟動未使用 -reset 選項的代理程式實例。)如需更多資訊,請參閱「持續性管理程式」

重設代理程式的特性,用空白檔案取代現有實例配置檔案 (config.properties):所有特性均假設為預設值。

-restore fileName

無影響的特性。

僅適用於代理程式叢集。用指定的備份檔案取代主代理程式的配置變更記錄。此檔案必須已使用 -backup 選項事先建立。請參閱「復原配置變更記錄」

-shared

imq.jms.
threadpool_model
配置為 shared

指定要使用共用執行緒儲存區模型實施的 jms 連接服務,在此模型中,執行緒在各連接之間共用以增加代理程式實例支援的連接數目。如需更多資訊,請參閱「連接服務」

-silent|-s

imq.log.console.
output
配置為 NONE

關閉對主控台的記錄。

-tty

imq.log.console.
output
配置為 ALL

指定所有訊息均在主控台顯示。依預設,僅顯示 WARNINGERROR 級別的訊息。

-upgrade-store-
nobackup

無影響的特性

指定從不相容的版本升級到 Message Queue 3.5 或 Message Queue 3.5 SPx 時會自動移除舊的資料倉庫。如需其他詳細資訊,請參閱「Message Queue 安裝指南」。

-version

無影響的特性。

顯示安裝產品的版本編號。

-vmargs arg1 [[arg2]...]

無影響的特性

指定要傳送至 Java VM 的引數。用空格分隔各引數。如果您要傳送多個引數,或者如果引數包含空格,請使用括起的引號。例如:
imqbrokerd -tty -vmargs "-Xmx128m -Xincgc"


使用叢集 (企業版)

本節描述用於配置多重代理程式叢集的特性以及連接代理程式的兩種方法,並介紹如何管理叢集。如需叢集的介紹,請參閱「多重代理程式叢集 (企業版)」

使用叢集時,請確保叢集中所有代理程式的主機時鐘同步 (請參閱「系統時鐘設定」)。

叢集配置特性

當您將代理程式連接至叢集時,所有連接的代理程式必須指定為叢集配置特性的配置。這些特性描述了叢集中代理程式的參與情況。表 5-3 總結了與叢集相關的配置特性。以星號 (*) 標記的特性必須跟叢集中的所有代理程式擁有一樣的值。

表 5-3 叢集配置特性 

特性名稱

說明

imq.cluster.brokerlist*

指定叢集中的所有代理程式。由以逗號分隔的主機:連接埠項目清單組成,其中主機為每個代理程式的主機名稱,連接埠為它的連接埠對映器連接埠號。例如:
host1:3000host2:8000ctrhost

imq.cluster.
masterbroker*

指定叢集中的哪個代理程式 (如果有) 為記錄狀態變更的主代理程式。特性由 host:port 組成,其中host為主代理程式的主機名稱,port 為它的連接埠對映器連接埠號。配置生產環境的內容。例如,ctrhost:7676

imq.cluster.url*

指定叢集配置檔案的位置。用於代理程式參考中央叢集配置檔案,而不是個別配置。由 URL 字串組成:如果保留在 Web 伺服器上,則可使用一般的 http:URL 存取它。如果保留在共用磁碟機上,則可使用 file:URL 存取它。

例如:http://webserver/imq/cluster.properties
file:/net/mfsserver/imq/cluster.properties

imq.cluster.port

對於叢集中的每個代理程式,均可用於為 cluster (叢集) 連接服務指定連接埠號。 cluster (叢集) 連接服務用於在叢集的各代理程式之間進行內部通訊。
預設值:0 (已動態配置連接埠)

imq.cluster.hostname

對於叢集中的每個代理程式,如果有多台主機可用 (例如,如果一台電腦中有多個網路介面卡),則可用於指定 cluster (叢集) 連接服務所連結的主機 (主機名稱或 IP 位址)。cluster (叢集) 連接服務用於在叢集的各代理程式之間進行內部通訊。
預設值:繼承 imq.hostname 的值 (請參閱表 2-3)

imq.cluster.transport*

指定 cluster (叢集) 連接服務用於叢集中,代理程式間內部通訊的網路傳輸。為顧及代理程式間加密訊息發送的安全,請針對叢集中的所有代理程式,將此特性配置為 ssl。預設值:tcp

您可以使用以下兩種方法之一配置叢集特性:

以下程式碼範例顯示叢集配置檔案的內容。host1ctrlhost 均正在預設連接埠上執行。這些特性指定在叢集中連接到 host1host2ctrlhost,且 ctrlhost 為主代理程式。

imq.cluster.brokerlist=host1,host2:5000,ctrlhost

imq.cluster.masterbroker=ctrlhost

用於在叢集中連接的每個代理程式的實例配置檔案,必須還包含此叢集配置檔案的 URL;例如:

imq.cluster.url=file:/home/cluster.properties

連接代理程式

本節描述如何將代理程式連接到叢集,以及如何配置叢集的安全性,即配置叢集中代理程式間的加密訊息發送。

連接方法

有兩種通用方法可將代理程式連接到叢集:使用或不使用叢集配置檔案進行連接。

無論您使用哪種方法,您啟動的每個代理程式每 5 秒鐘會嘗試連接至其他代理程式;一旦啟動此叢集中的主代理程式,嘗試即可成功。如果叢集中有代理程式比主代理程式先啟動,則此代理程式將保持暫停狀態,從而拒絕用戶端連接。當主代理程式啟動時,暫停的代理程式的全部功能將自動可用。

方法 1:不使用叢集配置檔案進行連接
    將代理程式連接到叢集
  1. 使用啟動代理程式的 imqbrokerd 指令的 -cluster 選項,並將代理程式 (要連接的) 的完整清單指定為 -cluster 選項的引數。
  2. 對於每個要連接至叢集的代理程式,在啟動它時執行此作業。
  3. 例如,以下指令啟動新的代理程式,並將其連接至在 host1 的預設連接埠上執行的代理程式、在 host2 的連接埠 7677 上執行的代理程式以及在本地主機的連接埠 7678 上執行的代理程式。

    imqbrokerd -cluster host1,host2:7677,:7678

方法 2:使用叢集配置檔案進行連接

還可以建立叢集配置檔案,此檔案指定要連接的代理程式清單 (和選擇性地指定主代理程式的位址)。這種定義叢集的方法更適合用於生產系統。如果您要使用此方法,叢集中的每個代理程式均必須將 imq.cluster.url 特性的值配置為指向此叢集配置檔案。

安全代理程式互通連接

要求叢集中代理程式間的加密訊息發送的安全性時,您必須配置 cluster (叢集) 連接服務,以使用基於 SSL 的傳輸協定,方法如下所述:

    若要在叢集內配置安全連接
  1. 針對叢集中的每個代理程式,配置基於 SSL 的連接服務。
  2. 請參閱「透過 TCP/IP 設定基於 SSL 的服務」中的說明。

  3. imq.cluster.transport 叢集配置特性配置為 ssl
  4. 如果您沒有使用叢集配置檔案,那麼您必須在叢集中的每個代理程式配置此特性。

管理叢集中的代理程式

一旦您已配置代理程式叢集,您可能需要新增新的代理程式或重新啟動此叢集中已存在的代理程式,或者自叢集移除代理程式。

將代理程式新增至叢集

    若要新增新的代理程式至現有叢集

重新啟動叢集中的代理程式

如果叢集中的代理程式已毀損或因某種原因而關閉,那麼您必須將它重新啟動為叢集的一員。

    若要重新啟動已為現有叢集一員的代理程式

從叢集中移除代理程式

    若要從現有叢集移除代理程式

管理主代理程式的配置變更記錄

每個叢集可以具有一個主代理程式,以記錄此叢集之永久性狀態的所有變更。狀態包括長期訂閱和管理員建立之實體目標的資訊。所有代理程式在啟動期間會參考主代理程式 (或參考其配置變更記錄),以使有關這些永久性物件的資訊同步。因此,主代理程式發生故障可能會導致無法同步化。所以,如果主代理程式發生故障,您則法建立或刪除實體目標或長期訂閱。

因為它包含了重要資訊,所以定期備份主代理程式的配置變更記錄,以及在發生故障的情況下復原主代理程式是非常重要的。

以下各節說明如何備份和復原配置變更記錄。

備份配置變更記錄

    若要備份配置變更記錄

使用 imqbrokerd 指令的 -backup 選項。例如,

imqbrokerd -backup mybackuplog

適時地進行備份很重要。復原很舊的備份可能會導致資訊遺失:任何從上次備份後實體目標或長期訂閱中的變更皆會遺失。

復原配置變更記錄

    在發生故障的情況下復原主代理程式
  1. 關閉叢集中的所有代理程式。
  2. 使用以下指令復原主代理程式的配置變更記錄:
  3. imqbrokerd -restore mybackuplog

  4. 如果您為主代理程式指定了新的名稱或連接埠號,您必須更新叢集配置檔案,以指定此主代理程式是此叢集的一部分並指定其新的名稱 (使用特性 imq.cluster.masterbroker)。
  5. 重新啟動所有代理程式。

復原代理程式必將導致某些舊資料重新載入代理程式的配置變更記錄;但是,經常定期備份 (如上節所述) 應可儘量避免此問題。

由於主代理程式記錄永久性物件變更的整個歷程,因此其資料庫可能會在一段時期內迅速增長。備份與復原作業可以有效地壓縮和最佳化此資料庫。


記錄

本節描述代理程式的預設記錄配置,並介紹如何變更此配置,以便將日誌資訊重新導向至替代輸出通道並變更日誌檔自動重建條件。如需記錄的介紹,請參閱「記錄程式」。如需使用記錄以記錄代理程式度量的資訊,請參閱「監視工具」

預設記錄配置

啟動代理程式時,會自動配置為將日誌輸出儲存到一組自動重建的日誌檔中,這些日誌檔位於以代理程式實例名稱 (instanceName) 作為辨別的目錄中,且代理程式實例與日誌檔相互關聯 (請參閱附錄 A「Message Queue 資料的位置」):

.../instances/instanceName/log/

日誌檔為簡單的文字檔案。它們命名如下,從最舊的到最新的:

log.txt
log_1.txt
log_2.txt
...
log_9.txt

依預設,日誌檔每週自動重建一次;系統保留九個備份檔案。

代理程式支援三種日誌種類:ERRORWARNINGINFO (請參閱表 2-7)。配置記錄級別可收集此級別以上 (含此級別) 的訊息。預設日誌級別為 INFO。這表示依預設記錄了所有 ERRORWARNINGINFO 的訊息。

日誌訊息格式

記錄的訊息包含時間標記 (若要變更時區時間標記,請參閱表 2-9)、訊息程式碼和訊息本身。資訊容量因您所配置的日誌級別而有所不同。以下為 INFO 訊息的範例。

[13/Sep/2000:16:13:36 PDT] B1004 Starting the broker service using tcp [ 25374,100] with min threads 50 and max threads of 500

變更記錄程式配置

表 2-9 中描述了所有記錄程式特性。

    變更代理程式的記錄程式配置
  1. 配置日誌級別。
  2. 為一個或多個記錄種類配置輸出通道 (檔案、主控台或二者)。
  3. 如果您將輸出記錄至檔案,請為此檔案配置自動重建條件。

您可以透過配置記錄程式特性完成這些步驟。您可以用以下兩種方法之一執行此作業:

在指令行上傳送的選項置換在代理程式實例配置檔案中指定的特性。表 5-4 列出了影響記錄的 imqbrokerd 選項。

表 5-4 imqbrokerd 記錄程式選項和對應的特性 

imqbrokerd 選項

說明

-metrics interval

指定寫入記錄程式的度量資訊的間隔時間 (以秒為單位)。

-loglevel level

將日誌級別配置為以下之一:ERRORWARNINGINFO

-silent

關閉對主控台的記錄。

-tty

將所有訊息傳送至主控台。依預設,僅顯示 WARNINGERROR 級別的訊息。

以下各節描述如何變更預設配置以便執行以下作業:

變更輸出通道

依預設,錯誤和警告訊息既可在終端機上顯示,也可記錄至日誌檔。(在 Solaris 上,錯誤訊息還可寫入至系統的 syslog (系統日誌) 常駐程式。)

您可以用以下方法變更日誌訊息的輸出通道:

變更記錄檔自動重建條件

有兩個條件用於自動重建日誌檔:時間和容量。預設為使用時間條件,每七天自動重建一次檔案。

如果您同時配置了與時間相關的和與容量相關的特性,則先達到的限制將啟動自動重建。如上所述,代理程式最多可保留九個自動重建檔案。



上一章      目錄      索引      下一章     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.