2017-09-21 4 views
0

Je veux savoir comment fonctionne jgroups en interne.Ainsi, j'ai fait deux cluster en suivant http://jgroups.org/tutorial/index.htmt site Web .cluster formé avec succès, mais je ne peux pas enregistrer le protocole FD garder le message vivant, le partage un message vers un autre noeud etcjgroups demo projet de journalisation ne fonctionne pas

I utilisé commande java suivante pour la formation d'amas

java -cp ":. log4j.jar: jgroups.jar:.:" -Djgroups.bind_addr = 127.0.0.1 -Djava.net .preferIPv4Stack = true -Djgroups.use.jdk_logger = true org.jgroups.demos.Draw -props tcp1.xml

java -cp ".: log4j.jar: jgro ups.jar:.: » -Djgroups.bind_addr = 127.0.0.1 -Djava.net.preferIPv4Stack = true -Djgroups.use.jdk_logger = true org.jgroups.demos.Draw -props tcp2.xml

log4j.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<!-- 
    For more configuration infromation and examples see the Apache Log4j website: http://logging.apache.org/log4j/ 
--> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 

    <appender name="ROLL" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="Threshold" value="ALL"/> 
     <param name="Target" value="System.out"/> 
    <param name="Append" value="true"/> 
    <param name="ImmediateFlush" value="true"/> 
    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/> 
    <param name="File" value="JgroupLogs/jgroup.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <!-- The default pattern: Date Priority [Category] Message\n --> 
      <param name="ConversionPattern" value="%d %-5p [%c{1}] (%t) %m%n"/> 
     </layout> 
    </appender> 


    <!-- ================ --> 
    <!-- Limit categories --> 
    <!-- ================ --> 


    <category name="org.jgroups"> 
     <priority value="ALL"/> 
    </category> 

    <!-- ======================= --> 
    <!-- Setup the Root category --> 
    <!-- ======================= --> 

    <root> 
     <priority value="ALL"/> 
     <appender-ref ref="ROLL"/> 
    </root> 

</log4j:configuration> 

tcp.xml

<!-- 
    TCP based stack, with flow control and message bundling. This is usually used when IP 
    multicasting cannot be used in a network, e.g. because it is disabled (routers discard multicast). 
    Note that TCP.bind_addr and TCPPING.initial_hosts should be set, possibly via system properties, e.g. 
    -Djgroups.bind_addr=192.168.5.2 and -Djgroups.tcpping.initial_hosts=192.168.5.2[7800] 
    author: Bela Ban 
--> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="urn:org:jgroups" 
     xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups.xsd"> 
    <TCP bind_port="7800" 
     recv_buf_size="${tcp.recv_buf_size:130k}" 
     send_buf_size="${tcp.send_buf_size:130k}" 
     max_bundle_size="64K" 
     sock_conn_timeout="300" 

     thread_pool.min_threads="0" 
     thread_pool.max_threads="20" 
     thread_pool.keep_alive_time="30000"/> 

    <TCPPING async_discovery="true" 
      initial_hosts="${jgroups.tcpping.initial_hosts:localhost[7800],localhost[7801]}" 
      port_range="2"/> 
    <MERGE3 min_interval="10000" 
      max_interval="30000"/> 
    <FD_SOCK/> 
    <FD timeout="3000" max_tries="3" /> 
    <VERIFY_SUSPECT timeout="1500" /> 
    <BARRIER /> 
    <pbcast.NAKACK2 use_mcast_xmit="false" 
        discard_delivered_msgs="true"/> 
    <UNICAST3 /> 
    <pbcast.STABLE desired_avg_gossip="50000" 
        max_bytes="4M"/> 
    <pbcast.GMS print_local_addr="true" join_timeout="2000" 
       view_bundling="true"/> 
    <MFC max_credits="2M" 
     min_threshold="0.4"/> 
    <FRAG2 frag_size="60K" /> 
    <!--RSVP resend_interval="2000" timeout="10000"/--> 
    <pbcast.STATE_TRANSFER/> 
<TRACE/> 
</config> 

merci me aider !!!

Répondre

1

-Djgroups.use.jdk_logger=true signifie que vous n'utiliserez pas log4j2.

Utilisez la propriété système -Dlog4j.configurationFile=$HOME/log4j2.xml et le fichier log4j2.xml ci-dessous. Vous devez remplacer $HOME par votre homedir et noter que les fichiers JAR log4j2 doivent être sur le chemin de classe.

<?xml version="1.0" encoding="UTF-8"?> <configuration> <appenders> <Console name="STDOUT" target="SYSTEM_OUT" follow="true"> <!--PatternLayout pattern="%-7d{HH:mm:ss,SSS} [%p] %c: %m%n"/--> <PatternLayout pattern="%r [%p] %c{1}: %m%n"/> </Console> </appenders> <loggers> <root level="warn"> <appender-ref ref="STDOUT"/> </root> <logger name="org.jgroups" level="warn"/> <logger name="org.jgroups.protocols" level="TRACE"/> </loggers> </configuration>

+0

Après i enlevé -Djgroups.use.jdk_logger = true, il fonctionne très bien, mais j'utilise log4j.xml. Merci!!! –

+0

Heureux de voir cela résolu votre problème! Avec log4j, il suffit d'utiliser '-Dlog4j.configuration = fichier: $ HOME/log4j.properties' –

+0

merci !!! Je vais essayer ça. –