[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Persistence & life of messages



Hi,

After browsing the code, I've found a answer to my question ;o)
But now I need some guideline and 'philosophy' to try to resolve my need.

Here is what I'd found :

RequestBroker.loadPersistentMessages()
    do a publish() of messages found in persistence folder.

RequestBroker.publish()
    ...
    if (publishQoS.isPubSubStyle()) {
        ...
        messageContainerMap.put();
        ...
    }else if (publishQoS.isPTP_Style()) {
        ...
        destinationClient.sendUpdate();
        ...
    }
    ...
}

ClientInfo.sendUpdate()
    queueMessage(msgUnitWrapper, destination);

Where can I mark PTP Persistent Messages has read by the destinataire ??


Cyrille Giquello a écrit :

> Hi all xmlBlaster users & hackers.
>
> I've a little problem with messages which are persisten.
> They 're never deleted.
>
> At server start the persistence driver load messages,
> then at first login , the client get update of messages.
> If client login again it hasn't got update.
> Right,
> but if I restarting the server, at next login, the client will get again
> messages.
>
> here is the qos I used :
> String qos =
> "<qos>"
>     //+ "<isVolatile>true</isVolatile>" marche pas mieux
>     + "<isDurable />"
>     //"<forceUpdate />" +
>     + "<destination queryType='EXACT'>"
>         + receiverName
>         + "<ForceQueuing />"
>     + "</destination>"
> + "</qos>";
>
> Then I try to use the erase() command but xmlBlaster say that messages
> doesn't exist.
>
> I did a little hack in xmlBlaster to see which messages are in
> xmlBlaster.
>
> in method RequestBroker.getMessageHandlerFromOid()
> I has this few lines to get a list of messages in container map :
>
> ...
> Iterator i = messageContainerMap.values().iterator(); // Must be in
> synchronized block
> while (i.hasNext()){
>  MessageUnitHandler msgUnitHandler = (MessageUnitHandler)i.next();
>  Log.info( ME, "messageContainerMap: "+ msgUnitHandler.getUniqueKey() );
>
> }
> ...
>
> And at run time I get  only _sys_internal , nor my messages :
>
> [26 sept. 01 15:58:30 INFO  RequestBroker] messageContainerMap:
> __sys__UsedMem
> [26 sept. 01 15:58:30 INFO  RequestBroker] messageContainerMap:
> __sys__Login
> [26 sept. 01 15:58:30 INFO  RequestBroker] messageContainerMap:
> __sys__FreeMem
> [26 sept. 01 15:58:30 INFO  RequestBroker] messageContainerMap:
> __sys__TotalMem
> [26 sept. 01 15:58:30 INFO  RequestBroker] messageContainerMap:
> __sys__UserList
>
> I would like to know more about that,
> Thanx for your comment or idea.
>
> Cyrille

--
 Cyrille / Ktaland

-----------------------------------------
-      http://www.ktaland.com/
- Pour votre MAC: http://TOUSOFT.COM/
-----------------------------------------

Encryption | Duncan Campbell | DST | Blacklisted 411 | ECHELON | 2600 | PGP | Corsica |
NSA