David Robison wrote:
Can RequestBroker.update be used to publish messages from a native plugin? David Robison
No, this is for internal cluster use only

regards
Marcel

    ------------------------------------------------------------------------
    *From:* Marcel Ruff [mailto:[EMAIL PROTECTED]
    *To:* [email protected]
    *Sent:* Sun, 04 Mar 2007 12:43:27 -0500
    *Subject:* Re: [xmlblaster] Not getting callback on erase

    Hi Jonathan,

    the proper way (also for native plugins) to erase messages is for
    example:

    System.err.println("HelloWorldNative: Connecting with protocol
    'LOCAL' to xmlBlaster\n");
    I_XmlBlasterAccess con = new XmlBlasterAccess(glob);

    ConnectQos qos = new ConnectQos(this.glob); /* Client side
    object */
    qos.setPtpAllowed(false);
    qos.setUserId("A-NATIVE-CLIENT-PLUGIN");
    qos.getSessionQos().setSessionTimeout(0L);
    con.connect(qos, null); // Login to xmlBlaster as
    "A-NATIVE-CLIENT-PLUGIN"

    EraseQos eq = new EraseQos(glob);
    eq.setForceDestroy(true);
    EraseKey theEK = new EraseKey(glob, "Hello");
    con.erase(theEK, eq);

    As an example see demo/javaclients/HelloWorldNative.java or
    HelloWorldNative2.java
    http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.local.html

    The method requestBroker.update() is for internal usage only (cluster
    messages
    with special syntax) .

    regards
    Marcel


    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 the
    > database in the external service case.
    >
    > Are there know side affects of using a client side connection from
    > within a plugin? This seems
    > to be the only option to erase topics successfully from within
    the plugin.
    >
    > 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 in
    > the second case. Test have been run under 1.5.1.
    >
    > Jonathan Clark
    > Open Roads Consulting, Inc.
    > 757-546-3401
    >


Reply via email to