- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在消除了 Java web 应用程序中几个与 PermGen 相关的问题后,我达到了以下几点:
DataSource
DataSource
定义在 $TOMCAT_HOME/conf/context.xml
DataSource
并且只有在那个时候 DataSource
才会被实例化;BasicDataSource
实现加载了 GenericObjectPool
类,后者又启动了一个 java.util.Timer
TimerThread
,它是一个 GC Root,由 Web 应用程序类加载器加载。定时器创建的堆栈跟踪
java.util.Timer.<init>(Timer.java:123)
org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.<clinit>(GenericObjectPool.java:268)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1172)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:114)
org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163)
org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1383)
org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:855)
org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:774)
org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
计时器显示为由 webapp 类加载器加载
虽然我首先要求 Tomcat 急切地初始化 DataSource
,从而将其固定在公共(public)类加载器中,但我找不到这样做的方法。我当然对解决此问题的其他方法持开放态度(但 JNDI 绑定(bind)资源需要保留)。
如何确保 TimerThread
链接到网络应用程序类加载器?
最佳答案
我不确定我是否理解:您希望您的 DataSource
只加载一次吗?将其作为 GlobalNamingResource
放入您的 server.xml 中。在您的 webapps 中从 context.xml 中引用它。 (有关详细信息,请参阅此处 http://tomcat.apache.org/tomcat-5.5-doc/config/globalresources.html)
您希望它为一个 webapp 加载:将它放在 webapps 上下文 xml 中。
tomcats context.xml 旨在包含应该为所有 webapps 加载一次的资源。 (所以有 5 个 webapps 结果是 5 个实例。)
如果这没有帮助,请发布您的 tomcat 和 webapps 上下文 xml。
关于java - 强制急切初始化 Tomcat 处理的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5978061/
我有一个案例,在大多数情况下,对象之间的关系是这样的,因此在关系上预先配置一个渴望(加入)的负载是有意义的。但是现在我遇到了一种情况,我真的不想完成急切的加载。 我是否应该从关系中删除连接负载并将所有
在我的 Grails 项目中,我有以下类: class A { static hasMany = [cs:C] } class B { static hasMany = [cs:C]
想象一下以下简化的 DI 模型: @ApplicationScoped public class A { private B b; @Inject public A(B b)
我使用 MapLoader 将数据从数据存储初始加载到 Hazelcast (InitialLoadMode = EAGER)。我需要从一个物化 View 中加载这些数据,该 View 是为了在加载过
我使用 Hibernate Envers 4.3.10.Final。我有以下两个 JPA 类: public class Factory { private int factoryID;
EJB 似乎被延迟加载 - 每当访问时。 但是,我想急切地初始化它们 - 即每当容器启动时。这是如何实现的(尤其是在 JBoss 中) This topic给出了一些提示,但不是很令人满意。 最佳答案
我是一名优秀的程序员,十分优秀!