@Override public void afterBulk(long executionId, BulkRequest request, BulkResponse response) { logger.trace("Executed bulk request with [{}] requests", request.numberOfActions()); if (response.hasFailures()) { final int[] failures = {0}; response.iterator().forEachRemaining(bir -> { if (bir.isFailed()) { failures[0]++; logger.debug("Error caught for [{}]/[{}]/[{}]: {}", bir.getIndex(), bir.getType(), bir.getId(), bir.getFailureMessage()); } }); logger.warn("Got [{}] failures of [{}] requests", failures[0], request.numberOfActions()); } }
@Override public void afterBulk(long executionId, BulkRequest request, BulkResponse response) { logger.trace("Executed bulk request with [{}] requests", request.numberOfActions()); if (response.hasFailures()) { final int[] failures = {0}; response.iterator().forEachRemaining(bir -> { if (bir.isFailed()) { failures[0]++; logger.debug("Error caught for [{}]/[{}]/[{}]: {}", bir.getIndex(), bir.getType(), bir.getId(), bir.getFailureMessage()); } }); logger.warn("Got [{}] failures of [{}] requests", failures[0], request.numberOfActions()); } }
@Override public void afterBulk(long executionId, BulkRequest request, BulkResponse response) { logger.trace("Executed bulk request with [{}] requests", request.numberOfActions()); if (response.hasFailures()) { final int[] failures = {0}; response.iterator().forEachRemaining(bir -> { if (bir.isFailed()) { failures[0]++; logger.debug("Error caught for [{}]/[{}]/[{}]: {}", bir.getIndex(), bir.getType(), bir.getId(), bir.getFailureMessage()); } }); logger.warn("Got [{}] failures of [{}] requests", failures[0], request.numberOfActions()); } }
private void setupElasticsearchToSucceed() throws IOException { final String documentId = UUID.randomUUID().toString(); final boolean isFailed = false; final int itemID = 0; // the write response will contain what is used as the document ID DocWriteResponse writeResponse = mock(DocWriteResponse.class); when(writeResponse.getId()).thenReturn(documentId); // define the item level response BulkItemResponse itemResponse = mock(BulkItemResponse.class); when(itemResponse.isFailed()).thenReturn(isFailed); when(itemResponse.getItemId()).thenReturn(itemID); when(itemResponse.getResponse()).thenReturn(writeResponse); List<BulkItemResponse> itemsResponses = Collections.singletonList(itemResponse); // define the bulk response to indicate success BulkResponse response = mock(BulkResponse.class); when(response.iterator()).thenReturn(itemsResponses.iterator()); when(response.hasFailures()).thenReturn(isFailed); // have the client return the mock response when(highLevelClient.bulk(any(BulkRequest.class))).thenReturn(response); }
private void setupElasticsearchToFail() throws IOException { final String errorMessage = "error message"; final Exception cause = new Exception("test exception"); final boolean isFailed = true; final int itemID = 0; // define the item failure BulkItemResponse.Failure failure = mock(BulkItemResponse.Failure.class); when(failure.getCause()).thenReturn(cause); when(failure.getMessage()).thenReturn(errorMessage); // define the item level response BulkItemResponse itemResponse = mock(BulkItemResponse.class); when(itemResponse.isFailed()).thenReturn(isFailed); when(itemResponse.getItemId()).thenReturn(itemID); when(itemResponse.getFailure()).thenReturn(failure); when(itemResponse.getFailureMessage()).thenReturn("error message"); List<BulkItemResponse> itemsResponses = Collections.singletonList(itemResponse); // define the bulk response to indicate failure BulkResponse response = mock(BulkResponse.class); when(response.iterator()).thenReturn(itemsResponses.iterator()); when(response.hasFailures()).thenReturn(isFailed); // have the client return the mock response when(highLevelClient.bulk(any(BulkRequest.class))).thenReturn(response); }
@Override public void afterBulk(long executionId, BulkRequest request, BulkResponse response) { logger.trace("Executed bulk request with [{}] requests", request.numberOfActions()); if (response.hasFailures()) { final int[] failures = {0}; response.iterator().forEachRemaining(bir -> { if (bir.isFailed()) { failures[0]++; logger.debug("Error caught for [{}]/[{}]/[{}]: {}", bir.getIndex(), bir.getType(), bir.getId(), bir.getFailureMessage()); } }); logger.warn("Got [{}] failures of [{}] requests", failures[0], request.numberOfActions()); } }
@Override public void afterBulk(long executionId, BulkRequest request, BulkResponse response) { logger.debug("afterBulk {} failures:{}", executionId, response.hasFailures()); if (response.hasFailures()) { long succeeded = 0; for (Iterator<BulkItemResponse> i = response.iterator(); i .hasNext(); ) { if (!i.next().isFailed()) { succeeded++; } } if (succeeded > 0) { succeededDocs.addAndGet(succeeded); } } else { succeededDocs.addAndGet(request.numberOfActions()); } bulkProcessed(); }
@Override public void writeToNoSQL(List<Map<String, Object>> entityList) { JSONArray array = JSONArray.fromObject(entityList); for (int i = 0; i < array.size(); i++) { IndexRequestBuilder builder = client.prepareIndex(index_name, index_type); if (getPrimaryKey() != null) { builder.setId(((JSONObject) array.get(i)).getString(getPrimaryKey())); } builder.setSource(array.get(i).toString()); bulkRequest.add(builder); } if (bulkRequest.numberOfActions() > 0) { long t1 = System.currentTimeMillis(); ListenableActionFuture<BulkResponse> action = bulkRequest.execute(); long t2 = System.currentTimeMillis(); BulkResponse response = action.actionGet(); for (Iterator<BulkItemResponse> iterator = response.iterator(); iterator.hasNext();) { BulkItemResponse e = (BulkItemResponse) iterator.next(); if (e.isFailed()) { throw new FailedCommunicationException("Insertion to ES failed."); } } log.info("Time taken to Write " + bulkRequest.numberOfActions() + " documents to ES :" + ((t2 - t1)) + " ms"); } }
eventCounter.scope("bulks_received").incrBy(1); eventCounter.scope("bulk_msec").incrBy(msec); Iterator<BulkItemResponse> bulkitemiterator = response.iterator(); int itemcount = 0; int acked = 0;