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

[xmlblaster] Release 1.2 fail-safe: reconnected and publishing, but no sync GET possible



Hello Marcel,

I have a standalone server node and few clients. I do persistent subscribes, publishes and gets (both xpath and oid) and erase, but ignore updates (incoming messages).

Seems I have some misunderstandings relating the client queuing: I switched to Oracle on client side (not sure it worked), now I tried if fail-safe still works, but only publishes work after the restart of the xmlBlaster standalone server. The message queued on client side is delivered after reconnect, also further publishes work. Also, no XB_ENTRIES table is created in Oracle.

At the client side I have configured:
------snip---------
JdbcStorage[Oracle]=org.xmlBlaster.util.queue.jdbc.JdbcQueueCommonTablePlugin,\
 ...\
 entriesTableName=ENTRIES,\
 dbAdmin=true
StoragePlugin[JDBC][1.0]=${JdbcStorage[Oracle]}StoragePlugin[RAM][1.0]=org.xmlBlaster.engine.msgstore.ram.MapPlugin
# avoid meat caching!
StoragePlugin[CACHE][1.0]=${JdbcStorage[Oracle]}
#
QueuePlugin[JDBC][1.0]=${JdbcStorage[Oracle]}
QueuePlugin[RAM][1.0]=org.xmlBlaster.util.queue.ram.RamQueuePlugin
QueuePlugin[CACHE][1.0]=org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin,persistentQueue=JDBC,transientQueue=RAM
JdbcDriver.drivers=\
                  oracle.jdbc.driver.OracleDriver

------/snap------

Client init:
------snip---------------
// ...
qos.setPersistent(true);
//...
qos.setSessionName(...);
// Setup fail-safe handling ...
Address addressProp = new Address(m_oXGlob);
addressProp.setDelay(4000L); // retry connecting every 4 sec
addressProp.setRetries(-1); // -1 == forever
addressProp.setPingInterval(0L); // switched off
qos.getClientQueueProperty().setMaxEntries(1000); // queue up to 1000
// messages
m_oXCon.registerConnectionListener(new I_ConnectionStateListener() {
// logs events
...
};
m_oXCon.connect(qos, new I_Callback() {
public String update(String cbSessionId, UpdateKey updateKey, byte[] content, UpdateQos updateQos)
{
// ...
return ""; }
};
------/snap------


Exception log:
------snip---------
ERROR: trace:
errorCode=user.configuration message=#14953M Synchronous GET on oid='null' is not possible in offline/polling mode. See 'http://www.xmlBlaster.org/xmlBlaster/doc/requirements/client.failsafe.html' for more details.
at org.xmlBlaster.client.dispatch.ClientDispatchConnectionsHandler.createFakedReturnObjects(ClientDispatchConnectionsHandler.java:157)
at org.xmlBlaster.util.dispatch.DispatchManager.putPost(DispatchManager.java:572)
at org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQueueInterceptorPlugin.java:568)
at org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQueueInterceptorPlugin.java:442)
at org.xmlBlaster.client.XmlBlasterAccess.queueMessage(XmlBlasterAccess.java:753)
at org.xmlBlaster.client.XmlBlasterAccess.get(XmlBlasterAccess.java:866)


...

DEBUG: Connection, state(==m_oXCon.getState()): ALIVE
DEBUG: try refresh: trace:
errorCode=user.configuration message=#14953M Synchronous GET on oid='__refresh' is not possible in offline/polling mode. See 'http://www.xmlBlaster.org/xmlBlaster/doc/requirements/client.failsafe.html' for more details.
at org.xmlBlaster.client.dispatch.ClientDispatchConnectionsHandler.createFakedReturnObjects(ClientDispatchConnectionsHandler.java:157)
at org.xmlBlaster.util.dispatch.DispatchManager.putPost(DispatchManager.java:572)
at org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQueueInterceptorPlugin.java:568)
at org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQueueInterceptorPlugin.java:442)
at org.xmlBlaster.client.XmlBlasterAccess.queueMessage(XmlBlasterAccess.java:753)
at org.xmlBlaster.client.XmlBlasterAccess.get(XmlBlasterAccess.java:866)
at org.xmlBlaster.client.XmlBlasterAccess.refreshSession(XmlBlasterAccess.java:416)
------/snap------


Regards,

Johann Thomas


P.S.: Sorry if it hits the list more than once... -- (sent with Mozilla)