Thanks Jaroslaw
 
I'll give it a try and keep you posted.
 
Can you confirm that the last block 
 
if ( sleepBetweenRetries ) {
wait(maxTimeToWait);
} else {
sleepBetweenRetries = true;
}

have to substitute the previous line of code
 
wait(SLEEP_TIME);
 
Regards
 
Olivier 


________________________________

        De : Jaroslaw Cwiklik [mailto:[email protected]] 
        Envoyé : mardi 24 mars 2009 15:16
        À : [email protected]
        Objet : Re: Error handling parameters in CPE with a Vinci processor
        
        

        Olivier, I suspect that what you see is a bug. A quick fix for this 
problem is below. Code in red is new. Apply it
        and send us a patch.
        
        private synchronized boolean 
activateProcessor(CasProcessorConfiguration aCasProcessorConfig,
        String aService, ProcessingContainer aProcessingContainer, boolean 
redeploy) 
        throws Exception {
        
        boolean tryAgain = true;
        int maxCount = aCasProcessorConfig.getMaxRestartCount();
        int maxTimeToWait = 
aCasProcessorConfig.getMaxTimeToWaitBetweenRetries();
        // Never sleep indefinitely. Override if the maxTimeToWait = 0
        if (maxTimeToWait == 0) {
        maxTimeToWait = WAIT_TIME;
        }
        // Initially dont sleep
        boolean sleepBetweenRetries = false;
        while (tryAgain) {
        try {
        if ( sleepBetweenRetries ) {
        wait(maxTimeToWait);
        } else {
        sleepBetweenRetries = true;
        }
        
        .....
        
        Jerry C
        ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        Jerry Cwiklik
        UIMA Extensions
        IBM T.J. Watson Research Center
        Hawtorne, NY, 10532
        Tel: 914-784-7665, T/L: 863-7665
        Email: [email protected]
        
        Inactive hide details for "Olivier Terrier" 
<[email protected]>"Olivier Terrier" <[email protected]>
        
        
        

                                "Olivier Terrier" <[email protected]> 

                                03/24/2009 06:14 AM 
        
        Please respond to
[email protected]



To

<[email protected]>        


cc

        


Subject

Error handling parameters in CPE with a Vinci processor 
                

        Hi all
        
        We are a little bit puzzled about the handling of the error handling 
parameters of a CPE that has a Vinci remote Cas processor with its 
"service-access" deployment parameter set to "random"
        
        We set the error parameters to the following values:
        
         <errorHandling>
         <errorRateThreshold action="continue" value="10/1000" /> 
         <maxConsecutiveRestarts action="continue" value="7" 
waitTimeBetweenRetries="10000" /> 
         <timeout max="600000" default="-1" /> 
         </errorHandling>
        
        And it looks like, when our Vinci processor fails for some reason, the 
CPE intents gracefully to reconnect up to N times (N=10 which is the value of 
the maxConsecutiveRestarts parameter) which is the expected behaviour. But the 
"waitTimeBetweenRetries" delay is not used at all. Apparently a delay near 2 
secs is used as you can see in the following log events:
        
        
        20/03/09 10:30:46 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP.initialize: 
ATTENTION: The system is unable to connect to the service host 
uima.consumer.DocumentConsumer.5019 through the service port . (Thread Name: 
[Procesing Pipeline#1 Thread]::)
        20/03/09 10:30:49 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP.initialize: 
ATTENTION: The system is unable to connect to the service host 
uima.consumer.DocumentConsumer.5019 through the service port . (Thread Name: 
[Procesing Pipeline#1 Thread]::)
        20/03/09 10:30:51 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP.initialize: 
ATTENTION: The system is unable to connect to the service host 
uima.consumer.DocumentConsumer.5019 through the service port . (Thread Name: 
[Procesing Pipeline#1 Thread]::)
        20/03/09 10:30:53 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP.initialize: 
ATTENTION: The system is unable to connect to the service host 
uima.consumer.DocumentConsumer.5019 through the service port . (Thread Name: 
[Procesing Pipeline#1 Thread]::)
        20/03/09 10:30:55 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP.initialize: 
ATTENTION: The system is unable to connect to the service host 
uima.consumer.DocumentConsumer.5019 through the service port . (Thread Name: 
[Procesing Pipeline#1 Thread]::)
        20/03/09 10:30:57 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP.initialize: 
ATTENTION: The system is unable to connect to the service host 
uima.consumer.DocumentConsumer.5019 through the service port . (Thread Name: 
[Procesing Pipeline#1 Thread]::)
        20/03/09 10:30:59 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP.initialize: 
ATTENTION: The system is unable to connect to the service host 
uima.consumer.DocumentConsumer.5019 through the service port . (Thread Name: 
[Procesing Pipeline#1 Thread]::)
        20/03/09 10:31:01 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.VinciTAP.initialize: 
ATTENTION: The system is unable to connect to the service host 
uima.consumer.DocumentConsumer.5019 through the service port . (Thread Name: 
[Procesing Pipeline#1 Thread]::)
        20/03/09 10:31:01 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.vinci.VinciCasProcessorDeployer.initialize:
 ATTENTION: Service Connection Exception. Max number of retries reached. 
(Thread Name: [Procesing Pipeline#1 Thread]::) Service Name: 
uima.consumer.DocumentConsumer.5019 Max Retry Count: -1
        20/03/09 10:31:01 - 49: 
org.apache.uima.collection.impl.cpm.container.deployer.vinci.VinciCasProcessorDeployer.initialize:
 ATTENTION: The Max Restart Count value 7 exceeds the allowed limit. (Thread 
Name: [Procesing Pipeline#1 Thread]::) Service Name: 
consumer_1224757309781_repo5019_27 
        
        
        I had a look at the implementation of the class 
org.apache.uima.collection.impl.cpm.container.deployer.vinci.VinciCasProcessorDeployer
        
        And actually in the method
        
         private int attachToServices(boolean redeploy, String aServiceUri, int 
howMany,
                 ProcessingContainer aProcessingContainer) throws Exception;
        
        It is clear that the "sleepBetweenRetries" only occurs if the Vinci Cas 
processor is in "exclusive" mode.
        On the contrary (random mode) the method calls directly the method
        
         private synchronized boolean 
activateProcessor(CasProcessorConfiguration aCasProcessorConfig,
                 String aService, ProcessingContainer aProcessingContainer, 
boolean redeploy);
        
        Which uses a hard coded timeout of 1 sec (SLEEP_TIME) between each 
retries instead of the waitTimeBetweenRetries.
        
        Someone can tell me if this is the intended behaviour and why it is not 
consistent in exclusive/random modes?
        
        Thanks in advance
        
        Olivier Terrier
        Core Products Software Development Manager
        TEMIS S.A. 
        Text Intelligence in your daily business
        5, Rue du Tour de l'Eau
        38400 Saint Martin d'Hères - France
        Direct: +33 (0)4 56 38 24 06
        Mobile: +33 (0)6 60 36 93 11
        Visit our website! www.temis.com
        
        
        
        

Reply via email to