public static JmxActivityContextHandle encode(ActivityContextHandle ach) { return new JmxActivityContextHandle(ach.getActivityType(), ach.getActivityType() == ActivityType.RA ? ((ResourceAdaptorActivityContextHandle) ach).getResourceAdaptorEntity().getName() : "", handleToString(ach.getActivityHandle()), ach.getActivityHandle().toString()); }
public void endActivity(ActivityContextHandle ach) throws ManagementException { // Again this is tx method logger.info("Trying to stop null activity[" + ach + "]!!"); ActivityContext ac = acFactory.getActivityContext(ach); if (ac == null) { logger.debug("There is no ac associated with given acID[" + ach + "]!!"); throw new ManagementException("Can not find AC for given ID[" + ach + "], try again!!!"); } if (ac.getActivityContextHandle().getActivityType() == ActivityType.NULL) { logger.debug("Scheduling activity end for acID[" + ach + "]"); NullActivity nullActivity = (NullActivity) ac.getActivityContextHandle().getActivityObject(); if (nullActivity != null) { nullActivity.endActivity(); } } else { logger.debug("AC is not null activity context"); throw new IllegalArgumentException("Given ID[" + ach + "] does not point to NullActivity"); } }
for (ActivityContextHandle ach : acf .getAllActivityContextsHandles(ActivityType.SERVICE)) { logger.info("Waiting for " + ach.getActivityHandle() + " to stop..."); noActivities = false;
private boolean tracksIdleTime(ActivityContextHandle ach, boolean updateLastAccessTime) { if(!updateLastAccessTime) { return false; } if (configuration.getTimeBetweenLivenessQueries() < 1) { return false; } return ach.getActivityType() == ActivityType.RA; }
public Object getActivity() { return eventContext.getActivityContextHandle().getActivityObject(); }
public String[] listActivityContextsFactories() { logger.info("Listing AC factories"); Set<String> factoriesSet = new HashSet<String>(); for (ActivityContextHandle ach : this.acFactory.getAllActivityContextsHandles()) { factoriesSet.add(ach.getActivityType() == ActivityType.RA ? ((ResourceAdaptorActivityContextHandle)ach).getResourceAdaptorEntity().getName() : ""); } if (factoriesSet.size() == 0) return null; String[] ret = new String[factoriesSet.size()]; ret = (String[]) factoriesSet.toArray(ret); return ret; }
public Object getActivity() throws TransactionRequiredLocalException, SLEEException { sleeContainer.getTransactionManager().mandateTransaction(); return activityContext.getActivityContextHandle().getActivityObject(); }
/** * Checks if the entity has activities besides the one passed as parameter (if not null). * @param exceptHandle * @return */ private boolean hasActivities() { try { for (ActivityContextHandle handle : sleeContainer .getActivityContextFactory() .getAllActivityContextsHandles()) { if (handle.getActivityType() == ActivityType.RA) { ResourceAdaptorActivityContextHandle raHandle = (ResourceAdaptorActivityContextHandle) handle; if (raHandle.getResourceAdaptorEntity().equals(this)) { logger.debug("**** AllActivityContextsHandles: "+sleeContainer .getActivityContextFactory() .getAllActivityContextsHandles()); if (logger.isDebugEnabled()) { logger.debug("RA entity "+name+" has (at least) activity "+handle.getActivityHandle()); } return true; } } } } catch (Throwable e) { logger.error(e.getMessage(), e); } return false; }
if (achOrig.getActivityType() == ActivityType.RA) { o[RA] = ((ResourceAdaptorActivityContextHandle)achOrig).getResourceAdaptorEntity().getName(); o[ACTIVITY_CLASS] = achOrig.getActivityObject().getClass().getName(); logger.debug("======[getDetails][ACTIVITY_CLASS][" + o[ACTIVITY_CLASS] + "]");
/** * Retrieves a set containing all activity context handles in the factory's * cache data * * @return */ @SuppressWarnings("unchecked") public Set<ActivityContextHandle> getActivityContextHandlesByType(ActivityType type) { //WARNING : EXPENSIVE OPERATION , CONSIDER OPTIMIZATION Set<ActivityCacheKey> keys=(Set<ActivityCacheKey>)this.cluster.getMobicentsCache().getAllKeys(); Set<ActivityContextHandle> handles=new HashSet<ActivityContextHandle>(); Iterator<ActivityCacheKey> keysIterator=keys.iterator(); while(keysIterator.hasNext()) { ActivityCacheKey curr=keysIterator.next(); if(curr.getType()==ActivityCacheType.METADATA && curr.getActivityHandle().getActivityType()==type) handles.add(curr.getActivityHandle()); } return handles; } }
private void queryLiveness(ActivityContextHandle ach,long currentTime) { if (ach.getActivityType() != ActivityType.RA) return; if(logger.isDebugEnabled()) logger .debug("Periodic Liveliness Task is on the run, processing AC "+ach); ActivityContextImpl ac = acFactory.getActivityContext(ach); if(ac == null) { return; } if ((currentTime - ac.getLastAccessTime()) < acFactory.getConfiguration().getMaxTimeIdleInMs()) { // This one has been accessed in near past, so we dont // want to query it return; } final ResourceAdaptorActivityContextHandle raach = (ResourceAdaptorActivityContextHandle) ach; final ResourceAdaptorEntity raEntity = raach.getResourceAdaptorEntity(); if (logger.isDebugEnabled()) { logger.debug("Invoking ra entity "+raEntity.getName()+" queryLiveness() for activity handle "+ach.getActivityHandle()); } raEntity.getResourceAdaptorObject().queryLiveness( ach.getActivityHandle()); }
continue; Object activity = achOrig.getActivityObject(); String acSource = achOrig.getActivityType() == ActivityType.RA ? ((ResourceAdaptorActivityContextHandle)achOrig).getResourceAdaptorEntity().getName() : ""; if (achOrig.getActivityType() == ActivityType.RA) { if (!acSource.equals(comparisonCriteria)) ac = null;
.getActivityContextFactory() .getAllActivityContextsHandles()) { if (handle.getActivityType() == ActivityType.RA) { final ResourceAdaptorActivityContextHandle raHandle = (ResourceAdaptorActivityContextHandle) handle; if (raHandle.getResourceAdaptorEntity().equals(raEntity)) { .getActivityContextFactory() .getAllActivityContextsHandles()) { if (handle.getActivityType() == ActivityType.RA) { final ResourceAdaptorActivityContextHandle raHandle = (ResourceAdaptorActivityContextHandle) handle; if (raHandle.getResourceAdaptorEntity().equals(raEntity)) {
public void activityEnded() { if (logger.isDebugEnabled()) { logger.debug("Activity ended with handle " + getActivityContextHandle()); } // remove references to this AC in timer and ac naming facility removeNamingBindings(); removeFromTimers(); // Spec 7.3.4.1 Step 10 final int activityFlags = activityContextHandle.getActivityType() == ActivityType.RA ? getActivityFlags() : -1; TransactionContext txContext = sleeContainer.getTransactionManager() .getTransactionContext(); removeFromCache(txContext); factory.removeActivityContext(this); if (activityContextHandle.getActivityType() == ActivityType.RA) { // external activity, notify RA that the activity has ended ((ResourceAdaptorActivityContextHandle) activityContextHandle) .getResourceAdaptorEntity().activityEnded( activityContextHandle.getActivityHandle(), activityFlags); } else if (activityContextHandle.getActivityType() == ActivityType.SERVICE) { sleeContainer.getServiceManagement().activityEnded( (ServiceActivityHandle) activityContextHandle .getActivityHandle()); } }
public void activityUnreferenced() { if (logger.isDebugEnabled()) { logger.debug("Activity Context with handle " + activityContextHandle + " is now unreferenced"); } switch (activityContextHandle.getActivityType()) { case RA: // external activity, notify RA that the activity is unreferenced ((ResourceAdaptorActivityContextHandle) activityContextHandle) .getResourceAdaptorEntity() .getResourceAdaptorObject() .activityUnreferenced( activityContextHandle.getActivityHandle()); break; case NULL: // null activity unreferenced, end it ActivityContext ac = sleeContainer.getActivityContextFactory() .getActivityContext(activityContextHandle); if (ac != null) ac.endActivity(); break; default: // do nothing break; } }