Noted and reported a jira [1] to cover up fixing the issue. [1] https://wso2.org/jira/browse/ESBJAVA-4625
Regards, Dilshani On Thu, May 19, 2016 at 10:47 AM, Nuwan Wimalasekara <nuw...@wso2.com> wrote: > HI Dilshani, > > On Wed, May 18, 2016 at 6:27 PM, Dilshani Subasinghe <dilsh...@wso2.com> > wrote: > >> Hi Nuwan, >> >> Thanks a lot for your clarification. But need more explanation on your >> comments. >> >> 1. *if the user define only transport.jms.InitialReconnectDuration, It >> will always be multiplied by the transport.jms.ReconnectProgressFactor >> until it reach to transport.jms.MaxReconnectDuration. * >> >> We can define "transport.jms.MaxReconnectDuration" as 30 seconds and >> shut down the jms broker. It may increase retry time interval by >> ReconnectProgressFactor and doesn't consider about MaxReconnectDuration. >> > > The log is not correct. It waits for MaxReconnectDuration. But logs show > incorrect value. Thanks for reporting the issue. Will fix the logs. > >> >> As I know MaxReconnectDuration is used to define upper level of >> reconnect time limit. I don't understand exact relationship between " >> ReconnectProgressFactor" and "MaxReconnectDuration". Can you verify it >> further? >> >> When include "<parameter name ="transport.jms.MaxReconnectDuration" >> locked="false">30000</parameter>" and testing with exact scenario you can >> find logs as follows: >> >> [2016-05-18 18:01:21,257] ERROR - ServiceTaskManager Reconnection attempt >> : 1 for service : QueueProxy failed. Next retry in 20 seconds >> [2016-05-18 18:01:21,258] ERROR - ServiceTaskManager Reconnection attempt >> : 1 for service : TopicProxy failed. Next retry in 20 seconds >> [2016-05-18 18:01:51,262] ERROR - ServiceTaskManager Reconnection attempt >> : 2 for service : QueueProxy failed. Next retry in 40 seconds >> [2016-05-18 18:01:51,263] ERROR - ServiceTaskManager Reconnection attempt >> : 2 for service : TopicProxy failed. Next retry in 40 seconds >> [2016-05-18 18:02:31,269] ERROR - ServiceTaskManager Reconnection attempt >> : 3 for service : QueueProxy failed. Next retry in 60 seconds >> [2016-05-18 18:02:31,271] ERROR - ServiceTaskManager Reconnection attempt >> : 3 for service : TopicProxy failed. Next retry in 60 seconds >> >> 2. >> >> >> *if the user define only transport.jms.InitialReconnectDuration, It will >> always be multiplied by the transport.jms.ReconnectProgressFactor until it >> reach to transport.jms.MaxReconnectDuration. * >> I also tried above scenario while adding both InitialReconnectDuration >> and MaxReconnectDuration. What do you mean by "*It will always be >> multiplied by the transport.jms.ReconnectProgressFactor until it reach >> to transport.jms.MaxReconnectDuration.*" >> >> When I am testing got the same result as above scenario: >> >> <parameter name ="transport.jms.InitialReconnectDuration" >> locked="false">10000</parameter> >> <parameter name ="transport.jms.MaxReconnectDuration" >> locked="false">30000</parameter> >> >> Logs: >> >> [2016-05-18 18:19:02,148] ERROR - ServiceTaskManager Reconnection attempt >> : 1 for service : QueueProxy failed. Next retry in 20 seconds >> [2016-05-18 18:19:02,148] ERROR - ServiceTaskManager Reconnection attempt >> : 1 for service : TopicProxy failed. Next retry in 20 seconds >> [2016-05-18 18:19:32,153] ERROR - ServiceTaskManager Reconnection attempt >> : 2 for service : QueueProxy failed. Next retry in 40 seconds >> [2016-05-18 18:19:32,153] ERROR - ServiceTaskManager Reconnection attempt >> : 2 for service : TopicProxy failed. Next retry in 40 seconds >> >> Hope you will clarify more on these factors. >> >> Regards, >> Dilshani >> >> >> On Wed, May 18, 2016 at 5:53 PM, Nuwan Wimalasekara <nuw...@wso2.com> >> wrote: >> >>> Hi Dilshani, >>> >>> If the user need to define constant interval for reconnect, user can >>> define transport.jms.ReconnectInterval. Then it will wait defined value for >>> each reconnect attempt. >>> >>> if the user define only transport.jms.InitialReconnectDuration, It will >>> always be multiplied by the transport.jms.ReconnectProgressFactor until >>> it reach to transport.jms.MaxReconnectDuration. >>> >>> transport.jms.ReconnectProgressFactor is set to 2 by default to >>> increasing the reconnect interval exponential until it reach >>> to transport.jms.MaxReconnectDuration. >>> >>> >>> On Wed, May 18, 2016 at 1:59 PM, Dilshani Subasinghe <dilsh...@wso2.com> >>> wrote: >>> >>>> Hi ESB Team, >>>> >>>> When consider about "JMS connection factory parameters" [1] , user can >>>> define "transport.jms.InitialReconnectDuration" parameter to give time >>>> duration which will define initial reconnection time after broken JMS >>>> connection. >>>> >>>> But the given value will be multiply with 2. That 2 is coming from >>>> "reconnectionProgressionFactor" which can be over ride by >>>> "transport.jms.ReconnectProgressFactor" (Which is another jms connection >>>> factory parameter). >>>> >>>> ServiceTaskManager.java class will handle above function as follows: >>>> >>> >>> >>>> i >>>> *f (reconnectDuration != null) {* >>>> >>> //if transport.jms.ReconnectInterval is available. >>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> * retryDuration = >>>> reconnectDuration; log.error("Reconnection >>>> attempt : " + (r++) + " for service : " >>>> + serviceName + " failed. Next retry in >>>> " + (retryDuration / 1000) + " seconds. >>>> (Fixed Interval)"); } else >>>> { retryDuration = (long) (retryDuration * >>>> reconnectionProgressionFactor); >>>> log.error("Reconnection attempt : " + (r++) + " for service : " >>>> + serviceName + " failed. Next retry in >>>> " + (retryDuration / 1000) + " >>>> seconds");* >>>> >>>> >>>> There are two facts to clarify with above situation. >>>> >>>> 1. According to user perspective, it may be wrong to multiply the value >>>> which is given by user. >>>> >>>> Ex: User may add 10 seconds as initial retry interval, but ESB does it >>>> within 20 seconds. >>>> >>>> Note: When we add "transport.jms.ReconnectProgressFactor" in to >>>> axis2.xml, it can be override. >>>> >>>> *<parameter name ="transport.jms.ReconnectProgressFactor" >>>> locked="false">1</parameter>* >>>> >>>> 2. Why we hard code *reconnectionProgressionFactor *as 2 ? Can we >>>> change it or is it impossible because of the behavior of axis2 ? >>>> >>>> As a suggestion, it will be better to add it as 1. (It may also solve >>>> the problem discussed above step) >>>> >>>> >>>> >>>> >>>> >>>> */** Progression factory for geometric series that calculates >>>> re-connection times */ private double reconnectionProgressionFactor = >>>> 2.0; // default to [bounded] exponential* >>>> Any clarification on above factors will be really appreciated. >>>> >>>> >>>> [1] - https://docs.wso2.com/display/ESB500/JMS+Transport >>>> [2] - https://axis.apache.org/axis2/java/transports/jms.html >>>> >>>> Thank you. >>>> >>>> -- >>>> Best Regards, >>>> >>>> Dilshani Subasinghe >>>> Software Engineer - QA >>>> WSO2, Inc.;http://wso2.com/ >>>> <http://www.google.com/url?q=http%3A%2F%2Fwso2.com%2F&sa=D&sntz=1&usg=AFQjCNGJuLRux6KkJwXKVUCYOtEsNCmIAQ> >>>> lean.enterprise.middleware >>>> Mobile: +94773375185 >>>> Blog: dilshanilive.blogspot.com >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> Dev@wso2.org >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> Nuwan Wimalasekara >>> Senior Software Engineer - Test Automation >>> WSO2, Inc.: http://wso2.com >>> lean. enterprise. middleware >>> >>> phone: +94 71 668 4620 >>> >>> >>> >>> >> >> >> -- >> Best Regards, >> >> Dilshani Subasinghe >> Software Engineer - QA >> WSO2, Inc.;http://wso2.com/ >> <http://www.google.com/url?q=http%3A%2F%2Fwso2.com%2F&sa=D&sntz=1&usg=AFQjCNGJuLRux6KkJwXKVUCYOtEsNCmIAQ> >> lean.enterprise.middleware >> Mobile: +94773375185 >> Blog: dilshanilive.blogspot.com >> > > > > -- > Nuwan Wimalasekara > Senior Software Engineer - Test Automation > WSO2, Inc.: http://wso2.com > lean. enterprise. middleware > > phone: +94 71 668 4620 > > > > -- Best Regards, Dilshani Subasinghe Software Engineer - QA WSO2, Inc.;http://wso2.com/ <http://www.google.com/url?q=http%3A%2F%2Fwso2.com%2F&sa=D&sntz=1&usg=AFQjCNGJuLRux6KkJwXKVUCYOtEsNCmIAQ> lean.enterprise.middleware Mobile: +94773375185 Blog: dilshanilive.blogspot.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev