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

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



Thomas, Johann wrote:
Hi Marcel,

First of all:
Thanks for your answer so late on Friday! (de: Hut ab für den Support!)


My problem still is that, while the client _has_ _reconnected_ to the server: - it received a call to
public void reachedAlive(
ConnectionStateEnum oldState,
I_XmlBlasterAccess connection)
- and is publishing successfully (another client "B" reads all the publishes thru' get())
- and tells it's ALIVE (m_oXCon.getState())
it still can not get() anything telling it is in offline/polling mode (you saw the stack trace below). So I still wonder where I should search for the error. I will have to test the client persistence first, I suppose, as RAM queuing works. It may be a follow up error I have introduced elsewhere.
Hi again,

i have extended xmlBlaster/javaclients/HelloWorld4.java in the current svn to
be able to send publish() or get() from command line to simulate manually what you describe.
Here everything works as expected.
Please check this out and try, probably your use case is different.
Is it possible that you have another XmlBlasterAccess instance zombi-gollum lurking around?


regards
Marcel
--
regards
Johann Thomas, jth




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

...
---------------------------------

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.JdbcQueueCommonTabl
ePlugin,\

 ...\
 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.CacheQueueInte
rceptorPlugin,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.create
FakedReturnObjects(ClientDispatchConnectionsHandler.java:157)


   at
org.xmlBlaster.util.dispatch.DispatchManager.putPost(DispatchManager.j
ava:572)

   at
org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQ
ueueInterceptorPlugin.java:568)

   at
org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQ
ueueInterceptorPlugin.java:442)

   at
org.xmlBlaster.client.XmlBlasterAccess.queueMessage(XmlBlasterAccess.j
ava: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.create
FakedReturnObjects(ClientDispatchConnectionsHandler.java:157)


   at
org.xmlBlaster.util.dispatch.DispatchManager.putPost(DispatchManager.j
ava:572)

   at
org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQ
ueueInterceptorPlugin.java:568)

   at
org.xmlBlaster.util.queue.cache.CacheQueueInterceptorPlugin.put(CacheQ
ueueInterceptorPlugin.java:442)

   at
org.xmlBlaster.client.XmlBlasterAccess.queueMessage(XmlBlasterAccess.j
ava: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)