2 Replies Latest reply on Mar 20, 2003 1:18 PM by jmax

    Using ByValueInvokerInterceptor

    jmax

      I'm trying to configure a BMP entity bean to use the ByValueInvokerInterceptor so that all params are always passed by value with 3.2.0RC3.

      <container-configurations>
      <container-configuration>
      <container-name>Pass By Value BMP EntityBean</container-name>
      <client-interceptors>

      org.jboss.proxy.ejb.HomeInterceptor
      org.jboss.proxy.SecurityInterceptor
      org.jboss.proxy.TransactionInterceptor
      org.jboss.invocation.ByValueInvokerInterceptornarg


      org.jboss.proxy.ejb.EntityInterceptor
      org.jboss.proxy.SecurityInterceptor
      org.jboss.proxy.TransactionInterceptor
      org.jboss.invocation.ByValueInvokerInterceptor

      <list-entity>
      org.jboss.proxy.ejb.ListEntityInterceptor
      org.jboss.proxy.SecurityInterceptor
      org.jboss.proxy.TransactionInterceptor
      org.jboss.invocation.ByValueInvokerInterceptor
      </list-entity>
      </client-interceptors>
      <call-logging>false</call-logging>
      <sync-on-commit-only>false</sync-on-commit-only>
      <container-interceptors>
      org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor
      org.jboss.ejb.plugins.LogInterceptor
      org.jboss.ejb.plugins.SecurityInterceptor
      org.jboss.ejb.plugins.TxInterceptorCMT
      org.jboss.ejb.plugins.MetricsInterceptor
      org.jboss.ejb.plugins.EntityCreationInterceptor
      org.jboss.ejb.plugins.EntityLockInterceptor
      org.jboss.ejb.plugins.EntityInstanceInterceptor
      org.jboss.ejb.plugins.EntityReentranceInterceptor
      org.jboss.resource.connectionmanager.CachedConnectionInterceptor
      org.jboss.ejb.plugins.EntitySynchronizationInterceptor
      </container-interceptors>
      <instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
      <instance-cache>org.jboss.ejb.plugins.EntityInstanceCache</instance-cache>
      <persistence-manager>org.jboss.ejb.plugins.BMPPersistenceManager</persistence-manager>
      <transaction-manager>org.jboss.tm.TxManager</transaction-manager>
      <locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
      <container-cache-conf>
      <cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
      <cache-policy-conf>
      <min-capacity>50</min-capacity>
      <max-capacity>1000000</max-capacity>
      <overager-period>300</overager-period>
      <max-bean-age>600</max-bean-age>
      <resizer-period>400</resizer-period>
      <max-cache-miss-period>60</max-cache-miss-period>
      <min-cache-miss-period>1</min-cache-miss-period>
      <cache-load-factor>0.75</cache-load-factor>
      </cache-policy-conf>
      </container-cache-conf>
      <container-pool-conf>
      100
      </container-pool-conf>
      <commit-option>A</commit-option>
      </container-configuration>
      </container-configurations>


      <configuration-name>Pass By Value BMP EntityBean</configuration-name>
      <ejb-name>SessionTokenPersistentEntity</ejb-name>
      <jndi-name>ejb/nlg/SessionTokenPersistentEntity</jndi-name>
      <local-jndi-name>SessionTokenPersistentEntityLocal</local-jndi-name>


      I'm clearly not setting something up correctly, because arguments are still being passed by reference within the same jvm. Furthermore, I can replace ByValueInvokerInterceptor with a non-existent class and jboss does not complain, so it doesn't seem as if my client-interceptors are even being processed. I've spent some time digging through the source and as far as I can tell, there should be an attempt to instantiate my bogus interceptors in ProxyFactory.java. Has anyone had success with configuring this type of container configuration? I also tried using the "extends" attribute of the container-configuration element, also to no effect. I couldn't even find a reference to this attribute being processed in the source. Any help would be greatly appreciated.

      Thanks,
      Max