/** * Starts the remote query. * * @param reader Reader. * @param events Events. * @return Result. */ private Collection<Event> startRemoteQuery(BinaryRawReaderEx reader, IgniteEvents events) { Object pred = reader.readObjectDetached(); long timeout = reader.readLong(); int[] types = readEventTypes(reader); PlatformEventFilterListener filter = platformCtx.createRemoteEventFilter(pred, types); return events.remoteQuery(filter, timeout); }
/** * Querying events here throws {@link IgniteCheckedException}. * This is correct behavior. * * @param g Grid. * @param filter Event filter. */ private void executeFail(ClusterGroup g, IgnitePredicate<Event> filter) { try { g.ignite().events(g).remoteQuery(filter, 0); assert false; // Exception must be thrown. } catch (IgniteException e) { // Throwing exception is a correct behaviour. info("Received correct exception: " + e); } }
public void testRemoteNodeEventStorage() throws Exception { try { grid().events().remoteQuery(F.<Event>alwaysTrue(), 0);
/** * @throws Exception In case of error. */ @Test public void testRemoteAndLocalNodeEventStorage() throws Exception { IgnitePredicate<Event> filter = new TestEventFilter(); generateEvents(ignite1); Collection<Event> evts = ignite1.events().remoteQuery(filter, 0); Collection<Event> locEvts = ignite1.events().localQuery(filter); Collection<Event> remEvts = events(ignite1.cluster().forPredicate(F.remoteNodes(ignite1.cluster().localNode().id()))).remoteQuery(filter, 0); assert evts != null; assert locEvts != null; assert remEvts != null; assert evts.size() == 1; assert locEvts.size() == 1; assert remEvts.isEmpty(); }
/** * @param depMode deployment mode. * @throws Exception If failed. */ private void processFilterTest(DeploymentMode depMode) throws Exception { this.depMode = depMode; try { Ignite ignite = startGrid(1); startGrid(2); ignite.compute().execute(GridP2PTestTask.class, 777); // Create events. String path = GridTestProperties.getProperty("p2p.uri.cls"); GridTestExternalClassLoader ldr = new GridTestExternalClassLoader(new URL[] {new URL(path)}); Class filter1 = ldr.loadClass("org.apache.ignite.tests.p2p.GridP2PEventFilterExternalPath1"); Class filter2 = ldr.loadClass("org.apache.ignite.tests.p2p.GridP2PEventFilterExternalPath2"); ldr.setTimeout(100); ignite.events().remoteQuery((IgnitePredicate<Event>) filter1.newInstance(), 0); ldr.setTimeout(2000); try { ignite.events().remoteQuery((IgnitePredicate<Event>) filter2.newInstance(), 0); assert false; // Timeout exception must be thrown. } catch (IgniteException ignored) { // Throwing exception is a correct behaviour. } } finally { stopAllGrids(); } }
/** * @throws Exception In case of error. */ @Test public void testRemoteNodeEventStorage() throws Exception { IgnitePredicate<Event> filter = new TestEventFilter(); generateEvents(ignite2); ClusterGroup prj = ignite1.cluster().forPredicate(F.remoteNodes(ignite1.cluster().localNode().id())); Collection<Event> evts = events(prj).remoteQuery(filter, 0); assert evts != null; assert evts.size() == 1; }
/** * @throws Exception If failed. */ @Test public void testResultFailed() throws Exception { Ignite ignite = G.ignite(getTestIgniteInstanceName()); ignite.compute().localDeployTask(GridTaskFailedTestTask.class, GridTaskFailedTestTask.class.getClassLoader()); ComputeTaskFuture<?> fut = executeAsync(ignite.compute(), GridTaskFailedTestTask.class.getName(), FailType.RESULT); try { fut.get(); assert false; } catch (IgniteException e) { info("Got expected grid exception: " + e); } IgniteUuid sesId = fut.getTaskSession().getId(); // Query for correct events. List<Event> evts = ignite.events().remoteQuery(new TaskFailedEventFilter(sesId), 0); assert evts.size() == 1; info("Task failed event: " + evts.get(0)); }
/** * @throws Exception If failed. */ @Test public void testReduceFailed() throws Exception { Ignite ignite = G.ignite(getTestIgniteInstanceName()); ignite.compute().localDeployTask(GridTaskFailedTestTask.class, GridTaskFailedTestTask.class.getClassLoader()); ComputeTaskFuture<?> fut = executeAsync(ignite.compute(), GridTaskFailedTestTask.class.getName(), FailType.RESULT); try { fut.get(); assert false; } catch (IgniteException e) { info("Got expected grid exception: " + e); } IgniteUuid sesId = fut.getTaskSession().getId(); // Query for correct events. List<Event> evts = ignite.events().remoteQuery(new TaskFailedEventFilter(sesId), 0); assert evts.size() == 1; info("Task failed event: " + evts.get(0)); }
/** * @throws Exception If failed. */ @Test public void testExecuteFailed() throws Exception { Ignite ignite = G.ignite(getTestIgniteInstanceName()); ignite.compute().localDeployTask(GridTaskFailedTestTask.class, GridTaskFailedTestTask.class.getClassLoader()); ComputeTaskFuture<?> fut = executeAsync(ignite.compute(), GridTaskFailedTestTask.class.getName(), FailType.EXECUTE); try { fut.get(); assert false; } catch (IgniteException e) { info("Got expected grid exception: " + e); } IgniteUuid sesId = fut.getTaskSession().getId(); // Query for correct events. List<Event> evts = ignite.events().remoteQuery(new TaskFailedEventFilter(sesId), 0); info("Job failed event: " + evts.get(0)); assert evts.size() == 1; }
/** * @throws Exception If failed. */ @Test public void testMapFailed() throws Exception { Ignite ignite = G.ignite(getTestIgniteInstanceName()); ignite.compute().localDeployTask(GridTaskFailedTestTask.class, GridTaskFailedTestTask.class.getClassLoader()); ComputeTaskFuture<?> fut = executeAsync(ignite.compute(), GridTaskFailedTestTask.class.getName(), FailType.MAP); try { fut.get(); assert false; } catch (IgniteException e) { info("Got expected grid exception: " + e); } IgniteUuid sesId = fut.getTaskSession().getId(); // Query for correct events. List<Event> evts = ignite.events().remoteQuery(new TaskFailedEventFilter(sesId), 0); assert evts.size() == 1; info("Task failed event: " + evts.get(0)); }
events(ignite1.cluster().forPredicate(F.<ClusterNode>alwaysFalse())).remoteQuery(filter, 0);
/** * Starts the remote query. * * @param reader Reader. * @param events Events. * @return Result. */ private Collection<Event> startRemoteQuery(BinaryRawReaderEx reader, IgniteEvents events) { Object pred = reader.readObjectDetached(); long timeout = reader.readLong(); int[] types = readEventTypes(reader); PlatformEventFilterListener filter = platformCtx.createRemoteEventFilter(pred, types); return events.remoteQuery(filter, timeout); }