/** {@inheritDoc} */ @Override public Set<Map.Entry<V1, V2>> entrySet() { return isEmpty() ? Collections.<Entry<V1,V2>>emptySet() : Collections.<Entry<V1, V2>>singleton(this); }
@Override public void onEvent(Event evt) { assert evt instanceof DiscoveryEvent && (evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT) : "Unexpected event: " + evt; DiscoveryEvent discoEvt = (DiscoveryEvent)evt; if (taskNodeId.equals(discoEvt.eventNode().id())) { lock.lock(); try { if (t.isEmpty()) { t.set("Node that originated task execution has left grid: " + taskNodeId, null); cond.signalAll(); } } finally { lock.unlock(); } } } };
@Override public void onEvent(Event evt) { assert evt instanceof DiscoveryEvent && (evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT) : "Unexpected event: " + evt; DiscoveryEvent discoEvt = (DiscoveryEvent)evt; if (resHolderId.equals(discoEvt.eventNode().id())) { lock.lock(); try { if (t.isEmpty()) { t.set("Node that originated task execution has left grid: " + resHolderId, null); cond.signalAll(); } } finally { lock.unlock(); } } } };
if (t.isEmpty()) { t.set(err, res);
@Override public void onMessage(UUID nodeId, Object msg, byte plc) { String err = null; GridTaskResultResponse res = null; if (!(msg instanceof GridTaskResultResponse)) err = "Received unexpected message: " + msg; else if (!nodeId.equals(resHolderId)) err = "Received task result response from unexpected node [resHolderId=" + resHolderId + ", nodeId=" + nodeId + ']'; else // Sender and message type are fine. res = (GridTaskResultResponse)msg; try { res.result(U.unmarshal(ctx, res.resultBytes(), U.resolveClassLoader(ctx.config()))); } catch (IgniteCheckedException e) { U.error(log, "Failed to unmarshal task result: " + res, e); } lock.lock(); try { if (t.isEmpty()) { t.set(err, res); cond.signalAll(); } } finally { lock.unlock(); } } };
if (firstErr.isEmpty()) firstErr.set(code, msg); else
long netTimeout = ctx.config().getNetworkTimeout(); if (t.isEmpty()) cond.await(netTimeout, MILLISECONDS); if (t.isEmpty()) t.set1("Timed out waiting for task result (consider increasing 'networkTimeout' " + "configuration property) [resHolderId=" + resHolderId + ", netTimeout=" + netTimeout + ']');
long netTimeout = ctx.config().getNetworkTimeout(); if (t.isEmpty()) cond.await(netTimeout, MILLISECONDS); if (t.isEmpty()) throw new IgniteCheckedException("Timed out waiting for job siblings (consider increasing" + "'networkTimeout' configuration property) [ses=" + ses + ", netTimeout=" + netTimeout + ']');
if (firstErr.isEmpty()) return new JdbcResponse(new JdbcBatchExecuteResult(updCnts, ClientListenerResponse.STATUS_SUCCESS, null));
/** * @param req Request. * @return Response. */ private ClientListenerResponse processStreamingBatch(OdbcStreamingBatchRequest req) { assert cliCtx.isStream(); // Send back only the first error. Others will be written to the log. IgniteBiTuple<Integer, String> firstErr = new IgniteBiTuple<>(); SqlFieldsQueryEx qry = null; for (OdbcQuery q : req.queries()) { if (q.sql() != null) { // If we have a new query string in the batch, if (qry != null) // then execute the previous sub-batch and create a new SqlFieldsQueryEx. processStreamingBatch(qry, firstErr); qry = makeQuery(req.schemaName(), q.sql()); } assert qry != null; qry.addBatchedArgs(q.args()); } if (qry != null) processStreamingBatch(qry, firstErr); if (req.last()) cliCtx.disableStreaming(); if (firstErr.isEmpty()) return new OdbcResponse(new OdbcStreamingBatchResult(req.order())); else { assert firstErr.getKey() != null; return new OdbcResponse(new OdbcStreamingBatchResult(firstErr.getKey(), firstErr.getValue(), req.order())); } }
/** {@inheritDoc} */ @Override public Set<Map.Entry<V1, V2>> entrySet() { return isEmpty() ? Collections.<Entry<V1,V2>>emptySet() : Collections.<Entry<V1, V2>>singleton(this); }
@Override public void onEvent(Event evt) { assert evt instanceof DiscoveryEvent && (evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT) : "Unexpected event: " + evt; DiscoveryEvent discoEvt = (DiscoveryEvent)evt; if (resHolderId.equals(discoEvt.eventNode().id())) { lock.lock(); try { if (t.isEmpty()) { t.set("Node that originated task execution has left grid: " + resHolderId, null); cond.signalAll(); } } finally { lock.unlock(); } } } };
@Override public void onEvent(Event evt) { assert evt instanceof DiscoveryEvent && (evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT) : "Unexpected event: " + evt; DiscoveryEvent discoEvt = (DiscoveryEvent)evt; if (taskNodeId.equals(discoEvt.eventNode().id())) { lock.lock(); try { if (t.isEmpty()) { t.set("Node that originated task execution has left grid: " + taskNodeId, null); cond.signalAll(); } } finally { lock.unlock(); } } } };
if (t.isEmpty()) { t.set(err, res);
@Override public void onMessage(UUID nodeId, Object msg, byte plc) { String err = null; GridTaskResultResponse res = null; if (!(msg instanceof GridTaskResultResponse)) err = "Received unexpected message: " + msg; else if (!nodeId.equals(resHolderId)) err = "Received task result response from unexpected node [resHolderId=" + resHolderId + ", nodeId=" + nodeId + ']'; else // Sender and message type are fine. res = (GridTaskResultResponse)msg; try { res.result(U.unmarshal(ctx, res.resultBytes(), U.resolveClassLoader(ctx.config()))); } catch (IgniteCheckedException e) { U.error(log, "Failed to unmarshal task result: " + res, e); } lock.lock(); try { if (t.isEmpty()) { t.set(err, res); cond.signalAll(); } } finally { lock.unlock(); } } };
if (firstErr.isEmpty()) firstErr.set(code, msg); else
long netTimeout = ctx.config().getNetworkTimeout(); if (t.isEmpty()) cond.await(netTimeout, MILLISECONDS); if (t.isEmpty()) t.set1("Timed out waiting for task result (consider increasing 'networkTimeout' " + "configuration property) [resHolderId=" + resHolderId + ", netTimeout=" + netTimeout + ']');
long netTimeout = ctx.config().getNetworkTimeout(); if (t.isEmpty()) cond.await(netTimeout, MILLISECONDS); if (t.isEmpty()) throw new IgniteCheckedException("Timed out waiting for job siblings (consider increasing" + "'networkTimeout' configuration property) [ses=" + ses + ", netTimeout=" + netTimeout + ']');
if (firstErr.isEmpty()) return new JdbcResponse(new JdbcBatchExecuteResult(updCnts, ClientListenerResponse.STATUS_SUCCESS, null)); else
/** * @param req Request. * @return Response. */ private ClientListenerResponse processStreamingBatch(OdbcStreamingBatchRequest req) { assert cliCtx.isStream(); // Send back only the first error. Others will be written to the log. IgniteBiTuple<Integer, String> firstErr = new IgniteBiTuple<>(); SqlFieldsQueryEx qry = null; for (OdbcQuery q : req.queries()) { if (q.sql() != null) { // If we have a new query string in the batch, if (qry != null) // then execute the previous sub-batch and create a new SqlFieldsQueryEx. processStreamingBatch(qry, firstErr); qry = makeQuery(req.schemaName(), q.sql()); } assert qry != null; qry.addBatchedArgs(q.args()); } if (qry != null) processStreamingBatch(qry, firstErr); if (req.last()) cliCtx.disableStreaming(); if (firstErr.isEmpty()) return new OdbcResponse(new OdbcStreamingBatchResult(req.order())); else { assert firstErr.getKey() != null; return new OdbcResponse(new OdbcStreamingBatchResult(firstErr.getKey(), firstErr.getValue(), req.order())); } }