Marcel Ruff
Fri, 28 Jul 2006 12:11:56 -0700
Johann Thomas wrote:
This works fine here, the XB_ENTRIES is properly created in my oracle by the clientHello 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.
(the server ran with HSQLDB).
My clients xmlBlaster.properties:
---------------------------------
JdbcStorage[Oracle]=org.xmlBlaster.util.queue.jdbc.JdbcQueueCommonTablePlugin,\
url=jdbc:oracle:thin:@myhost:1521:xmlb,\
user=xmlblaster,\
password=secret,\
connectionPoolSize=1,\
connectionBusyTimeout=90000,\
maxWaitingThreads=300,\
tableNamePrefix=XB_,\
entriesTableName=ENTRIES,\
dbAdmin=true
StoragePlugin[JDBC][1.0]=${JdbcStorage[Oracle]}
QueuePlugin[JDBC][1.0]=${JdbcStorage[Oracle]}
JdbcDriver.drivers=oracle.jdbc.driver.OracleDriver
JdbcDriver.mapping[Oracle]=string=VARCHAR(128),longint=NUMBER(19),int=NUMBER(10),blob=BLOB,boolean=CHAR(1)
...
---------------------------------
The stack trace below tells you that we don't support doing a get() call
during we are offline
as we currently don't have a way to pass you back the returned messages
in async mode (when on reconnect the get()s are send).
It would be possible by our client library to deliver those using the
update() but this is not implemented,
see the table"Client side queuing during reconnect-polling" at http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.failsafe.html#queuing
(as noted in the exception below), regards Marcel
At the client side I have configured: ------snip---------JdbcStorage[Oracle]=org.xmlBlaster.util.queue.jdbc.JdbcQueueCommonTablePlugin,\...\ entriesTableName=ENTRIES,\ dbAdmin=trueStoragePlugin[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.RamQueuePluginQueuePlugin[CACHE][1.0]=org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin,persistentQueue=JDBC,transientQueue=RAMJdbcDriver.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)