当前位置: 首页>>代码示例>>Java>>正文


Java ShardResponse.getException方法代码示例

本文整理汇总了Java中org.apache.solr.handler.component.ShardResponse.getException方法的典型用法代码示例。如果您正苦于以下问题:Java ShardResponse.getException方法的具体用法?Java ShardResponse.getException怎么用?Java ShardResponse.getException使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.solr.handler.component.ShardResponse的用法示例。


在下文中一共展示了ShardResponse.getException方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: collectShardResponses

import org.apache.solr.handler.component.ShardResponse; //导入方法依赖的package包/类
private void collectShardResponses(NamedList results, boolean abortOnError,
                                   String msgOnError,
                                   ShardHandler shardHandler) {
  ShardResponse srsp;
  do {
    srsp = shardHandler.takeCompletedOrError();
    if (srsp != null) {
      processResponse(results, srsp);
      Throwable exception = srsp.getException();
      if (abortOnError && exception != null)  {
        // drain pending requests
        while (srsp != null)  {
          srsp = shardHandler.takeCompletedOrError();
        }
        throw new SolrException(ErrorCode.SERVER_ERROR, msgOnError, exception);
      }
    }
  } while (srsp != null);
}
 
开发者ID:europeana,项目名称:search,代码行数:20,代码来源:OverseerCollectionProcessor.java

示例2: processResponse

