init
This commit is contained in:
34
java/org/apache/catalina/tribes/membership/Constants.java
Normal file
34
java/org/apache/catalina/tribes/membership/Constants.java
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.catalina.tribes.membership;
|
||||
|
||||
import org.apache.catalina.tribes.util.Arrays;
|
||||
|
||||
/**
|
||||
* Manifest constants for the <code>org.apache.catalina.tribes.membership</code>
|
||||
* package.
|
||||
*
|
||||
* @author Peter Rossbach
|
||||
*/
|
||||
public class Constants {
|
||||
|
||||
public static final String Package = "org.apache.catalina.tribes.membership";
|
||||
public static void main(String[] args) throws Exception {
|
||||
System.out.println(Arrays.toString("TRIBES-B".getBytes()));
|
||||
System.out.println(Arrays.toString("TRIBES-E".getBytes()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
McastService.domain=Unable to send domain update
|
||||
McastService.parseSoTimeout=Unable to parse SoTimeout: [{0}]
|
||||
McastService.parseTTL=Unable to parse TTL: [{0}]
|
||||
McastService.payload=Unable to send payload update
|
||||
McastService.stopFail=Unable to stop the mcast service, level: [{0}]
|
||||
|
||||
mcastService.exceed.maxPacketSize=Packet length[{0}] exceeds max packet size of [{1}] bytes.
|
||||
mcastService.missing.property=McastService:Required property [{0}] is missing.
|
||||
mcastService.noStart=Multicast send is not started or enabled.
|
||||
|
||||
mcastServiceImpl.bind=Attempting to bind the multicast socket to [{0}:{1}]
|
||||
mcastServiceImpl.bind.failed=Binding to multicast address, failed. Binding to port only.
|
||||
mcastServiceImpl.error.receiving=Error receiving mcast package. Sleeping 500ms
|
||||
mcastServiceImpl.invalid.startLevel=Invalid start level. Only acceptable levels are Channel.MBR_RX_SEQ and Channel.MBR_TX_SEQ
|
||||
mcastServiceImpl.invalid.stopLevel=Invalid stop level. Only acceptable levels are Channel.MBR_RX_SEQ and Channel.MBR_TX_SEQ
|
||||
mcastServiceImpl.memberDisappeared.failed=Unable to process member disappeared message.
|
||||
mcastServiceImpl.packet.tooLong=Multicast packet received was too long, dropping package:[{0}]
|
||||
mcastServiceImpl.receive.running=McastService.receive already running.
|
||||
mcastServiceImpl.recovery=Tribes membership, running recovery thread, multicasting is not functional.
|
||||
mcastServiceImpl.recovery.failed=Recovery attempt number [{0}] failed, trying again in [{1}] seconds
|
||||
mcastServiceImpl.recovery.startFailed=Recovery thread failed to start membership service.
|
||||
mcastServiceImpl.recovery.stopFailed=Recovery thread failed to stop membership service.
|
||||
mcastServiceImpl.recovery.successful=Membership recovery was successful.
|
||||
mcastServiceImpl.send.failed=Unable to send mcast message.
|
||||
mcastServiceImpl.send.running=McastService.send already running.
|
||||
mcastServiceImpl.setInterface=Setting multihome multicast interface to:[{0}]
|
||||
mcastServiceImpl.setSoTimeout=Setting cluster mcast soTimeout to [{0}]
|
||||
mcastServiceImpl.setTTL=Setting cluster mcast TTL to [{0}]
|
||||
mcastServiceImpl.unable.join=Unable to join multicast group, make sure your system has multicasting enabled.
|
||||
mcastServiceImpl.unableReceive.broadcastMessage=Unable to receive broadcast message.
|
||||
mcastServiceImpl.waitForMembers.done=Done sleeping, membership established, start level:[{0}]
|
||||
mcastServiceImpl.waitForMembers.start=Sleeping for [{0}] milliseconds to establish cluster membership, start level:[{1}]
|
||||
|
||||
memberImpl.invalid.package.begin=Invalid package, should start with:[{0}]
|
||||
memberImpl.invalid.package.end=Invalid package, should end with:[{0}]
|
||||
memberImpl.large.payload=Payload is too large for tribes to handle.
|
||||
memberImpl.notEnough.bytes=Not enough bytes in member package.
|
||||
memberImpl.package.small=Member package too small to validate.
|
||||
memberImpl.unableParse.hostname=Unable to parse hostname.
|
||||
|
||||
staticMember.invalid.uuidLength=UUID must be exactly 16 bytes, not:[{0}]
|
||||
@@ -0,0 +1,24 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
mcastServiceImpl.bind=Versuche Multicast Socket an [{0}:{1}] zu binden
|
||||
mcastServiceImpl.recovery.failed=Wiederherstellungsversuch Nummer [{0}] ist fehlgeschlagen, versuche es in [{1}] Sekunden erneut
|
||||
mcastServiceImpl.send.failed=Eine mcast-Nachricht kann nicht gesendet werden.
|
||||
mcastServiceImpl.send.running=McastService.send läuft bereits
|
||||
mcastServiceImpl.setSoTimeout=Setze Cluster mcast soTimeout auf [{0}]
|
||||
mcastServiceImpl.setTTL=Setze Cluster mcast TTL auf [{0}]
|
||||
mcastServiceImpl.unableReceive.broadcastMessage=Konnte Broadcast-Nachricht nicht empfangen.
|
||||
|
||||
memberImpl.notEnough.bytes=Nicht genug bytes im Mitgliederpaket
|
||||
@@ -0,0 +1,24 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
mcastServiceImpl.bind=Tratando de atar el socket multicast a [{0}:{1}]\n
|
||||
mcastServiceImpl.recovery=Membresía Tribes ejecutando hilo de recuperación, multicasting no esta operativo.
|
||||
mcastServiceImpl.send.running=McastService.send aún esta corriendo.
|
||||
mcastServiceImpl.setInterface=Fijando interfaz multicase multihme a:[{0}]\n
|
||||
mcastServiceImpl.setSoTimeout=Fijando cluster mcast para tiempo de espera gotado en [{0}]
|
||||
mcastServiceImpl.setTTL=Fijando cluster cluster mcast TTL a [{0}]\n
|
||||
mcastServiceImpl.unableReceive.broadcastMessage=Incapaz de recibir el mensaje de broadcast
|
||||
|
||||
memberImpl.notEnough.bytes=No hay suficientes bytes en el paquete miembro
|
||||
@@ -0,0 +1,56 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
McastService.domain=Impossible d'envoyer la mise à jour du domaine
|
||||
McastService.parseSoTimeout=Impossible de lire SoTimeout: [{0}]
|
||||
McastService.parseTTL=Impossible d''analyser le TTL: [{0}]
|
||||
McastService.payload=Impossible d'envoyer les données de mise à jour
|
||||
McastService.stopFail=Impossible d''arrêter le service mcast, niveau [{0}]
|
||||
|
||||
mcastService.exceed.maxPacketSize=La taille du paquet [{0}] excède la taille maximale qui est de [{1}] octets
|
||||
mcastService.missing.property=McastService:La propriété obligatoire [{0}] manque.
|
||||
mcastService.noStart=L'envoi multicast n'est pas démarré ou activé
|
||||
|
||||
mcastServiceImpl.bind=Tentive d'associer le socket multicast à [{0}:{1}]
|
||||
mcastServiceImpl.bind.failed=Echec de l'association à l’adresse multicast, association uniquement sur le port
|
||||
mcastServiceImpl.error.receiving=Erreur en recevant un paquet multicast, attente de 500ms
|
||||
mcastServiceImpl.invalid.startLevel=Niveau de départ invalide. Les seuls niveaux acceptables sont Channel.MBR_RX_SEQ et Channel.MBR_TX_SEQ
|
||||
mcastServiceImpl.invalid.stopLevel=Niveau de stop invalide, les seuls niveaux valides sont Channel.MBR_RX_SEQ et Channel.MBR_TX_SEQ
|
||||
mcastServiceImpl.memberDisappeared.failed=Impossible de traiter le message indiquant un membre disparu
|
||||
mcastServiceImpl.packet.tooLong=Le paquet multicast reçu est trop long, il est abandonné: [{0}]
|
||||
mcastServiceImpl.receive.running=McastService.receive est déjà en cours d'exécution
|
||||
mcastServiceImpl.recovery=Le multicast est non fonctionnel, le registre de membres de Tribes exécute le processus de récupération
|
||||
mcastServiceImpl.recovery.failed=La tentative de récupération numéro [{0}] échouée, nouvel essai dans [{1}] secondes
|
||||
mcastServiceImpl.recovery.startFailed=Le thread de récupération n'a pas pu démarrer le registre de membres
|
||||
mcastServiceImpl.recovery.stopFailed=Le thread de récupération n'a pu arrêter le registre de membres
|
||||
mcastServiceImpl.recovery.successful=Succès de récupération du registre de membres
|
||||
mcastServiceImpl.send.failed=Impossible d'envoyer le message mcast.
|
||||
mcastServiceImpl.send.running=McastService.send est déjà en cours d'exécution.
|
||||
mcastServiceImpl.setInterface=Définition de l''interface multicast multi réseaux comme [{0}]
|
||||
mcastServiceImpl.setSoTimeout=Réglage du mcast soTimeout du cluster à [{0}]
|
||||
mcastServiceImpl.setTTL=Le multicast TTL du cluster est fixé à [{0}]
|
||||
mcastServiceImpl.unable.join=Incapable de rejoindre le le groupe de multidiffusion ("multicast"). Assurez-vous que la multidiffusion est activée sur votre système.
|
||||
mcastServiceImpl.unableReceive.broadcastMessage=N'a pas pu recevoir de message général (broadcast)
|
||||
mcastServiceImpl.waitForMembers.done=Fin de l''attente, le registre de membres est établi, démarrage de niveau: [{0}]
|
||||
mcastServiceImpl.waitForMembers.start=Attente de [{0}] millisecondes pour établir le registre de membres du cluster, démarrage au niveau [{1}]
|
||||
|
||||
memberImpl.invalid.package.begin=Le paquet est invalide, il devrait démarrer par [{0}]
|
||||
memberImpl.invalid.package.end=le paquet est invalide, il devrait se terminer par: [{0}]
|
||||
memberImpl.large.payload=Le contenu est trop gros pour être géré par Tribes
|
||||
memberImpl.notEnough.bytes=Pas assez d'octets dans le paquet membre
|
||||
memberImpl.package.small=Le paquet du membre est trop petit pour être validé
|
||||
memberImpl.unableParse.hostname=Incapable d'analyser le nom d'hôte (hostname)
|
||||
|
||||
staticMember.invalid.uuidLength=Un UUID doit faire exactement 16 octets et non [{0}]
|
||||
@@ -0,0 +1,56 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
McastService.domain=ドメイン更新の送信が出来ません。
|
||||
McastService.parseSoTimeout=SoTimeoutを解析できません:[{0}]
|
||||
McastService.parseTTL=TTL 値を解釈できません: [{0}]
|
||||
McastService.payload=Payload更新の送信が出来ません。
|
||||
McastService.stopFail=マルチキャストサービスを停止できません。レベル:[{0}]
|
||||
|
||||
mcastService.exceed.maxPacketSize=パケット長[{0}]は[{1}]バイトの最大パケットサイズを超えています。
|
||||
mcastService.missing.property=McastService: 必須プロパティ [{0}] がありません。
|
||||
mcastService.noStart=マルチキャスト送信が開始または有効になっていません。
|
||||
|
||||
mcastServiceImpl.bind=[{0}:{1}] にマルチキャストソケットを束縛します。
|
||||
mcastServiceImpl.bind.failed=マルチキャストアドレスへのバインドに失敗しました。 ポートのみにバインドします。
|
||||
mcastServiceImpl.error.receiving=マルチキャストパッケージを受信中にエラーが発生しました。 500msスリープします。
|
||||
mcastServiceImpl.invalid.startLevel=不正な開始レベルです。受け付けられるのは Channel.MBR_RX_SEQ と Channel.MBR_TX_SEQ です。
|
||||
mcastServiceImpl.invalid.stopLevel=無効な停止レベルです。 受け入れ可能なレベルはChannel.MBR_RX_SEQとChannel.MBR_TX_SEQのみです。
|
||||
mcastServiceImpl.memberDisappeared.failed=メンバー消失メッセージを処理できません。
|
||||
mcastServiceImpl.packet.tooLong=受信したマルチキャストパケットが大きすぎるためパッケージを破棄します。受信したパケットサイズは [{0}] です。
|
||||
mcastServiceImpl.receive.running=McastService.receive は既に実行中です。
|
||||
mcastServiceImpl.recovery=リカバリスレッドがメンバーシップを復旧するため、マルチキャストできなくなります。
|
||||
mcastServiceImpl.recovery.failed=リカバリの試み[{0}]が失敗しました。[{1}]秒後に再試行します。
|
||||
mcastServiceImpl.recovery.startFailed=リカバリースレッドはメンバーシップサービスを開始できません。
|
||||
mcastServiceImpl.recovery.stopFailed=リカバリースレッドはメンバーシップサービスを停止できません。
|
||||
mcastServiceImpl.recovery.successful=メンバーシップの回復に成功しました。
|
||||
mcastServiceImpl.send.failed=マルチキャストメッセージを送信出来ません。
|
||||
mcastServiceImpl.send.running=McastService.sendはすでに実行中です。
|
||||
mcastServiceImpl.setInterface=マルチホームマルチキャストインターフェイスを構成しました。 : [{0}]
|
||||
mcastServiceImpl.setSoTimeout=クラスタ マルチキャスト soTimeoutを[{0}]に設定します
|
||||
mcastServiceImpl.setTTL=クラスターのマルチキャスト TTL を [{0}] に設定しました。
|
||||
mcastServiceImpl.unable.join=マルチキャストグループに参加できません、システムでマルチキャストが有効になっていることを確認してください。
|
||||
mcastServiceImpl.unableReceive.broadcastMessage=ブロードキャストメッセージを受信できません。
|
||||
mcastServiceImpl.waitForMembers.done=sleep完了、メンバーシップを確立し、開始レベル:[{0}]
|
||||
mcastServiceImpl.waitForMembers.start=クラスタメンバシップを確立するために[{0}]ミリ秒スリープ、開始レベル:[{1}]
|
||||
|
||||
memberImpl.invalid.package.begin=パッケージが不正です。[{0}] から開始しなければなりません。
|
||||
memberImpl.invalid.package.end=不正なパッケージです。[{0}] で終端しなければなりません。
|
||||
memberImpl.large.payload=ペイロードはtribes が処理するには大きすぎます。
|
||||
memberImpl.notEnough.bytes=メンバーパッケージのバイト長が不足しています。
|
||||
memberImpl.package.small=メンバーパッケージが小さすぎて検証できません。
|
||||
memberImpl.unableParse.hostname=ホスト名を解析できません。
|
||||
|
||||
staticMember.invalid.uuidLength=UUIDは正確に16バイトでなければなりません。[{0}]
|
||||
@@ -0,0 +1,56 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
McastService.domain=도메인 변경 메시지를 보낼 수 없습니다.
|
||||
McastService.parseSoTimeout=SoTimeout을 파싱할 수 없습니다: [{0}]
|
||||
McastService.parseTTL=TTL을 파싱할 수 없습니다: [{0}]
|
||||
McastService.payload=Payload 변경 메시지를 보낼 수 없습니다.
|
||||
McastService.stopFail=멀티캐스트 서비스를 중단시킬 수 없습니다. 레벨: [{0}]
|
||||
|
||||
mcastService.exceed.maxPacketSize=패킷 길이 [{0}]이(가), 최대 패킷 크기인 [{1}] 바이트를 초과합니다.
|
||||
mcastService.missing.property=McastService: 필수 프로퍼티 [{0}]이(가) 없습니다.
|
||||
mcastService.noStart=멀티캐스트 전송이 시작되지 않았거나 사용가능 상태가 아닙니다.
|
||||
|
||||
mcastServiceImpl.bind=멀티캐스트 소켓을 [{0}:{1}](으)로 바인딩하려 시도 중
|
||||
mcastServiceImpl.bind.failed=멀티캐스트 주소로 바인딩하지 못했습니다. 포트로만 바인딩합니다.
|
||||
mcastServiceImpl.error.receiving=멀티캐스트 패키지를 받는 중 오류 발생. 500 밀리초 동안 잠에 들겠습니다.
|
||||
mcastServiceImpl.invalid.startLevel=유효하지 않은 시작 레벨. 허용되는 레벨들은 Channel.MBR_RX_SEQ와 Channel.MBR_TX_SEQ 뿐입니다.
|
||||
mcastServiceImpl.invalid.stopLevel=유효하지 않은 중지 레벨. 허용 레벨들은 Channel.MBR_RX_SEQ와 Channel.MBR_TX_SEQ입니다.
|
||||
mcastServiceImpl.memberDisappeared.failed=멤버 사라짐 메시지를 처리할 수 없습니다.
|
||||
mcastServiceImpl.packet.tooLong=수신된 멀티캐스트 패킷이 너무 깁니다. 패키지를 무시합니다: [{0}]
|
||||
mcastServiceImpl.receive.running=McastService.receive가 이미 실행 중입니다.
|
||||
mcastServiceImpl.recovery=Tribes 멤버십을 복구하려고, 별도의 쓰레드에서 멀티캐스팅을 시도하고 있습니다.
|
||||
mcastServiceImpl.recovery.failed=복구 시도가 [{0}]회 실패했습니다. [{1}] 초 후에 다시 시도 하겠습니다.
|
||||
mcastServiceImpl.recovery.startFailed=복구 쓰레드가 멤버십 서비스를 시작하지 못했습니다.
|
||||
mcastServiceImpl.recovery.stopFailed=복구 쓰레드가 멤버십 서비스를 중지시키지 못했습니다.
|
||||
mcastServiceImpl.recovery.successful=멤버십 복구가 성공적이었습니다.
|
||||
mcastServiceImpl.send.failed=멀티캐스트 메시지를 보낼 수 없습니다.
|
||||
mcastServiceImpl.send.running=McastService.send가 이미 실행 중입니다.
|
||||
mcastServiceImpl.setInterface=멀티홈 멀티캐스트 인터페이스를 [{0}]에 설정합니다.
|
||||
mcastServiceImpl.setSoTimeout=클러스터 멀티캐스트의 soTimeout을 [{0}](으)로 설정합니다.
|
||||
mcastServiceImpl.setTTL=클러스터 멀티캐스트 TTL을 [{0}](으)로 설정합니다.
|
||||
mcastServiceImpl.unable.join=멀티캐스트 그룹에 참가할 수 없습니다. 귀하의 시스템이 멀티캐스팅을 사용 가능하도록 설정되었는지 확인하십시오.
|
||||
mcastServiceImpl.unableReceive.broadcastMessage=브로드캐스트 메시지를 수신할 수 없습니다.
|
||||
mcastServiceImpl.waitForMembers.done=잠들기가 끝났습니다. 멤버십이 확립되었고, 시작 레벨은 [{0}]입니다.
|
||||
mcastServiceImpl.waitForMembers.start=클러스터 멤버십을 확립하기 위해, [{0}] 밀리초 동안 잠에 듭니다. 시작 레벨: [{1}]
|
||||
|
||||
memberImpl.invalid.package.begin=유효하지 않은 패키지입니다. [{0}](으)로 시작해야 합니다.
|
||||
memberImpl.invalid.package.end=유효하지 않은 패키지. [{0}](으)로 끝나야 합니다.
|
||||
memberImpl.large.payload=Payload가 너무 커서 tribe들이 처리할 수 없습니다.
|
||||
memberImpl.notEnough.bytes=멤버 데이터 바이트 배열에 충분한 데이터가 존재하지 않습니다.
|
||||
memberImpl.package.small=멤버 패키지가 너무 작아서, 유효한지 확인할 수 없습니다.
|
||||
memberImpl.unableParse.hostname=호스트 이름을 파싱할 수 없습니다.
|
||||
|
||||
staticMember.invalid.uuidLength=UUID는 정확히 16 바이트여야만 합니다. [{0}]이어서는 안됩니다.
|
||||
@@ -0,0 +1,41 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
McastService.parseSoTimeout=无法解析SoTimeout:[{0}]
|
||||
McastService.payload=无法发送负载更新
|
||||
|
||||
mcastService.missing.property=McastService:缺少必需属性 [{0}]。
|
||||
|
||||
mcastServiceImpl.bind=尝试将多播套接字绑定到 [{0}:{1}]
|
||||
mcastServiceImpl.bind.failed=绑定到多播地址失败。仅绑定到端口。
|
||||
mcastServiceImpl.error.receiving=接收mcast包时出错。睡眠500毫秒
|
||||
mcastServiceImpl.invalid.startLevel=无效的启动级别。只接受以下级别:Channel.MBR_RX_SEQ或 Channel.MBR_TX_SEQ
|
||||
mcastServiceImpl.invalid.stopLevel=无效的停止级别。只有Channel.MBR_RX_SEQ和Channel.MBR_TX_SEQ是可接受的级别
|
||||
mcastServiceImpl.recovery=家族成员,运行恢复线程,广播不是功能。
|
||||
mcastServiceImpl.recovery.stopFailed=恢复线程未能停止成员服务。
|
||||
mcastServiceImpl.recovery.successful=成员身份恢复成功。
|
||||
mcastServiceImpl.send.failed=无法发送多播信息
|
||||
mcastServiceImpl.send.running=McastService.send已经运行
|
||||
mcastServiceImpl.setInterface=设置多宿主多播接口为:[{0}]
|
||||
mcastServiceImpl.setSoTimeout=设置集群多播超时时间:[{0}]
|
||||
mcastServiceImpl.setTTL=设置集群多播TTL:[{0}]
|
||||
mcastServiceImpl.unable.join=无法加入多播组,请确保你的系统已启用多播。
|
||||
mcastServiceImpl.unableReceive.broadcastMessage=无法接收广播消息。
|
||||
|
||||
memberImpl.large.payload=负载太大以至于难以处理
|
||||
memberImpl.notEnough.bytes=成员包中的字节不够。
|
||||
memberImpl.package.small=成员包太小以至于不能校验。
|
||||
|
||||
staticMember.invalid.uuidLength=UUID必须正好是16个字节,而不是:[{0}]
|
||||
653
java/org/apache/catalina/tribes/membership/McastService.java
Normal file
653
java/org/apache/catalina/tribes/membership/McastService.java
Normal file
File diff suppressed because it is too large
Load Diff
695
java/org/apache/catalina/tribes/membership/McastServiceImpl.java
Normal file
695
java/org/apache/catalina/tribes/membership/McastServiceImpl.java
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.catalina.tribes.membership;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.catalina.tribes.Member;
|
||||
|
||||
public interface McastServiceMBean {
|
||||
|
||||
// Attributes
|
||||
public String getAddress();
|
||||
|
||||
public int getPort();
|
||||
|
||||
public long getFrequency();
|
||||
|
||||
public long getDropTime();
|
||||
|
||||
public String getBind();
|
||||
|
||||
public int getTtl();
|
||||
|
||||
public byte[] getDomain();
|
||||
|
||||
public int getSoTimeout();
|
||||
|
||||
public boolean getRecoveryEnabled();
|
||||
|
||||
public int getRecoveryCounter();
|
||||
|
||||
public long getRecoverySleepTime();
|
||||
|
||||
public boolean getLocalLoopbackDisabled();
|
||||
|
||||
public String getLocalMemberName();
|
||||
|
||||
// Operation
|
||||
public Properties getProperties();
|
||||
|
||||
public boolean hasMembers();
|
||||
|
||||
public String[] getMembersByName();
|
||||
|
||||
public Member findMemberByName(String name);
|
||||
}
|
||||
687
java/org/apache/catalina/tribes/membership/MemberImpl.java
Normal file
687
java/org/apache/catalina/tribes/membership/MemberImpl.java
Normal file
File diff suppressed because it is too large
Load Diff
350
java/org/apache/catalina/tribes/membership/Membership.java
Normal file
350
java/org/apache/catalina/tribes/membership/Membership.java
Normal file
@@ -0,0 +1,350 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.catalina.tribes.membership;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.apache.catalina.tribes.Member;
|
||||
|
||||
/**
|
||||
* A <b>membership</b> implementation using simple multicast.
|
||||
* This is the representation of a multicast membership.
|
||||
* This class is responsible for maintaining a list of active cluster nodes in the cluster.
|
||||
* If a node fails to send out a heartbeat, the node will be dismissed.
|
||||
*
|
||||
* @author Peter Rossbach
|
||||
*/
|
||||
public class Membership implements Cloneable {
|
||||
|
||||
protected static final Member[] EMPTY_MEMBERS = new Member[0];
|
||||
|
||||
// Non-final to support clone()
|
||||
private Object membersLock = new Object();
|
||||
|
||||
/**
|
||||
* The local member.
|
||||
*/
|
||||
protected final Member local;
|
||||
|
||||
/**
|
||||
* A map of all the members in the cluster.
|
||||
*/
|
||||
protected HashMap<Member, MbrEntry> map = new HashMap<>(); // Guarded by membersLock
|
||||
|
||||
/**
|
||||
* A list of all the members in the cluster.
|
||||
*/
|
||||
protected volatile Member[] members = EMPTY_MEMBERS; // Guarded by membersLock
|
||||
|
||||
/**
|
||||
* Comparator for sorting members by alive time.
|
||||
*/
|
||||
protected final Comparator<Member> memberComparator;
|
||||
|
||||
@Override
|
||||
public Membership clone() {
|
||||
synchronized (membersLock) {
|
||||
Membership clone;
|
||||
try {
|
||||
clone = (Membership) super.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
// Can't happen
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
// Standard clone() method will copy the map object. Replace that
|
||||
// with a new map but with the same contents.
|
||||
@SuppressWarnings("unchecked")
|
||||
final HashMap<Member, MbrEntry> tmpclone = (HashMap<Member, MbrEntry>) map.clone();
|
||||
clone.map = tmpclone;
|
||||
|
||||
// Standard clone() method will copy the array object. Replace that
|
||||
// with a new array but with the same contents.
|
||||
clone.members = members.clone();
|
||||
|
||||
// Standard clone() method will copy the lock object. Replace that
|
||||
// with a new object.
|
||||
clone.membersLock = new Object();
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new membership
|
||||
* @param local - has to be the name of the local member. Used to filter the local member from the cluster membership
|
||||
* @param includeLocal - TBA
|
||||
*/
|
||||
public Membership(Member local, boolean includeLocal) {
|
||||
this(local, new MemberComparator(), includeLocal);
|
||||
}
|
||||
|
||||
public Membership(Member local) {
|
||||
this(local, false);
|
||||
}
|
||||
|
||||
public Membership(Member local, Comparator<Member> comp) {
|
||||
this(local, comp, false);
|
||||
}
|
||||
|
||||
public Membership(Member local, Comparator<Member> comp, boolean includeLocal) {
|
||||
this.local = local;
|
||||
this.memberComparator = comp;
|
||||
if (includeLocal) {
|
||||
addMember(local);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the membership and start over fresh. i.e., delete all the members
|
||||
* and wait for them to ping again and join this membership.
|
||||
*/
|
||||
public void reset() {
|
||||
synchronized (membersLock) {
|
||||
map.clear();
|
||||
members = EMPTY_MEMBERS ;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify the membership that this member has announced itself.
|
||||
*
|
||||
* @param member - the member that just pinged us
|
||||
* @return - true if this member is new to the cluster, false otherwise.<br>
|
||||
* - false if this member is the local member or updated.
|
||||
*/
|
||||
public boolean memberAlive(Member member) {
|
||||
// Ignore ourselves
|
||||
if (member.equals(local)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean result = false;
|
||||
synchronized (membersLock) {
|
||||
MbrEntry entry = map.get(member);
|
||||
if (entry == null) {
|
||||
entry = addMember(member);
|
||||
result = true;
|
||||
} else {
|
||||
// Update the member alive time
|
||||
Member updateMember = entry.getMember();
|
||||
if (updateMember.getMemberAliveTime() != member.getMemberAliveTime()) {
|
||||
// Update fields that can change
|
||||
updateMember.setMemberAliveTime(member.getMemberAliveTime());
|
||||
updateMember.setPayload(member.getPayload());
|
||||
updateMember.setCommand(member.getCommand());
|
||||
// Re-order. Can't sort in place since a call to
|
||||
// getMembers() may then receive an intermediate result.
|
||||
Member[] newMembers = members.clone();
|
||||
Arrays.sort(newMembers, memberComparator);
|
||||
members = newMembers;
|
||||
}
|
||||
}
|
||||
entry.accessed();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a member to this component and sort array with memberComparator
|
||||
*
|
||||
* @param member The member to add
|
||||
*
|
||||
* @return The member entry created for this new member.
|
||||
*/
|
||||
public MbrEntry addMember(Member member) {
|
||||
MbrEntry entry = new MbrEntry(member);
|
||||
synchronized (membersLock) {
|
||||
if (!map.containsKey(member) ) {
|
||||
map.put(member, entry);
|
||||
Member results[] = new Member[members.length + 1];
|
||||
System.arraycopy(members, 0, results, 0, members.length);
|
||||
results[members.length] = member;
|
||||
Arrays.sort(results, memberComparator);
|
||||
members = results;
|
||||
}
|
||||
}
|
||||
return entry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a member from this component.
|
||||
*
|
||||
* @param member The member to remove
|
||||
*/
|
||||
public void removeMember(Member member) {
|
||||
synchronized (membersLock) {
|
||||
map.remove(member);
|
||||
int n = -1;
|
||||
for (int i = 0; i < members.length; i++) {
|
||||
if (members[i] == member || members[i].equals(member)) {
|
||||
n = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (n < 0) return;
|
||||
Member results[] = new Member[members.length - 1];
|
||||
int j = 0;
|
||||
for (int i = 0; i < members.length; i++) {
|
||||
if (i != n) {
|
||||
results[j++] = members[i];
|
||||
}
|
||||
}
|
||||
members = results;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs a refresh cycle and returns a list of members that has expired.
|
||||
* This also removes the members from the membership, in such a way that
|
||||
* getMembers() = getMembers() - expire()
|
||||
* @param maxtime - the max time a member can remain unannounced before it is considered dead.
|
||||
* @return the list of expired members
|
||||
*/
|
||||
public Member[] expire(long maxtime) {
|
||||
synchronized (membersLock) {
|
||||
if (!hasMembers()) {
|
||||
return EMPTY_MEMBERS;
|
||||
}
|
||||
|
||||
ArrayList<Member> list = null;
|
||||
for (MbrEntry entry : map.values()) {
|
||||
if (entry.hasExpired(maxtime)) {
|
||||
if (list == null) {
|
||||
// Only need a list when members are expired (smaller gc)
|
||||
list = new java.util.ArrayList<>();
|
||||
}
|
||||
list.add(entry.getMember());
|
||||
}
|
||||
}
|
||||
|
||||
if (list != null) {
|
||||
Member[] result = new Member[list.size()];
|
||||
list.toArray(result);
|
||||
for (int j=0; j<result.length; j++) {
|
||||
removeMember(result[j]);
|
||||
}
|
||||
return result;
|
||||
} else {
|
||||
return EMPTY_MEMBERS ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returning that service has members or not.
|
||||
*
|
||||
* @return <code>true</code> if there are one or more members, otherwise
|
||||
* <code>false</code>
|
||||
*/
|
||||
public boolean hasMembers() {
|
||||
return members.length > 0;
|
||||
}
|
||||
|
||||
|
||||
public Member getMember(Member mbr) {
|
||||
Member[] members = this.members;
|
||||
if (members.length > 0) {
|
||||
for (int i = 0; i < members.length; i++) {
|
||||
if (members[i].equals(mbr)) {
|
||||
return members[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean contains(Member mbr) {
|
||||
return getMember(mbr) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returning a list of all the members in the membership.
|
||||
* We not need a copy: add and remove generate new arrays.
|
||||
*
|
||||
* @return An array of the current members
|
||||
*/
|
||||
public Member[] getMembers() {
|
||||
return members;
|
||||
}
|
||||
|
||||
|
||||
// --------------------------------------------- Inner Class
|
||||
|
||||
private static class MemberComparator implements Comparator<Member>, Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public int compare(Member m1, Member m2) {
|
||||
// Longer alive time, means sort first
|
||||
long result = m2.getMemberAliveTime() - m1.getMemberAliveTime();
|
||||
if (result < 0) {
|
||||
return -1;
|
||||
} else if (result == 0) {
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Inner class that represents a member entry
|
||||
*/
|
||||
protected static class MbrEntry {
|
||||
|
||||
protected final Member mbr;
|
||||
protected long lastHeardFrom;
|
||||
|
||||
public MbrEntry(Member mbr) {
|
||||
this.mbr = mbr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicate that this member has been accessed.
|
||||
*/
|
||||
public void accessed(){
|
||||
lastHeardFrom = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtain the member associated with this entry.
|
||||
*
|
||||
* @return The member for this entry.
|
||||
*/
|
||||
public Member getMember() {
|
||||
return mbr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this member has expired.
|
||||
*
|
||||
* @param maxtime The time threshold
|
||||
*
|
||||
* @return <code>true</code> if the member has expired, otherwise
|
||||
* <code>false</code>
|
||||
*/
|
||||
public boolean hasExpired(long maxtime) {
|
||||
long delta = System.currentTimeMillis() - lastHeardFrom;
|
||||
return delta > maxtime;
|
||||
}
|
||||
}
|
||||
}
|
||||
67
java/org/apache/catalina/tribes/membership/StaticMember.java
Normal file
67
java/org/apache/catalina/tribes/membership/StaticMember.java
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.catalina.tribes.membership;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.catalina.tribes.util.Arrays;
|
||||
|
||||
public class StaticMember extends MemberImpl {
|
||||
public StaticMember() {
|
||||
super();
|
||||
}
|
||||
|
||||
public StaticMember(String host, int port, long aliveTime) throws IOException {
|
||||
super(host, port, aliveTime);
|
||||
}
|
||||
|
||||
public StaticMember(String host, int port, long aliveTime, byte[] payload) throws IOException {
|
||||
super(host, port, aliveTime, payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param host String, either in byte array string format, like {214,116,1,3}
|
||||
* or as a regular hostname, 127.0.0.1 or tomcat01.mydomain.com
|
||||
*/
|
||||
public void setHost(String host) {
|
||||
if ( host == null ) return;
|
||||
if ( host.startsWith("{") ) setHost(Arrays.fromString(host));
|
||||
else try { setHostname(host); }catch (IOException x) { throw new RuntimeException(x);}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param domain String, either in byte array string format, like {214,116,1,3}
|
||||
* or as a regular string value like 'mydomain'. The latter will be converted using ISO-8859-1 encoding
|
||||
*/
|
||||
public void setDomain(String domain) {
|
||||
if ( domain == null ) return;
|
||||
if ( domain.startsWith("{") ) setDomain(Arrays.fromString(domain));
|
||||
else setDomain(Arrays.convert(domain));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param id String, must be in byte array string format, like {214,116,1,3} and exactly 16 bytes long
|
||||
*/
|
||||
public void setUniqueId(String id) {
|
||||
byte[] uuid = Arrays.fromString(id);
|
||||
if ( uuid==null || uuid.length != 16 ) throw new RuntimeException(sm.getString("staticMember.invalid.uuidLength", id));
|
||||
setUniqueId(uuid);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!DOCTYPE mbeans-descriptors PUBLIC
|
||||
"-//Apache Software Foundation//DTD Model MBeans Configuration File"
|
||||
"http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">
|
||||
<mbeans-descriptors>
|
||||
<mbean
|
||||
name="McastService"
|
||||
description="Cluster Membership service implementation"
|
||||
domain="Catalina"
|
||||
group="Cluster"
|
||||
type="org.apache.catalina.tribes.membership.McastService">
|
||||
<attribute
|
||||
name="address"
|
||||
description="Multicast IP Address"
|
||||
type="java.lang.String"/>
|
||||
<attribute
|
||||
name="bind"
|
||||
description="Multicast IP Interface address (default auto)"
|
||||
type="java.lang.String"/>
|
||||
<attribute
|
||||
name="dropTime"
|
||||
description="Timeout from frequency ping after member disappear notify"
|
||||
type="long"/>
|
||||
<attribute
|
||||
name="frequency"
|
||||
description="Ping Frequency at msec"
|
||||
type="long"/>
|
||||
<attribute
|
||||
name="localLoopbackDisabled"
|
||||
description="Is local loopback disabled?"
|
||||
is="true"
|
||||
type="boolean"/>
|
||||
<attribute
|
||||
name="localMemberName"
|
||||
description="Complete local receiver information"
|
||||
type="java.lang.String"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="membersByName"
|
||||
description="Complete remote sender information"
|
||||
type="[Ljava.lang.String;"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="port"
|
||||
description="Multicast UDP Port"
|
||||
type="int"/>
|
||||
<attribute
|
||||
name="recoveryCounter"
|
||||
description="Counter after membership failure socket restarted"
|
||||
type="int"/>
|
||||
<attribute
|
||||
name="recoveryEnabled"
|
||||
description="Membership recovery enabled"
|
||||
is="true"
|
||||
type="boolean"/>
|
||||
<attribute
|
||||
name="recoverySleepTime"
|
||||
description="Sleep time between next socket recovery (5000 msec)"
|
||||
type="long"/>
|
||||
<attribute
|
||||
name="soTimeout"
|
||||
description="Multicast Socket Timeout"
|
||||
type="int"/>
|
||||
<attribute
|
||||
name="Ttl"
|
||||
description=""
|
||||
type="int"/>
|
||||
<operation
|
||||
name="start"
|
||||
description="Start the cluster membership"
|
||||
impact="ACTION"
|
||||
returnType="void"/>
|
||||
<operation
|
||||
name="stop"
|
||||
description="Stop the cluster membership"
|
||||
impact="ACTION"
|
||||
returnType="void"/>
|
||||
</mbean>
|
||||
<mbean
|
||||
name="MemberImpl"
|
||||
description="Cluster member"
|
||||
domain="Catalina"
|
||||
group="Cluster"
|
||||
type="org.apache.catalina.tribes.membership.MemberImpl">
|
||||
<attribute
|
||||
name="failing"
|
||||
description="Has a problem been observed with this member (failing is worse than suspect)"
|
||||
type="boolean"
|
||||
is="true"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="hostname"
|
||||
description="The name of the host where this member is located"
|
||||
type="String"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="memberAliveTime"
|
||||
description="The number of milliseconds since this member was created"
|
||||
type="long"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="msgCount"
|
||||
description="The number of messages sent by this member"
|
||||
type="int"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="name"
|
||||
description="The unique name of this member within the cluster"
|
||||
type="String"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="port"
|
||||
description="The tcp port the member is listening on"
|
||||
type="int"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="ready"
|
||||
description="Is this member ready to send messages"
|
||||
type="boolean"
|
||||
is="true"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="securePort"
|
||||
description="The tcp(SSL) port the member is listening on"
|
||||
type="int"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="serviceStartTime"
|
||||
description="The time the member was started"
|
||||
type="long"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="suspect"
|
||||
description="Has a potential problem been observed with this member (failing is worse than suspect)"
|
||||
type="boolean"
|
||||
is="true"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="udpPort"
|
||||
description="The upd port the member is listening on"
|
||||
type="int"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="local"
|
||||
description="The flag indicating that this member is a local member"
|
||||
type="boolean"
|
||||
is="true"
|
||||
writeable="false"/>
|
||||
</mbean>
|
||||
<mbean
|
||||
name="StaticMember"
|
||||
description="Cluster static member"
|
||||
domain="Catalina"
|
||||
group="Cluster"
|
||||
type="org.apache.catalina.tribes.membership.StaticMember">
|
||||
<attribute
|
||||
name="failing"
|
||||
description="Has a problem been observed with this member (failing is worse than suspect)"
|
||||
type="boolean"
|
||||
is="true"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="hostname"
|
||||
description="The name of the host where this member is located"
|
||||
type="String"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="memberAliveTime"
|
||||
description="The number of milliseconds since this member was created"
|
||||
type="long"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="msgCount"
|
||||
description="The number of messages sent by this member"
|
||||
type="int"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="name"
|
||||
description="The unique name of this member within the cluster"
|
||||
type="String"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="port"
|
||||
description="The tcp port the member is listening on"
|
||||
type="int"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="ready"
|
||||
description="Is this member ready to send messages"
|
||||
type="boolean"
|
||||
is="true"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="securePort"
|
||||
description="The tcp(SSL) port the member is listening on"
|
||||
type="int"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="serviceStartTime"
|
||||
description="The time the member was started"
|
||||
type="long"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="suspect"
|
||||
description="Has a potential problem been observed with this member (failing is worse than suspect)"
|
||||
type="boolean"
|
||||
is="true"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="udpPort"
|
||||
description="The upd port the member is listening on"
|
||||
type="int"
|
||||
writeable="false"/>
|
||||
<attribute
|
||||
name="local"
|
||||
description="The flag indicating that this member is a local member"
|
||||
type="boolean"
|
||||
is="true"
|
||||
writeable="false"/>
|
||||
</mbean>
|
||||
</mbeans-descriptors>
|
||||
Reference in New Issue
Block a user