Clustered broker in Linux environment - Forum - Technology Partner - Progress Community

Clustered broker in Linux environment

 Forum

Clustered broker in Linux environment

  • Hi,

    I created a clustered broker in Window enviroment and it works fine but when I did the same thing in my Ubuntu environment in a VM. The clustered broker didn't work anymore. Does anybody know why?

    Thanks,

    Here is the log from the two containers:

    ========== Container 2 & Broker2 ==========

    ID=Broker2 (info) TCP_ACCEPTOR: no longer accepting connections on tcp://nguyes7-dev1:4506

    ID=Broker2 (info) Closing all client connections

    ID=Broker2 (info) Waiting for the threads to shut down

    ID=Broker2 (info) SonicMQ Broker stopped

    (info) Unloaded ID=Broker2

    (info) Unloaded ID=AGENT

    (info) Restarting...

    (config)

    Sonic Management

    Release 7.6.0 Build Number 351

    Copyright (c) 1999-2008 Progress Software Corporation.

    All rights reserved.

    Local host: nguyes7-dev1 (Linux - 2.6.27-9-generic)

    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05)

    Sun Microsystems Inc. (home /usr/lib/jvm/jdk1.5.0_13/jre, version 1.5.0_13)

    Java HotSpot(TM) Server VM (build 1.5.0_13-b05, mixed mode)

    Configured Arguments : -Xms32m -Xmx256m

    Configured Properties:

    (info) "Domain1.container2" starting...

    (info) Management connection (re)established (Socket)

    (info) Loaded ID=AGENT

    (info) Loaded ID=Broker2

    (info) ...startup complete

    (info) Reload ID=Broker2 initiated...

    (info) Unloaded ID=Broker2

    (info) Loaded ID=Broker2

    (info) ...reload ID=Broker2 complete

    ID=Broker2 (config)

    SonicMQ Professional Developer Edition

    Release 7.6 Build Number 357 Protocol P30

    Copyright (c) 1999-2008 Progress Software Corporation.

    All Rights Reserved.

    Broker "Broker2". Routing Node "Cluster".

    There is no limit on the number of concurrent connections.

    Security is enabled. Interbroker is enabled.

    Dynamic Routing is enabled. HTTP Direct is enabled.

    ID=Broker2 (info) Registering node "sonic.http" of "$RNN.sonic$http.$HTTP.undefinedroutingurl.9999" for routing node reverse lookup

    ID=Broker2 (info) Configuring interbroker...

    ID=Broker2 (info) Starting recovery...

    ID=Broker2 (info) Recovery complete.

    ID=Broker2 (info) Restoring queues ...

    ID=Broker2 (info) Starting queue "SonicMQ.deadMessage" - Local Non-clustered Shared 1536 16384

    ID=Broker2 (info) Starting queue "SampleQ4" - Local Non-clustered Shared 1536 1000

    ID=Broker2 (info) Starting queue "SonicMQ.routingQueue" - Local Non-clustered Shared 1536 1024

    ID=Broker2 (info) Starting queue "SampleQ3" - Local Non-clustered Shared 1536 1000

    ID=Broker2 (info) Starting queue "SampleQ2" - Local Non-clustered Shared 1536 1000

    ID=Broker2 (info) Starting queue "SampleQ1" - Local Non-clustered Shared 1536 1000

    ID=Broker2 (info) Starting Interbroker...

    ID=Broker2 (info) Continuing Interbroker...

    ID=Broker2 (info) TCP_ACCEPTOR: accepting connections on tcp://nguyes7-dev1:4506

    ID=Broker2 (info) SonicMQ Broker started

    ========= Container 1 and Broker1 ============

    (config)

    Sonic Management

    Release 7.6.0 Build Number 351

    Copyright (c) 1999-2008 Progress Software Corporation.

    All rights reserved.

    Local host: nguyes7-dev1 (Linux - 2.6.27-9-generic)

    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05)

    Sun Microsystems Inc. (home /usr/lib/jvm/jdk1.5.0_13/jre, version 1.5.0_13)

    Java HotSpot(TM) Server VM (build 1.5.0_13-b05, mixed mode)

    Configured Arguments : -Xms32m -Xmx256m

    Configured Properties:

    (info) "Domain1.container1" starting...

    (info) Management connection (re)established (Socket)

    (info) Loaded ID=AGENT

    (info) Loaded ID=Broker1

    (info) ...startup complete

    (info) Reload ID=Broker1 initiated...

    (info) Unloaded ID=Broker1

    (info) Loaded ID=Broker1

    (info) ...reload ID=Broker1 complete

    ID=Broker1 (config)

    SonicMQ Professional Developer Edition

    Release 7.6 Build Number 357 Protocol P30

    Copyright (c) 1999-2008 Progress Software Corporation.

    All Rights Reserved.

    Broker "Broker1". Routing Node "Cluster".

    There is no limit on the number of concurrent connections.

    Security is enabled. Interbroker is enabled.

    Dynamic Routing is enabled. HTTP Direct is enabled.

    ID=Broker1 (info) Registering node "sonic.http" of "$RNN.sonic$http.$HTTP.undefinedroutingurl.9999" for routing node reverse lookup

    ID=Broker1 (info) Configuring interbroker...

    ID=Broker1 (info) Starting recovery...

    ID=Broker1 (info) Recovery complete.

    ID=Broker1 (info) Restoring queues ...

    ID=Broker1 (info) Starting queue "SonicMQ.deadMessage" - Local Non-clustered Shared 1536 16384

    ID=Broker1 (info) Starting queue "SampleQ4" - Local Non-clustered Shared 1536 1000

    ID=Broker1 (info) Starting queue "SonicMQ.routingQueue" - Local Non-clustered Shared 1536 1024

    ID=Broker1 (info) Starting queue "SampleQ3" - Local Non-clustered Shared 1536 1000

    ID=Broker1 (info) Starting queue "SampleQ2" - Local Non-clustered Shared 1536 1000

    ID=Broker1 (info) Starting queue "SampleQ1" - Local Non-clustered Shared 1536 1000

    ID=Broker1 (info) Starting Interbroker...

    ID=Broker1 (info) Continuing Interbroker...

    ID=Broker1 (info) TCP_ACCEPTOR: accepting connections on tcp://nguyes7-dev1:3506

    ID=Broker1 (info) SonicMQ Broker started

    ID=Broker1 (info) Accepted connection from Broker2 on tcp://nguyes7-dev1:3506 in cluster "Cluster"

    Message was edited by:

    Son Nguyen

  • Can you tell us what doesn't seem to be working? The final line of the Container 1 log shows the two brokers are connected.

    Just for reference, it's a good idea to configure inter-broker communication to use dedicated acceptors, not the default management acceptor.

  • When I open the JMS TestClient and send a message to a topic "A" at port 4506 and I setup a listener on topic "A" on 4506 and 3506 but I can only receive a message at 4506 only. The message doesn't appear on the other container.

  • I can't see a reason why that shouldn't be working. Sound like you might best be served by calling Tech Support.

  • If the message can't send to the second broker, where should it be? Is there a way I can debug it or setting the log level to see more error log?

    Thanks,

  • What you are doing should work without any issues. A tech support call might help the problem. Likely causes of issues are configuration problems with the acceptors or test clients or messaging (are you using non-clustered queues, or a client with multi-topic).

    I would suggest:

    - Configure Broker1 with two acceptors -- make one the Interbroker Acceptor

    - Configure Broker2 with two acceptors -- make one the Interbroker Acceptor

    - Start one JMS Test Client and connect to Broker 1 (to non-interbroker accptr)

    - Start one JMS Test Cleint and connect to Broker 2 (to non-interbroker accptr)

    - on each JMS Test client, create a non-transacted, normal Topic Session, and both a Sender and Listener to Topic "A"

    -- if you send from client 1 to topic A, you should see it on both listeners

    -- if you send from client 2 to topic A, you should see it on both listeners

  • Can you give more details how to set one accepter Interbroker Acceptor?

  • Does the machine name defined in the acceptor(s) exactly match that of the host of the machine? If it does can you try localhost?

  • the acceptor is set to use the hostname instead of localhost.

    When I set the acceptor to use localhost and reload the component as well as re-create the broker, the log file still show that the acceptor is connecting to the host name: tcp://nguyes7-dev1:3506.

    Is that a problem?

  • If this is the case, please try the IP address in the acceptor definition

    David