public void create() throws Exception { try { ConfigurationMetaData configuration = container.getBeanMetaData().getContainerConfiguration(); commitOption = configuration.getCommitOption(); optionDRefreshRate = configuration.getOptionDRefreshRate(); } catch(Exception e) { log.warn(e.getMessage()); } }
private Object findSingleObject(Transaction tx, Method method, Object[] args, EntityEnterpriseContext instance, GenericEntityObjectFactory factory) throws Exception { if(method.getName().equals("findByPrimaryKey")) { if(args[0] == null) throw new IllegalArgumentException("findByPrimaryKey called with null argument."); if(metaData.getContainerConfiguration().getCommitOption() != ConfigurationMetaData.B_COMMIT_OPTION) { Object key = instance.getCacheKey(); if(key == null) { key = ((EntityCache)instanceCache).createCacheKey(args[0]); } if(instanceCache.isActive(key)) { return factory.getEntityEJBObject(key); } } } else if(!metaData.getContainerConfiguration().getSyncOnCommitOnly()) { EntityContainer.synchronizeEntitiesWithinTransaction(tx); } return getPersistenceManager().findEntity(method, args, instance, factory); }
public void start() throws Exception { super.start(); log.debug("Starting InvalidableEntityInstanceCache..."); EntityMetaData emd = ((EntityMetaData) this.getContainer().getBeanMetaData()); boolean participateInDistInvalidations = emd.doDistributedCacheInvalidations(); byte co = emd.getContainerConfiguration().getCommitOption(); if (participateInDistInvalidations && (co == ConfigurationMetaData.A_COMMIT_OPTION || co == ConfigurationMetaData.D_COMMIT_OPTION) ) { // we are interested in receiving cache invalidation callbacks // String groupName = emd.getDistributedCacheInvalidationConfig().getInvalidationGroupName(); String imName = emd.getDistributedCacheInvalidationConfig().getInvalidationManagerName(); this.invalMgr = (InvalidationManagerMBean) Registry.lookup(imName); this.ig = this.invalMgr.getInvalidationGroup(groupName); this.ig.register(this); this.isTraceEnabled = log.isTraceEnabled(); } }