Posted By:
Feng_Li
Posted On:
Monday, January 10, 2005 06:10 PM
We have an application which performs polling task to a SwiftMQ network, i.e., issuing CLI commands to collect some statistics periodically. A persistent connection need to be created and maintained; in event of connectivity disruption, the application will try to reconnect to the network, in a way transparently to the polling task. SwiftMQ CLI API is used for establishing/maintaining connectivity with SwiftMQ network. However, a problem was encountered: the CLI hangs after some reconnect! Take a router named "router1s45" as example: the application can switch to the router (i.e. CLI command of "sr router1s45" succeeds), but then the CLI hangs there
More>>
We have an application which performs polling task to a SwiftMQ network,
i.e., issuing CLI commands to collect some statistics periodically. A
persistent connection need to be created and maintained; in event of
connectivity disruption, the application will try to reconnect to the
network, in a way transparently to the polling task.
SwiftMQ CLI API is used for establishing/maintaining connectivity with
SwiftMQ network. However, a problem was encountered: the CLI hangs after
some reconnect! Take a router named "router1s45" as example: the
application can switch to the router (i.e. CLI command of "sr
router1s45" succeeds), but then the CLI hangs there till the connection
is closed (when the router is rebooted) ...
Some notes:
-
For testing, the router "router1s45" is being started/stopped purposely
for a few times to test reconnect.
-
If there is only one router in the network, then everything is fine and
CLI never hangs. When there are more than one router (either in the same
host or in different host), however, the CLI will hang after a few
times' reconnect. The behaviour is a bit of random: sometimes after the
first reconnect, sometimes after a few times' reconnect; sometimes for
the first polling after reconnect, sometimes after a few times' polling
for the same connection ...
-
It's found that there is always a ERROR log on the other router (not the
router being started/stopped) when the CLI hangs. For example, two
routers are in the host "s45", which are named as "router1s45",
"router2s45" respectively. "router1s45" is being stopped/started for a few
times, while "router2s45" is started all the time. Below is the error log
for router "router2s45" when the CLI hangs:
2005-01-10 16:31:44.387/sys$mgmt/ERROR/v400/DispatcherImpl, started=true, queueName=tmp$3@router1s45/visit, event: [ClientRequest, queueName=tmp$3@router1s45, length=29], exception: java.lang.NullPointerException: com.swiftmq.mgmt.protocol.v400.ProtocolFactory.createDumpable(0) returns null
Got any idea about why? Any suggestion/comments are appreciated!
<<Less