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