REQUIREMENT engine.callback |
Type | NEW |
Priority | HIGH |
Status | CLOSED |
Topic | XmlBlaster has a sophisticated client callback framework | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Des cription |
XmlBlaster has a callback framework to send messages to clients. Clients need to establish a callback server (in any supported protocol) to receive these asynchronous messages. Callback Features:
Open issues
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example any |
This shows the callback part of a connect() QoS: <callback type='IOR' sessionId='4e56890ghdFzj0' pingInterval='60000' retries='5' delay='60000' oneway='true' useForSubjectQueue='true'> IOR:00044550005... <compress type='gzip' minSize='1000'/> <burstMode collectTime='400'/> </callback> Use CORBA to callback messages, on error retry 5 times pausing 60000 millis between retries. Deliver the given sessionId with update() to the client so that the client can trust us. Ping the client every 60000 millis (one minute) to check if he is alive. The given callback may be used by the subjectQueue as well. Compress messages bigger 1000 bytes before sending them to me. Collect messages for 400 milliseconds and update them in one callback (burst mode) This update mode is a 'transaction' for all collected messages. The messages are sent oneway, there is no return value or exception transfer for this method invocation. In other words there is no application level ACK. Default is oneway='false'. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example Java |
This shows the hardcoded callback configuration of a connect() QoS for Java clients: import org.xmlBlaster.client.qos.ConnectQos; import org.xmlBlaster.client.qos.ConnectReturnQos; import org.xmlBlaster.util.qos.address.CallbackAddress; ... I_XmlBlasterAccess con = glob.getXmlBlasterAccess(); ConnectQos connectQos = new ConnectQos(glob, name, passwd); CallbackAddress cbAddress = new CallbackAddress(glob); cbAddress.setDelay(4000L); // retry connecting every 4 sec cbAddress.setRetries(-1); // -1 == forever cbAddress.setPingInterval(4000L); // ping every 4 seconds connectQos.addCallbackAddress(cbAddress); // Connect to xmlBlaster ... ConnectReturnQos connectReturnQos = con.connect(connectQos, this); |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Configure |
These parameters can be specified on client side with java clients (see ConnectQos API). Other programming languages need to supply these setting with a raw XML string (see example section above).
These parameters can be specified on serverside.
NOTE: Configuration parameters are specified on command line (-someValue 17) or in the
xmlBlaster.properties file (someValue=17). See requirement "util.property" for details. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See API | org.xmlBlaster.engine.queue.MsgQueue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See API | org.xmlBlaster.engine.callback.CbWorker | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See API | org.xmlBlaster.util.qos.address.CallbackAddress | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See API | org.xmlBlaster.util.qos.storage.QueueProperty | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See API | org.xmlBlaster.client.qos.ConnectQos | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See API | org.xmlBlaster.client.qos.UpdateQos | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See API | org.xmlBlaster.test.qos.TestCallbackConfig | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See REQ | engine.queue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See REQ | engine.qos.login.callback | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See REQ | util.property | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See REQ | util.property.args | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See REQ | util.property.env | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See TEST | org.xmlBlaster.test.qos.TestCallback | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See TEST | org.xmlBlaster.test.qos.TestCallbackConfig |
This page is generated from the requirement XML file xmlBlaster/doc/requirements/engine.callback.xml