We have been having an interesting problem with xmlBlaster recently.
Clients subscribed to one key oid will receive messages destined to
another oid. For instance:
client one subscribes to <key oid='screen_1'/>
client two subscribes to <key oid='screen_2'/>
A message is sent to 'screen_1', but it goes to'screen_2' instead. The
message received by client two has the 'screen_1' key, even though it
is only subscribed to 'screen_2'. Restarting both clients seems to fix
the problem once it occurs.
This is the connect QoS we are using. %USER and %PASSWORD are
identical for each client, and %UNIQUE_SESSION_NAME is unique for
every client ("session-MACADDRESS").
<securityService type='htpasswd' version='1.0'>
<![CDATA[ <user>%USER</user> <passwd>%PASSWORD</passwd> ]]>
</securityService>
<persistent>false</persistent>
<session name='%UNIQUE_SESSION_NAME/1'
timeout='0'
maxSessions='1000'
clearSessions='true'
reconnectSameClientOnly='false'/>
<queue relating='callback' maxEntries='50000' maxEntriesCache='10000'>
<callback type='SOCKET'/>
</queue>
The client subscribe properties are:
#
# default subscribe properties
#
wantContent = true
multiSubscribe = false
subscribe/qos/persistent = false
local = false
initialUpdate = false
updateOneway = false
notifyOnErase = true
historyNumUpdates = 1
historyNewestFirst = true
The client is using the C xmlBlaster library. I suspect that the
problem is related to the persistent session tracking on the server,
where a client is inadvertently reconnected to another client's
sessions/subscriptions.
Any thoughts?