Using ByValueInvokerInterceptor
jmax Mar 19, 2003 2:42 PMI'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