Author Message
RenatoPinheiro
Joined: Nov 16, 2011
Messages: 9
Location: São Paulo - SP - Brazil
Offline
Hi,

I have an application that registers a set of dmcc extensions at its start up process.
Sometimes if the application crashes or it is forcedly stopped, the extensions remain registered for a couple of minutes and if I try to start up the application it is not able to register again (so I have to wait a couple of minutes before trying to register them again). I get this type of exception:
com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.DMCCException: Error trying to startup extension:88692
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.SoftPhone.startup(SoftPhone.java:282)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.SoftPhone.loginPhone(SoftPhone.java:239)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.SoftPhone.start(SoftPhone.java:126)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.SoftPhoneObjectPool.registerExtensions(SoftPhoneObjectPool.java:48)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.SoftPhoneObjectPool.<init>(SoftPhoneObjectPool.java:32)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.DMCCProviderLoader.loadStations(DMCCProviderLoader.java:105)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.CallManagement.init(CallManagement.java:89)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
   at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
   at org.apache.catalina.core.StandardService.start(StandardService.java:525)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: ch.ecma.csta.errors.ResourceBusyException
   at sun.reflect.GeneratedConstructorAccessor17.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
   at java.lang.Class.newInstance0(Class.java:355)
   at java.lang.Class.newInstance(Class.java:308)
   at com.avaya.mvcs.proxy.ClientNegAckToException.convertErrorToException(ClientNegAckToException.java:105)
   at com.avaya.mvcs.proxy.XmlGatewayClient.handleRequest(XmlGatewayClient.java:233)
   at com.avaya.mvcs.proxy.Pipeline.handleRequest(Pipeline.java:346)
   at com.avaya.mvcs.proxy.ClientProxy.routeRequest(ClientProxy.java:607)
   at com.avaya.mvap.svcproxy.ServiceProxy.marshallRequest(ServiceProxy.java:106)
   at com.avaya.mvap.svcproxy.DeviceServicesProxy.getDeviceID(DeviceServicesProxy.java:146)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.DMCCStation.getID(DMCCStation.java:1132)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.DMCCStation.getID(DMCCStation.java:1110)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.DMCCStation.init(DMCCStation.java:380)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.DMCCStation.init(DMCCStation.java:192)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.DMCCStation.init(DMCCStation.java:176)
   at com.avaya.ept.bbhbeeptone.server.callmanagement.dmcc.SoftPhone.startup(SoftPhone.java:264)

Is there a way to force the registration (unregistering/registering again), so every time I start my application I will be sure all extensions will be registered?

thanks,
Renato
RenatoPinheiro
Joined: Nov 16, 2011
Messages: 9
Location: São Paulo - SP - Brazil
Offline
to make it easier to understand, the cause of the exception, when I try to register an already registered dmcc extension, I get:

Caused by: ch.ecma.csta.errors.ResourceBusyException
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Offline
As far as I know, it is not possible to register a DeviceId if the same DeviceId has already been registered. Possible workarounds are:

1. If possible, reconnect the old session instead of connecting a new one.

2. If the registration fails, try again with a new DeviceId using a different instance (0-2).

3. When getting the DeviceID, set controllableBy OtherSessions to true. Then, if the registration fails, your application can unregister the device and register it again.

Martin
Go to:   
Mobile view