1 Reply Latest reply on Sep 7, 2010 12:11 PM by Galder Zamarreño

    Why is asynchronous RPC marshalling/sending disabled ?

    Jesus Salvo Newbie



      In the file jboss-cache-manager-jboss-beans.xml, why are the following elements set to zero ?



      <property name="nodeLockingScheme">PESSIMISTIC</property>
      <property name="isolationLevel">REPEATABLE_READ</property>
      <property name="cacheMode">REPL_ASYNC</property>
      <!-- Disable asynchronous RPC marshalling/sending -->
      <property name="serializationExecutorPoolSize">0</property>

      <!-- We have no asynchronous notification listeners -->

      <property name="listenerAsyncPoolSize">0</property>



      From the documentation http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/5.0.0/html/Administration_And_Configuration_Guide/jbosscache.chapt.html#jbosscache-configuration-cachemode:



      {quote}Asynchronous means the  cache instance sends a message  to its peers notifying them of the  change(s) and then immediately  returns, without any acknowledgement that  they have applied the same  changes. It does not mean sending the message is handled by  some other thread besides the  one that changed the cache content; the  thread that makes the change  still spends some time dealing with  sending messages to the cluster,  just not as much as with synchronous  communication.



      That is, REPLY_ASYNC will still block when sending the contents of the cache to the cluster, but it will not wait for responses from the peers / nodes of the cluster that they got / acknowledged the message.


      In short, what I wanted to know is:


      1) Why is the JBossAS defaulted to NOT use asynchronous RPC marshalling, even when REPL_ASYNC is used for all the caches in JBossAS ?


      2) Is it possible to use REPL_ASYNC with asynchronous RPC marshalling, at least with StandardSFSBCacheConfig ?