/** {@inheritDoc} */ @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") @Override protected void onClose() throws IOException { if (closeGuard.compareAndSet(false, true)) { super.onClose(); metrics.decrementFilesOpenedForWrite(); if (evts.isRecordable(EVT_GGFS_FILE_CLOSED_WRITE)) evts.record(new GridGgfsEvent(path, localNode(), EVT_GGFS_FILE_CLOSED_WRITE, bytes())); } } }
/** {@inheritDoc} */ @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") @Override public void close() throws IOException { if (closeGuard.compareAndSet(false, true)) { super.close(); metrics.decrementFilesOpenedForRead(); if (evts.isRecordable(EVT_GGFS_FILE_CLOSED_READ)) evts.record(new GridGgfsEvent(path, localNode(), EVT_GGFS_FILE_CLOSED_READ, bytes())); } } }
/** {@inheritDoc} */ @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") @Override public void close() throws IOException { if (closeGuard.compareAndSet(false, true)) { super.close(); metrics.decrementFilesOpenedForRead(); if (evts.isRecordable(EVT_GGFS_FILE_CLOSED_READ)) evts.record(new GridGgfsEvent(path, localNode(), EVT_GGFS_FILE_CLOSED_READ, bytes())); } } }
/** {@inheritDoc} */ @SuppressWarnings("NonSynchronizedMethodOverridesSynchronizedMethod") @Override protected void onClose() throws IOException { if (closeGuard.compareAndSet(false, true)) { super.onClose(); metrics.decrementFilesOpenedForWrite(); if (evts.isRecordable(EVT_GGFS_FILE_CLOSED_WRITE)) evts.record(new GridGgfsEvent(path, localNode(), EVT_GGFS_FILE_CLOSED_WRITE, bytes())); } } }
/** {@inheritDoc} */ @Override public void recordLocal(GridEvent evt) { A.notNull(evt, "evt"); if (evt.type() <= 1000) throw new IllegalArgumentException("All types in range from 1 to 1000 are reserved for " + "internal GridGain events [evtType=" + evt.type() + ", evt=" + evt + ']'); guard(); try { ctx.event().record(evt); } finally { unguard(); } }
@Override public void recordEvent(GridEvent evt) { A.notNull(evt, "evt"); if (ctx.event().isRecordable(evt.type())) ctx.event().record(evt); }
@Override public void onEvent(GridEvent evt) { GridDiscoveryEvent discoEvt = (GridDiscoveryEvent)evt; for (String cacheName : nearOrClientCaches) { if (ctx.discovery().cacheAffinityNodes(cacheName, discoEvt.topologyVersion()).isEmpty()) { if (ctx.event().isRecordable(GridEventType.EVT_CACHE_DATA_LOST)) { ctx.event().record(new GridCacheEvent(cacheName, ctx.discovery().localNode(), discoEvt.eventNode(), "All data nodes left", GridEventType.EVT_CACHE_DATA_LOST, 0, false, null, null, null, null, false, null, false, null, null, null)); } } } } }, GridEventType.EVT_NODE_LEFT, GridEventType.EVT_NODE_FAILED);
/** * @param type Event type. * @param key Checkpoint key. */ private void record(int type, String key) { if (ctx.event().isRecordable(type)) { String msg; if (type == EVT_CHECKPOINT_SAVED) msg = "Checkpoint saved: " + key; else if (type == EVT_CHECKPOINT_LOADED) msg = "Checkpoint loaded: " + key; else { assert type == EVT_CHECKPOINT_REMOVED : "Invalid event type: " + type; msg = "Checkpoint removed: " + key; } ctx.event().record(new GridCheckpointEvent(ctx.discovery().localNode(), msg, type, key)); } }
@Override public void onExecution() { if (ctx.event().isRecordable(EVT_CACHE_QUERY_EXECUTED)) { ctx.event().record(new GridCacheQueryExecutedEvent<>( ctx.discovery().localNode(), "Continuous query executed.", EVT_CACHE_QUERY_EXECUTED, GridCacheQueryType.CONTINUOUS, cacheName, null, null, null, filter, null, nodeId, taskName() )); } }
/** * Adds partition unload event. * * @param part Partition. */ public void addUnloadEvent(int part) { if (!cctx.events().isRecordable(EVT_CACHE_PRELOAD_PART_UNLOADED)) LT.warn(log, null, "Added event without checking if event is recordable: " + U.gridEventName(EVT_CACHE_PRELOAD_PART_UNLOADED)); cctx.gridEvents().record(new GridCachePreloadingEvent(cctx.name(), cctx.localNode(), "Cache unloading event.", EVT_CACHE_PRELOAD_PART_UNLOADED, part, null, 0, 0)); }
/** {@inheritDoc} */ @Override public void onDeployed(Class<?> cls) { assert !Thread.holdsLock(mux); boolean isTask = isTask(cls); String msg = (isTask ? "Task" : "Class") + " was deployed in SHARED or CONTINUOUS mode: " + cls; int type = isTask ? EVT_TASK_DEPLOYED : EVT_CLASS_DEPLOYED; if (ctx.event().isRecordable(type)) { GridDeploymentEvent evt = new GridDeploymentEvent(); evt.node(ctx.discovery().localNode()); evt.message(msg); evt.type(type); evt.alias(cls.getName()); ctx.event().record(evt); } if (log.isInfoEnabled()) log.info(msg); }
evts.record(new GridGgfsEvent(path, localNode(), EVT_GGFS_META_UPDATED, props));
/** * Called for every deployed class. * * @param cls Deployed class. * @param recordEvt Flag indicating whether to record events. */ void recordDeployed(Class<?> cls, boolean recordEvt) { assert !Thread.holdsLock(mux); boolean isTask = isTask(cls); String msg = (isTask ? "Task" : "Class") + " was deployed in Private or Isolated mode: " + cls; if (recordEvt && ctx.event().isRecordable(isTask(cls) ? EVT_TASK_DEPLOYED : EVT_CLASS_DEPLOYED)) { GridDeploymentEvent evt = new GridDeploymentEvent(); // Record task event. evt.type(isTask ? EVT_TASK_DEPLOYED : EVT_CLASS_DEPLOYED); evt.node(sndNode); evt.message(msg); evt.alias(cls.getName()); ctx.event().record(evt); } if (log.isInfoEnabled()) log.info(msg); }
/** * Adds preloading event. * * @param part Partition. * @param type Event type. * @param discoNode Discovery node. * @param discoType Discovery event type. * @param discoTs Discovery event timestamp. */ public void addPreloadEvent(int part, int type, GridNode discoNode, int discoType, long discoTs) { assert discoNode != null; assert type > 0; assert discoType > 0; assert discoTs > 0; if (!cctx.events().isRecordable(type)) LT.warn(log, null, "Added event without checking if event is recordable: " + U.gridEventName(type)); cctx.gridEvents().record(new GridCachePreloadingEvent(cctx.name(), cctx.localNode(), "Cache preloading event.", type, part, discoNode, discoType, discoTs)); }
/** * @param evtType Event type. * @param msg Event message. */ private void recordTaskEvent(int evtType, String msg) { if (!internal && ctx.event().isRecordable(evtType)) { GridEvent evt = new GridTaskEvent( ctx.discovery().localNode(), msg, evtType, ses.getId(), ses.getTaskName(), ses.getTaskClassName(), internal, subjId); ctx.event().record(evt); } }
/** * @param evtType Event type. * @param msg Message. */ private void recordEvent(int evtType, @Nullable String msg) { assert ctx.event().isRecordable(evtType); assert !internal; GridJobEvent evt = new GridJobEvent(); evt.jobId(ses.getJobId()); evt.message(msg); evt.node(ctx.discovery().localNode()); evt.taskName(ses.getTaskName()); evt.taskClassName(ses.getTaskClassName()); evt.taskSessionId(ses.getId()); evt.type(evtType); evt.taskNode(taskNode); evt.taskSubjectId(ses.subjectId()); ctx.event().record(evt); }
/** * Records deploy event. * * @param cls Deployed class. * @param clsLdr Class loader. * @param recordEvt Flag indicating whether to record events. */ @SuppressWarnings({"unchecked"}) private void recordDeployFailed(Class<?> cls, ClassLoader clsLdr, boolean recordEvt) { assert cls != null; assert clsLdr != null; boolean isTask = isTask(cls); String msg = "Failed to deploy " + (isTask ? "task" : "class") + " [cls=" + cls + ", clsLdr=" + clsLdr + ']'; if (recordEvt && ctx.event().isRecordable(isTask ? EVT_CLASS_DEPLOY_FAILED : EVT_TASK_DEPLOY_FAILED)) { String taskName = isTask ? U.getTaskName((Class<? extends GridComputeTask<?, ?>>)cls) : null; GridDeploymentEvent evt = new GridDeploymentEvent(); evt.message(msg); evt.node(ctx.discovery().localNode()); evt.type(isTask(cls) ? EVT_CLASS_DEPLOY_FAILED : EVT_TASK_DEPLOY_FAILED); evt.alias(taskName); ctx.event().record(evt); } if (log.isInfoEnabled()) log.info(msg); }
/** * Records deploy event. * <p> * This needs to be called in synchronized block. * * @param cls Deployed class. * @param alias Class alias. * @param recordEvt Flag indicating whether to record events. */ private void recordDeploy(Class<?> cls, String alias, boolean recordEvt) { assert cls != null; boolean isTask = isTask(cls); String msg = (isTask ? "Task" : "Class") + " locally deployed: " + cls; if (recordEvt && ctx.event().isRecordable(isTask ? EVT_TASK_DEPLOYED : EVT_CLASS_DEPLOYED)) { GridDeploymentEvent evt = new GridDeploymentEvent(); evt.message(msg); evt.node(ctx.discovery().localNode()); evt.type(isTask ? EVT_TASK_DEPLOYED : EVT_CLASS_DEPLOYED); evt.alias(alias); ctx.event().record(evt); } // Don't record JDK or Grid classes. if (U.isGrid(cls) || U.isJdk(cls)) return; if (log.isInfoEnabled()) log.info(msg); }
/** * @param evtType Event type. * @param jobId Job ID. * @param evtNode Event node. * @param msg Event message. */ private void recordJobEvent(int evtType, GridUuid jobId, GridNode evtNode, String msg) { if (ctx.event().isRecordable(evtType)) { GridJobEvent evt = new GridJobEvent(); evt.message(msg); evt.node(ctx.discovery().localNode()); evt.taskName(ses.getTaskName()); evt.taskClassName(ses.getTaskClassName()); evt.taskSessionId(ses.getId()); evt.taskNode(evtNode); evt.jobId(jobId); evt.type(evtType); evt.taskSubjectId(ses.subjectId()); ctx.event().record(evt); } }
/** * Records undeploy event. * * @param dep Undeployed class loader. */ private void recordUndeploy(GridDeployment dep) { assert dep.undeployed(); if (ctx.event().isRecordable(EVT_TASK_UNDEPLOYED) || ctx.event().isRecordable(EVT_CLASS_UNDEPLOYED)) { for (Class<?> cls : dep.deployedClasses()) { boolean isTask = isTask(cls); String msg = isTask ? "Task locally undeployed: " + cls : "Class locally undeployed: " + cls; if (ctx.event().isRecordable(isTask ? EVT_TASK_UNDEPLOYED : EVT_CLASS_UNDEPLOYED)) { GridDeploymentEvent evt = new GridDeploymentEvent(); evt.message(msg); evt.node(ctx.discovery().localNode()); evt.type(isTask ? EVT_TASK_UNDEPLOYED : EVT_CLASS_UNDEPLOYED); evt.alias(getAlias(dep, cls)); ctx.event().record(evt); } if (log.isInfoEnabled()) log.info(msg); } } }