Clustered broker in Linux environment

Posted by Admin on 21-Jan-2009 20:23

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

All Replies

Posted by jtownsen on 22-Jan-2009 04:10

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.

Posted by Admin on 22-Jan-2009 08:52

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.

Posted by jtownsen on 22-Jan-2009 15:55

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

Posted by Admin on 22-Jan-2009 22:02

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,

Posted by Bill Wood on 23-Jan-2009 08:15

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

Posted by Admin on 23-Jan-2009 09:40

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

Posted by dmillman on 27-Jan-2009 09:51

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?

Posted by Admin on 27-Jan-2009 12:35

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?

Posted by dmillman on 30-Jan-2009 13:29

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

David

This thread is closed