[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xmlblaster] modify in ConnectionsHandler.cpp
pikaiyuan wrote:
> Hello
>
> I found there has some bug in connectionshandler.cpp like this:
> you are maybe forget to add SubscribeQueueEntry and UnSubscribeQueueEntry
> to ClientQueueProperty, and result in some bugs when program runs in failsafe model.
> It runs correctly after I had made some changes.
Hi,
thanks for reporting, we will look into this issue
for the next release.
> 1. in subscribe() method
> try {
> SubscribeReturnQos ret = connection_->subscribe(key, qos);
> //add by pky to add subscribe entries to client ram queue
> if (!queue_) {
> if (!connectQos_) {
> throw XmlBlasterException(INTERNAL_SUBSCRIBE, ME + "::queuesubscribe",
> "need to create a queue but the connectQos is NULL (probably never connected)");
> }
> if (log_.trace()) log_.trace(ME+":queueSubscribe", "creating a client queue ...");
> queue_ = &QueueFactory::getFactory().getPlugin(global_, connectQos_->getClientQueueProperty());
> log_.info(ME+":queuesubscribe", "created a client queue");
> }
> if (log_.trace())
> log_.trace(ME, string("queuesubscribe: entry has been queued"));
> SubscribeQueueEntry entry(global_, key, qos);
> queue_->put(entry);
> //end
> return ret;
> }
> catch (XmlBlasterException& ex) {
> if ( ex.isCommunication() ) toPollingOrDead(&ex);
> throw ex;
> }
>
> 2. in unsubscribe() method
> try {
> vector<UnSubscribeReturnQos> ret = connection_->unSubscribe(key, qos);
> //add by pky to add unsubscribe entries to client ram queue
> if (!queue_) {
> if (!connectQos_) {
> throw XmlBlasterException(INTERNAL_UNSUBSCRIBE, ME + "::queueunsubscribe",
> "need to create a queue but the connectQos is NULL (probably never connected)");
> }
> if (log_.trace()) log_.trace(ME+":queueunsubscribe", "creating a client queue ...");
> queue_ = &QueueFactory::getFactory().getPlugin(global_, connectQos_->getClientQueueProperty());
> log_.info(ME+":queueunsubscribe", "created a client queue");
> }
> if (log_.trace())
> log_.trace(ME, string("queueunsubscribe: entry has been queued"));
> UnSubscribeQueueEntry entry(global_, key, qos);
> queue_->put(entry);
> //end
> return ret;
> }
> catch (XmlBlasterException& ex) {
> if ( ex.isCommunication() ) toPollingOrDead(&ex);
> throw ex;
> }
>
> By the way, does anyone has a look at ptp model in cplusplus client side.
It should run fine, do you experience any problems?
best regards,
Marcel
>
> thanks any way
>
>
> pikaiyuan
> 2004-07-01
>
>
--
http://www.xmlBlaster.org