import org.apache.solr.handler.component.ShardResponse; //导入方法依赖的package包/类
private void processResponse(NamedList results, ShardResponse srsp) {
  Throwable e = srsp.getException();
  if (e != null) {
    log.error("Error from shard: " + srsp.getShard(), e);
    
    SimpleOrderedMap failure = (SimpleOrderedMap) results.get("failure");
    if (failure == null) {
      failure = new SimpleOrderedMap();
      results.add("failure", failure);
    }

    failure.add(srsp.getNodeName(), e.getClass().getName() + ":" + e.getMessage());
    
  } else {
    
    SimpleOrderedMap success = (SimpleOrderedMap) results.get("success");
    if (success == null) {
      success = new SimpleOrderedMap();
      results.add("success", success);
    }
    
    success.add(srsp.getNodeName(), srsp.getSolrResponse().getResponse());
  }
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:25,代码来源:OverseerCollectionProcessor.java

示例3: collectShardResponses

import org.apache.solr.handler.component.ShardResponse; //导入方法依赖的package包/类
private void collectShardResponses(NamedList results, boolean abortOnError, String msgOnError) {
  ShardResponse srsp;
  do {
    srsp = shardHandler.takeCompletedOrError();
    if (srsp != null) {
      processResponse(results, srsp);
      Throwable exception = srsp.getException();
      if (abortOnError && exception != null)  {
        // drain pending requests
        while (srsp != null)  {
          srsp = shardHandler.takeCompletedOrError();
        }
        throw new SolrException(ErrorCode.SERVER_ERROR, msgOnError, exception);
      }
    }
  } while (srsp != null);
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:18,代码来源:OverseerCollectionProcessor.java

示例4: processResponse

import org.apache.solr.handler.component.ShardResponse; //导入方法依赖的package包/类
private void processResponse(NamedList results, ShardResponse srsp) {
  Throwable e = srsp.getException();
  String nodeName = srsp.getNodeName();
  SolrResponse solrResponse = srsp.getSolrResponse();
  String shard = srsp.getShard();

  processResponse(results, e, nodeName, solrResponse, shard);
}
 
开发者ID:europeana,项目名称:search,代码行数:9,代码来源:OverseerCollectionProcessor.java

示例5: handleResponse

import org.apache.solr.handler.component.ShardResponse; //导入方法依赖的package包/类
private boolean handleResponse(ShardResponse srsp) {
  ShardRequest sreq = srsp.getShardRequest();

  if (srsp.getException() != null) {

    // TODO: look at this more thoroughly - we don't want
    // to fail on connection exceptions, but it may make sense
    // to determine this based on the number of fails
    //
    // If the replica went down between asking for versions and asking for specific updates, that
    // shouldn't be treated as success since we counted on getting those updates back (and avoided
    // redundantly asking other replicas for them).
    if (cantReachIsSuccess && sreq.purpose == 1 && srsp.getException() instanceof SolrServerException) {
      Throwable solrException = ((SolrServerException) srsp.getException())
          .getRootCause();
      boolean connectTimeoutExceptionInChain = connectTimeoutExceptionInChain(srsp.getException());
      if (connectTimeoutExceptionInChain || solrException instanceof ConnectException || solrException instanceof ConnectTimeoutException
          || solrException instanceof NoHttpResponseException || solrException instanceof SocketException) {
        log.warn(msg() + " couldn't connect to " + srsp.getShardAddress() + ", counting as success");

        return true;
      }
    }
    
    if (cantReachIsSuccess && sreq.purpose == 1 && srsp.getException() instanceof SolrException && ((SolrException) srsp.getException()).code() == 503) {
      log.warn(msg() + " got a 503 from " + srsp.getShardAddress() + ", counting as success");
      return true;
    }
    
    if (cantReachIsSuccess && sreq.purpose == 1 && srsp.getException() instanceof SolrException && ((SolrException) srsp.getException()).code() == 404) {
      log.warn(msg() + " got a 404 from " + srsp.getShardAddress() + ", counting as success. " +
          "Perhaps /get is not registered?");
      return true;
    }
    
    // TODO: we should return the above information so that when we can request a recovery through zookeeper, we do
    // that for these nodes
    
    // TODO: at least log???
    // srsp.getException().printStackTrace(System.out);
   
    log.warn(msg() + " exception talking to " + srsp.getShardAddress() + ", failed", srsp.getException());
    
    return false;
  }

  if (sreq.purpose == 1) {
    return handleVersions(srsp);
  } else {
    return handleUpdates(srsp);
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:53,代码来源:PeerSync.java

示例6: handleResponse

import org.apache.solr.handler.component.ShardResponse; //导入方法依赖的package包/类
private boolean handleResponse(ShardResponse srsp) {
  ShardRequest sreq = srsp.getShardRequest();

  if (srsp.getException() != null) {

    // TODO: look at this more thoroughly - we don't want
    // to fail on connection exceptions, but it may make sense
    // to determine this based on the number of fails
    //
    // If the replica went down between asking for versions and asking for specific updates, that
    // shouldn't be treated as success since we counted on getting those updates back (and avoided
    // redundantly asking other replicas for them).
    if (cantReachIsSuccess && sreq.purpose == 1 && srsp.getException() instanceof SolrServerException) {
      Throwable solrException = ((SolrServerException) srsp.getException())
          .getRootCause();
      if (solrException instanceof ConnectException || solrException instanceof ConnectTimeoutException
          || solrException instanceof NoHttpResponseException || solrException instanceof SocketException) {
        log.warn(msg() + " couldn't connect to " + srsp.getShardAddress() + ", counting as success");

        return true;
      }
    }
    
    if (cantReachIsSuccess && sreq.purpose == 1 && srsp.getException() instanceof SolrException && ((SolrException) srsp.getException()).code() == 503) {
      log.warn(msg() + " got a 503 from " + srsp.getShardAddress() + ", counting as success");
      return true;
    }
    
    if (cantReachIsSuccess && sreq.purpose == 1 && srsp.getException() instanceof SolrException && ((SolrException) srsp.getException()).code() == 404) {
      log.warn(msg() + " got a 404 from " + srsp.getShardAddress() + ", counting as success");
      return true;
    }
    // TODO: at least log???
    // srsp.getException().printStackTrace(System.out);
   
    log.warn(msg() + " exception talking to " + srsp.getShardAddress() + ", failed", srsp.getException());
    
    return false;
  }

  if (sreq.purpose == 1) {
    return handleVersions(srsp);
  } else {
    return handleUpdates(srsp);
  }
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:47,代码来源:PeerSync.java

示例7: syncToMe

import org.apache.solr.handler.component.ShardResponse; //导入方法依赖的package包/类
private void syncToMe(ZkController zkController, String collection,
    String shardId, ZkNodeProps leaderProps, CoreDescriptor cd) {
  
  // sync everyone else
  // TODO: we should do this in parallel at least
  List<ZkCoreNodeProps> nodes = zkController
      .getZkStateReader()
      .getReplicaProps(collection, shardId,
          zkController.getCoreNodeName(cd),
          leaderProps.getStr(ZkStateReader.CORE_NAME_PROP));
  if (nodes == null) {
    log.info(ZkCoreNodeProps.getCoreUrl(leaderProps) + " has no replicas");
    return;
  }

  ZkCoreNodeProps zkLeader = new ZkCoreNodeProps(leaderProps);
  for (ZkCoreNodeProps node : nodes) {
    try {
      log.info(ZkCoreNodeProps.getCoreUrl(leaderProps) + ": try and ask " + node.getCoreUrl() + " to sync");
      
      requestSync(node.getBaseUrl(), node.getCoreUrl(), zkLeader.getCoreUrl(), node.getCoreName());
      
    } catch (Exception e) {
      SolrException.log(log, "Error syncing replica to leader", e);
    }
  }
  
  
  for(;;) {
    ShardResponse srsp = shardHandler.takeCompletedOrError();
    if (srsp == null) break;
    boolean success = handleResponse(srsp);
    if (srsp.getException() != null) {
      SolrException.log(log, "Sync request error: " + srsp.getException());
    }
    
    if (!success) {
       try {
         log.info(ZkCoreNodeProps.getCoreUrl(leaderProps) + ": Sync failed - asking replica (" + srsp.getShardAddress() + ") to recover.");
         if (isClosed) {
           log.info("We have been closed, don't request that a replica recover");
         } else {
           requestRecovery(leaderProps, ((ShardCoreRequest)srsp.getShardRequest()).baseUrl, ((ShardCoreRequest)srsp.getShardRequest()).coreName);
         }
       } catch (Throwable t) {
         SolrException.log(log, ZkCoreNodeProps.getCoreUrl(leaderProps) + ": Could not tell a replica to recover", t);
       }
    } else {
      log.info(ZkCoreNodeProps.getCoreUrl(leaderProps) + ": " + " sync completed with " + srsp.getShardAddress());
    }
    
  }

}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:55,代码来源:SyncStrategy.java


注:本文中的org.apache.solr.handler.component.ShardResponse.getException方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。