pengyu0929 opened a new issue #646: No such omega callback found for service
URL: https://github.com/apache/servicecomb-pack/issues/646
 
 
   ```java
    @Override
     public void compensate(TxEvent event) {
       Map<String, OmegaCallback> serviceCallbacks = 
callbacks.getOrDefault(event.serviceName(), emptyMap());
   
       OmegaCallback omegaCallback = serviceCallbacks.get(event.instanceId());
       if (omegaCallback == null) {
         LOG.info("Cannot find the service with the instanceId {}, call the 
other instance.", event.instanceId());
         // TODO extract an Interface to let user define the serviceCallback 
instance pick strategy
         Iterator<OmegaCallback> iterator = new 
ArrayList<>(serviceCallbacks.values()).iterator();
         if(iterator.hasNext()) {
           omegaCallback = iterator.next();
         }
       }
       if(omegaCallback==null){
         throw new AlphaException("No such omega callback found for service " + 
event.serviceName());
       }
   
       try {
         omegaCallback.compensate(event);
       } catch (Exception e) {
         serviceCallbacks.values().remove(omegaCallback);
         throw e;
       }
     }
   ```
   在执行` omegaCallback.compensate(event` 
时,如果因为网络的原因没有找到服务实例,alpha认为当方面认为omega已经断开连接了,之后把omega从map中删除,但是omega在这种情况下并不会重连alpha,之后alpha会通过队列一直回调omega的补偿方法,导致一直报错,这种情况正确吗?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to