小编Mar*_*arc的帖子

OpenJDK的Java 7更新在哪里?

Oracle发布了针对Java 7的更新2,而OpenJDK似乎仍然是去年夏天发布的原始版本147.

是否可以使用OpenJDK?

似乎有一个OpenJDK项目仅用于更新(http://openjdk.java.net/projects/jdk7u/),它提到他们将在Oracle的同时发布更新,但我找不到任何东西.

谢谢

java openjdk

21
推荐指数
1
解决办法
4709
查看次数

Tomcat内存消耗超过堆+ permgen空间

我观察到操作系统所说的内容与jVisualVM所说的内容之间的Tomcat RAM消耗不匹配.

从htop开始,Tomcat JVM拥有993 MB的驻留内存

从jVisualVM,Tomcat JVM正在使用

  • 堆最大值:1,070,399,488 B
  • 堆大小:298.438.656 B.
  • 堆使用:可变,介于170MB和270MB之间
  • PermGen Max:268,435,456 B
  • PermGen尺寸:248,872,960 B
  • PermGen使用:略有变化,约150MB

根据我的理解,操作系统内存消耗应该是堆大小+ PermGen大小〜= 522 MB.但这比我观察到的要少471 MB.

任何人都知道我在这里错过了什么?

PS:我知道我的最大堆远远高于使用的,但我认为如果JVM不使用它(即堆大小较低)应该没有效果.

谢谢!渣

java memory tomcat jvm

13
推荐指数
1
解决办法
1万
查看次数

如何使用其他项目扩展/自定义WAR

我们的项目有以下场景:

  • 打包为war文件的核心Web应用程序(称为Core项目).
  • 需要为每个客户"定制"或"扩展"核心应用程序(称之为客户项目).这主要包括新的bean定义(我们使用Spring),即.用客户特定的实现替换core.war中的服务实现.
  • 我们希望独立开发核心和客户项目
  • 开发Customer项目时,我们需要能够在Eclipse(在Tomcat上)上运行/调试它,并将Core项目作为依赖项
  • 构建Customer项目时,生成的war文件"包括"核心和客户项目.所以.war是应用程序的客户特定版本

我正在寻找关于在工具和项目配置方面做到这一点的最佳方法的建议.

我们目前正在使用Ant,但是希望避免被蚂蚁埋没.有没有人用Maven做过这件事?

我已经看过很多关于如何构建依赖于java应用程序的Web应用程序的帖子,但是根据其他Web应用程序,Web应用程序上没有任何内容.

谢谢!

java eclipse spring jsp maven-2

9
推荐指数
2
解决办法
3742
查看次数

在ehcache配置中,maxElementsInMemory的性能是否太大了?

只是想知道设置maxElementsInMemory对性能的影响是否比实际使用的高得多?例如,最大10,000,仅使用100.

ehcache.xml中

<defaultCache
    eternal="false"
    overflowToDisk="false"
    maxElementsInMemory="10000"
    timeToIdleSeconds="7200"
    timeToLiveSeconds="0"/>
Run Code Online (Sandbox Code Playgroud)

上下文:我正在使用带有hibernate的ehcache,我希望缓存一个表(所有实体)的所有记录.从一个客户到另一个客户,该表中的记录数量不同,因此很难设置精确的最大值.

谢谢!

java hibernate ehcache

6
推荐指数
1
解决办法
3283
查看次数

套接字保持活动状态在 Linux 上不起作用

我们有一个 Java 应用程序,它使用启用了 TCP 保持活动状态的套接字

Socket.setKeepAlive(true) http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html#setKeepAlive(boolean )

我们的测试表明,保持活动功能在 Windows 主机上可以正常工作,但在 Linux 主机 (Ubuntu Lucid) 上则无法正常工作。

深入研究后发现,Java 中使用的 SO_KEEPALIVE 数值常量似乎与 Linux 中使用的常量不匹配

在java中:jdk/src/share/classes/java/net/SocketOptions.java:

public final static int SO_KEEPALIVE = 0x0008;
Run Code Online (Sandbox Code Playgroud)

在 Solaris 中:include/sys/socket.h

#define    SO_KEEPALIVE    0x0008        /* keep connections alive */
Run Code Online (Sandbox Code Playgroud)

在 Linux Sparc、MIPS、Alpha 和 PARISC 中:/usr/src//linux-headers-2.6.32-19/arch/sparc/include/asm/socket.h:

#define SO_KEEPALIVE    0x0008
Run Code Online (Sandbox Code Playgroud)

在其他 Linux(x86 和 amd64)中:/usr/include/asm-generic/socket.h:

\#define SO_KEEPALIVE    9
Run Code Online (Sandbox Code Playgroud)

我们认为这可以解释为什么 keepalive 在 Linux 上不起作用。谁能提出另一个原因或解决方案?

干杯马克

java sockets linux tcp keep-alive

2
推荐指数
1
解决办法
2940
查看次数

可以/应该Spring重用Hibernate Session进行子事务(REQUIRES_NEW)

我有一个事务服务调用第二个具有REQUIRES_NEW传播的服务.

激活日志我看到Spring在创建子事务时创建了一个新的Hibernate Session,即使当前Thread已经有一个打开的Session.

[DEBUG] org.springframework.transaction.interceptor.AbstractFallbackTransactionAttributeSource.getTransactionAttribute(AbstractFallbackTransactionAttributeSource.java:106) Adding transactional method 'executeProcessed' with attribute: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT; ''
[DEBUG] org.springframework.orm.hibernate3.HibernateTransactionManager.doGetTransaction(HibernateTransactionManager.java:437) Found thread-bound Session [org.hibernate.impl.SessionImpl@467743d7] for Hibernate transaction
[DEBUG] org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:415) Suspending current transaction, creating new transaction with name [com.microsigns.ds.businesslogic.rendering.service.impl.PipelineDataServiceImpl.executeProcessed]
[DEBUG] org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:493) **Opened new Session** [org.hibernate.impl.SessionImpl@3d4b1aad] for Hibernate transaction
[DEBUG] org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:504) Preparing JDBC Connection of Hibernate Session [org.hibernate.impl.SessionImpl@3d4b1aad]
[DEBUG] org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:569) Exposing Hibernate transaction as JDBC transaction [jdbc:postgresql://localhost:5432/ds, UserName=microsignsdds, PostgreSQL Native Driver]
Run Code Online (Sandbox Code Playgroud)

重用会话不应该在性能方面更好吗?这还可以避免在子事务中重新加载或重新附加对象.我在这里错过了什么?

此行为在org.springframework.orm.hibernate3.HibernateTransactionManager中进行了硬编码:

xObject.getSessionHolder().setSynchronizedWithTransaction(true);
Run Code Online (Sandbox Code Playgroud)

我正在使用hibernate 3.6和Spring 3.1

java spring hibernate transactions

1
推荐指数
1
解决办法
2634
查看次数

标签 统计

java ×6

hibernate ×2

spring ×2

eclipse ×1

ehcache ×1

jsp ×1

jvm ×1

keep-alive ×1

linux ×1

maven-2 ×1

memory ×1

openjdk ×1

sockets ×1

tcp ×1

tomcat ×1

transactions ×1