Ignore:
Timestamp:
11/14/11 11:47:19 (6 months ago)
Author:
xeraph
Branch:
default
Children:
535:c38ad740171a, 537:d8d85fe7264c
Message:

moved eof to separated rpc method (should be called by data session, otherwise, data loss will be occurred)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kraken-logdb/src/main/java/org/krakenapps/logdb/query/command/Rpc.java

    r532 r534  
    1919 
    2020        /** 
    21          * dist query guid 
     21         * mapreduce query guid 
    2222         */ 
    2323        private String guid; 
     
    2727        private RpcConnection datastream; 
    2828        private RpcSession datasession; 
     29        private boolean end; 
    2930 
    3031        public Rpc(String agentGuid, RpcConnection upstream, String guid, boolean sender) { 
     
    3738        @Override 
    3839        public void push(Map<String, Object> m) { 
     40                if (end) { 
     41                        logger.info("kraken logdb: loss (will be fixed) - {}", Primitive.stringify(m)); 
     42                        return; 
     43                } 
     44 
    3945                if (sender) { 
    4046                        if (datastream == null) { 
     
    7783        public void eof() { 
    7884                if (datasession != null) { 
     85                        try { 
     86                                datasession.call("eof", guid); 
     87                        } catch (Exception e) { 
     88                                logger.error("kraken logdb: eof fail for mapreduce query " + guid, e); 
     89                        } 
     90 
    7991                        datastream.close(); 
    8092                        datastream = null; 
     
    8496                logger.info("kraken logdb: closed rpc data stream for query guid [{}]", guid); 
    8597                super.eof(); 
     98                end = true; 
    8699        } 
    87100 
Note: See TracChangeset for help on using the changeset viewer.