[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



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.

--
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)
>