[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xmlblaster] Problems shutting down xmlBlaster with persistent topics
Aaron Silinskas wrote:
Hello,
It seems when I subscribe to a topic with
SubscribeQos.setPersistent(true), then unsubscribe, I get a warning and
exception when shutting down xmlBlaster. It seems the disconnect is
erasing the topic, which tries to unsubscribe first without checking if
the subscription still exists.
[10/20/04 1:57:09 PM WARN XmlBlaster.MainThread
TopicHandler-/node/xmlBlaster_192_168_1_101_3412/topic/mytopic] , can't
unsubscribe, you where not subscribed to subscription
ID=__subId:xmlBlaster_192_168_1_101_3412-4
[10/20/04 1:57:09 PM ERROR XmlBlaster.MainThread
Authenticate-/node/xmlBlaster_192_168_1_101_3412] Problem on session
shutdown, we ignore it: null source
java.lang.IllegalArgumentException: null source
at java.util.EventObject.<init>(Unknown Source)
at
org.xmlBlaster.engine.SubscriptionEvent.<init>(SubscriptionEvent.java:28)
at
org.xmlBlaster.engine.TopicHandler.removeSubscriber(TopicHandler.java:1055)
at
org.xmlBlaster.engine.SubscriptionInfo.removeSubscribe(SubscriptionInfo.java:263)
at
org.xmlBlaster.engine.ClientSubscriptions.removeFromClientSubscriptionMap(ClientSubscriptions.java:490)
at
org.xmlBlaster.engine.ClientSubscriptions.sessionRemoved(ClientSubscriptions.java:322)
at
org.xmlBlaster.authentication.Authenticate.fireClientEvent(Authenticate.java:786)
at
org.xmlBlaster.authentication.Authenticate.resetSessionInfo(Authenticate.java:704)
at
org.xmlBlaster.authentication.Authenticate.runlevelChange(Authenticate.java:918)
at
org.xmlBlaster.engine.runlevel.RunlevelManager.fireRunlevelEvent(RunlevelManager.java:312)
at
org.xmlBlaster.engine.runlevel.RunlevelManager.changeRunlevel(RunlevelManager.java:206)
at org.xmlBlaster.Main.shutdown(Main.java:230)
at org.xmlBlaster.Main.checkForKeyboardInput(Main.java:325)
at org.xmlBlaster.Main.init(Main.java:202)
at org.xmlBlaster.Main.<init>(Main.java:108)
at org.xmlBlaster.Main.main(Main.java:540)
I have fixed this (see subversion), it had no impact on functionality.
When xmlBlaster is started again, I get these warnings on start-up:
[10/20/04 1:58:44 PM TRACE XmlBlaster.MainThread QueuePropertyBase]
Lookup of nodeId=xmlBlaster_192_168_1_101_3412 context=null
getRootTagName=queue relating=history propName= defaultValue=CACHE,1.0
[10/20/04 1:58:44 PM TRACE XmlBlaster.MainThread QueuePropertyBase]
Initialized:
<queue relating='history' maxEntries='10'
maxEntriesCache='10'/>[10/20/04 1:58:44 PM WARN XmlBlaster.MainThread
RequestBroker-/node/xmlBlaster_192_168_1_101_3412] Cluster manager is
not ready, handling message '__sys__UserList' locally
...
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread PluginManagerBase]
Plugin 'LOCAL,1.0 successfully initialized.
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
CbDispatchConnection-callback:/node/xmlBlaster_192_168_1_101_3412/client/user/-1]
Created callback plugin 'LOCAL'
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
PluginInfo-LoggableDevicePlugin] Trying contextNode=null
propertyKey=LoggableDevicePlugin[console][1.0]
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
Global-/node/xmlBlaster_192_168_1_101_3412] Setting logDevice
local[console]=org.jutils.log.LogDeviceConsole
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
Global-/node/xmlBlaster_192_168_1_101_3412] New log channel 'local'
ready: ERROR | WARN | INFO | TRACE
[10/20/04 1:58:45 PM ERROR XmlBlaster.MainThread CallbackLocalDriver]
The given callback id ='LOCAL:27929635' is invalid:
errorCode=internal.unknown message=could not retreive the
LocalCallbackImpl, was there really one started
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
DispatchConnection-callback:/node/xmlBlaster_192_168_1_101_3412/client/user/-1]
XmlBlasterException errorCode=[resource.configuration.address]
serverSideException=true location=[Local-CallbackHandleInvalid]
message=[The given callback Id is invalid: errorCode=internal.unknown
message=could not retreive the LocalCallbackImpl, was there really one
started : ] [See URL
http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.listing.html#resource.configuration.address]
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread CallbackLocalDriver]
Shutdown implementation is missing
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
DispatchConnectionsHandler-callback:/node/xmlBlaster_192_168_1_101_3412/client/user/-1]
Destroyed one callback connection, 0 remain.
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
DispatchConnectionsHandler-callback:/node/xmlBlaster_192_168_1_101_3412/client/user/-1]
updateState() oldState=UNDEF conList.size=0
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
DispatchConnectionsHandler-callback:/node/xmlBlaster_192_168_1_101_3412/client/user/-1]
Load LOCAL:27929635: XmlBlasterException
errorCode=[communication.noConnection.dead] serverSideException=true
location=[Local-CallbackHandleInvalid] message=[The given callback Id is
invalid: errorCode=internal.unknown message=could not retreive the
LocalCallbackImpl, was there really one started : Original
erroCode=resource.configuration.address] [See URL
http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.listing.html#communication.noConnection.dead]
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
DispatchConnectionsHandler-callback:/node/xmlBlaster_192_168_1_101_3412/client/user/-1]
updateState() oldState=DEAD conList.size=0
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
DispatchConnectionsHandler-callback:/node/xmlBlaster_192_168_1_101_3412/client/user/-1]
Reached state = DEAD
[10/20/04 1:58:45 PM TRACE XmlBlaster.MainThread
SessionInfo-/node/xmlBlaster_192_168_1_101_3412/client/user/-1] Session
lasts forever, requested expiry timer was 0
Negative session ids "user/-1" don't support persistent sessions or subscriptions,
you need to use a positive session id (like -session.name joe/1) to use
persistent session/subscriptions, see
http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.failsafe.html#naming
http://www.xmlblaster.org/xmlBlaster/doc/requirements/engine.persistence.session.html
With "user/-1" you have the above (stack trace) resource leak on harddisk.
With the SOCKET or XMLRPC protocol a client could dump the secret session ID and reuse
it on client startup - in this case it would work out fine (no resource leak).
Our CORBA protocol plugin can't handle persistent session with negative public session id,
as the CORBA layer is the creator of the secret session id and is creating a new one on each startup.
I have added a server side warning output about this issue,
regards,
Marcel
Thanks,
Aaron
--
http://www.xmlBlaster.org