[JBoss JIRA] Updated: (TEIID-66) dqp lifecycle issues
by Ramesh Reddy (JIRA)
[ https://jira.jboss.org/jira/browse/TEIID-66?page=com.atlassian.jira.plugi... ]
Ramesh Reddy updated TEIID-66:
------------------------------
Component/s: Embedded
Fix Version/s: 6.0.0
Affects Version/s: 6.0.0
> dqp lifecycle issues
> --------------------
>
> Key: TEIID-66
> URL: https://jira.jboss.org/jira/browse/TEIID-66
> Project: Teiid
> Issue Type: Bug
> Components: Embedded
> Affects Versions: 6.0.0
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 6.0.0
>
>
> There are some exceptions (see below) happening during Embedded shutdown. The CacheProvider looks like it's assuming that it's a true singleton, but the EmbeddedGuiceModule is created and the Injector is set on the ResourceFinder with ever EmbeddedConnection created. That's causing us to attempt the mbean registration and cache creation with every connection, which seems very troubling with simultaneous connections. What do you think about the following:
> 1. Why should we initiate an implicit shutdown with no connections? Why not implicitly start, but require an explicit shutdown.
> 2. We should at least promote the set of the injector to the constructor of EmbeddedConnectionFactoryImpl (assuming 1 jboss cache per dqp), however I don't know enough about how we're using JBoss cache to know if that will work. It seems like we would need to use a cache region per dqp, not a separate cache. But if it is one cache per, then at the very least we would need to also change our mbean registration to have unique names.
> 3. It looks like we can avoid the exception below if we first unregister the existing instance. Logically we'd like that to happen when JBossCacheFactory.destroy is called, so I'd be in favor of moving the mbean registration and dergistration logic into the JBossCacheFactory so that it has control over both sides.
> > javax.management.InstanceAlreadyExistsException: jboss.cache:service=MetaMatrixCacheTree
> > at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)
> > at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1484)
> > at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:963)
> > at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917)
> > at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312)
> > at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482)
> > at com.metamatrix.jdbc.CacheProvider.get(CacheProvider.java:51)
> > at com.metamatrix.jdbc.CacheProvider.get(CacheProvider.java:40)
> > at com.google.inject.BoundProviderFactory.get(BoundProviderFactory.java:60)
> From Ramesh:
> 3. Yes, this needs to be done.
> 2. DQP only uses the cache for the resultset caching. I am kind of on
> the fence about supporting multiple DQP instances, in a given VM. I do
> not see that as serving much of the usecases. So, if we can relax that
> requirement then we can always assume there is only one instance of the
> DQP. Otherwise, depending upon how we use Cache we should be able to
> segment cache by DQP instance identifier.
> 1. Except for re-loading times, do you see any issue with this? Original
> design wanted to see the Embedded as JDBC driver, such that when there
> are no connections, it unloads itself and reduces the memory footprint
> of the VM. It become more of who's responsibility is it to shutdown? If
> we deployed this app server, or in pre-built tool like Squirrel.
> Shutting down closes the connector bindings etc, that are active.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 10 months
[JBoss JIRA] Updated: (TEIID-62) Error starting vmcontroller
by Ramesh Reddy (JIRA)
[ https://jira.jboss.org/jira/browse/TEIID-62?page=com.atlassian.jira.plugi... ]
Ramesh Reddy updated TEIID-62:
------------------------------
Component/s: Server
Fix Version/s: 6.0.0
Affects Version/s: 6.0.0
> Error starting vmcontroller
> ---------------------------
>
> Key: TEIID-62
> URL: https://jira.jboss.org/jira/browse/TEIID-62
> Project: Teiid
> Issue Type: Bug
> Components: Server
> Affects Versions: 6.0.0
> Reporter: Van Halbert
> Assignee: Steven Hawkins
> Fix For: 6.0.0
>
>
> The following exception is seen in the process log when starting server
> Feb 10, 2009 08:33:37.074 [main|0] ERROR <CONTROLLER|0> Failed to add VM:VMControllerID<1000>:DHCP-10.15.208.158.STL.REDHAT.COM
> com.metamatrix.platform.registry.ClusteredRegistryState$CacheNodeNotFoundException: Host Node not found=dhcp-10.15.208.158.stl.redhat.com
> at com.metamatrix.platform.registry.ClusteredRegistryState.getHostNode(ClusteredRegistryState.java:62)
> at com.metamatrix.platform.registry.ClusteredRegistryState.addVMNode(ClusteredRegistryState.java:68)
> at com.metamatrix.platform.registry.ClusteredRegistryState.addVM(ClusteredRegistryState.java:101)
> at com.metamatrix.platform.registry.VMMonitor.vmAdded(VMMonitor.java:150)
> at com.metamatrix.platform.vm.controller.VMController.initVMProperties(VMController.java:321)
> at com.metamatrix.platform.vm.controller.VMController.<init>(VMController.java:204)
> at com.metamatrix.common.comm.platform.socket.SocketVMController.<init>(SocketVMController.java:82)
> at com.metamatrix.common.comm.platform.socket.SocketVMController$$FastClassByGuice$$1b0a3540.newInstance(<generated>)
> at com.google.inject.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
> at com.google.inject.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:67)
> at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:142)
> at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
> at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:37)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:756)
> at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:35)
> at com.google.inject.Scopes$1$1.get(Scopes.java:53)
> at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
> at com.google.inject.BindingBuilderImpl$FactoryProxy.get(BindingBuilderImpl.java:299)
> at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:37)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:756)
> at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:35)
> at com.google.inject.Scopes$1$1.get(Scopes.java:53)
> at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
> at com.google.inject.InjectorImpl$SingleFieldInjector.inject(InjectorImpl.java:473)
> at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:155)
> at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
> at com.google.inject.InjectorImpl$9$1.call(InjectorImpl.java:708)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:747)
> at com.google.inject.InjectorImpl$9.get(InjectorImpl.java:702)
> at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:728)
> at com.metamatrix.server.Main.loadMain(Main.java:114)
> at com.metamatrix.server.Main.main(Main.java:102)
> Feb 10, 2009 08:33:37.074 [main|0] ERROR <CONTROLLER|0> Failed to add VM:VMControllerID<1000>:DHCP-10.15.208.158.STL.REDHAT.COM
> com.metamatrix.platform.registry.ClusteredRegistryState$CacheNodeNotFoundException: Host Node not found=dhcp-10.15.208.158.stl.redhat.com
> at com.metamatrix.platform.registry.ClusteredRegistryState.getHostNode(ClusteredRegistryState.java:62)
> at com.metamatrix.platform.registry.ClusteredRegistryState.addVMNode(ClusteredRegistryState.java:68)
> at com.metamatrix.platform.registry.ClusteredRegistryState.addVM(ClusteredRegistryState.java:101)
> at com.metamatrix.platform.registry.VMMonitor.vmAdded(VMMonitor.java:150)
> at com.metamatrix.platform.vm.controller.VMController.initVMProperties(VMController.java:321)
> at com.metamatrix.platform.vm.controller.VMController.<init>(VMController.java:204)
> at com.metamatrix.common.comm.platform.socket.SocketVMController.<init>(SocketVMController.java:82)
> at com.metamatrix.common.comm.platform.socket.SocketVMController$$FastClassByGuice$$1b0a3540.newInstance(<generated>)
> at com.google.inject.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
> at com.google.inject.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:67)
> at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:142)
> at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
> at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:37)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:756)
> at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:35)
> at com.google.inject.Scopes$1$1.get(Scopes.java:53)
> at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
> at com.google.inject.BindingBuilderImpl$FactoryProxy.get(BindingBuilderImpl.java:299)
> at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:37)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:756)
> at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:35)
> at com.google.inject.Scopes$1$1.get(Scopes.java:53)
> at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
> at com.google.inject.InjectorImpl$SingleFieldInjector.inject(InjectorImpl.java:473)
> at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:155)
> at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
> at com.google.inject.InjectorImpl$9$1.call(InjectorImpl.java:708)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:747)
> at com.google.inject.InjectorImpl$9.get(InjectorImpl.java:702)
> at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:728)
> at com.metamatrix.server.Main.loadMain(Main.java:114)
> at com.metamatrix.server.Main.main(Main.java:102)
> Exception in thread "main" com.google.inject.ProvisionException: Error while locating instance
> bound to com.metamatrix.platform.vm.api.controller.VMControllerInterface
> for member at com.metamatrix.server.Main.vmController(Main.java:58)
> at com.google.inject.InjectorImpl$SingleFieldInjector.inject(InjectorImpl.java:486)
> at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:155)
> at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
> at com.google.inject.InjectorImpl$9$1.call(InjectorImpl.java:708)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:747)
> at com.google.inject.InjectorImpl$9.get(InjectorImpl.java:702)
> at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:728)
> at com.metamatrix.server.Main.loadMain(Main.java:114)
> at com.metamatrix.server.Main.main(Main.java:102)
> Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
> at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:161)
> at com.google.inject.InjectorImpl$ImplicitBinding.get(InjectorImpl.java:1006)
> at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:37)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:756)
> at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:35)
> at com.google.inject.Scopes$1$1.get(Scopes.java:53)
> at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
> at com.google.inject.BindingBuilderImpl$FactoryProxy.get(BindingBuilderImpl.java:299)
> at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:37)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:756)
> at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:35)
> at com.google.inject.Scopes$1$1.get(Scopes.java:53)
> at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
> at com.google.inject.InjectorImpl$SingleFieldInjector.inject(InjectorImpl.java:473)
> ... 8 more
> Caused by: java.lang.reflect.InvocationTargetException
> at com.metamatrix.common.comm.platform.socket.SocketVMController$$FastClassByGuice$$1b0a3540.newInstance(<generated>)
> at com.google.inject.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
> at com.google.inject.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:67)
> at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:142)
> ... 21 more
> Caused by: Failed to add VM:VMControllerID<1000>:DHCP-10.15.208.158.STL.REDHAT.COM
> at com.metamatrix.platform.registry.VMMonitor.vmAdded(VMMonitor.java:154)
> at com.metamatrix.platform.vm.controller.VMController.initVMProperties(VMController.java:321)
> at com.metamatrix.platform.vm.controller.VMController.<init>(VMController.java:204)
> at com.metamatrix.common.comm.platform.socket.SocketVMController.<init>(SocketVMController.java:82)
> ... 25 more
>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 10 months