Marcel Ruff
Fri, 02 Mar 2007 11:12:38 -0800
Jonathan Clark wrote:
As a followup to my previous email, it appears that the erased topics are still in the database in the case where they are erased from the plugin, but they do appear to be cleaned up from thedatabase in the external service case.Are there know side affects of using a client side connection from within a plugin? This seemsto be the only option to erase topics successfully from within the plugin.
The behavior should be similar, I'll try to reproduce it here ... Marcel
Thanks______________________________________________________________________________I have some code that runs as a separate service that generates topics and when the message is cleared, it then erases the topic after a predefined delay using the code below. EraseQos eq = new EraseQos(glob);eq.setForceDestroy(true); EraseKey theEK = new EraseKey(glob, oid); EraseReturnQos[] eraseArr = con.erase(theEK, eq);When the erase happens, clients listening on the topic receive a callback with the qos.isErased() set to true and can react to the erase. However, I want to convert the code to run as a plugin so that it will only be active when xmlBlaster is running. The code runs, but I have run into a problem. When I process the erase from within a plugin using the following code, then clients listening on the topic do not receive a callback indicating the erase. updateKey = new UpdateKey(engineGlob, msgUnit.getKey());msgQosData = new MsgQosData(engineGlob, MethodName.ERASE); msgQosData.setForceDestroy(true);requestBroker.update(sessionInfo, updateKey, null, msgQosData); Any thoughts on why the external erases seem to get propogated and the internal erases do not? In all cases the topic appears to get erased, however, the clients do not know about the erase inthe second case. Test have been run under 1.5.1. Jonathan Clark Open Roads Consulting, Inc. 757-546-3401