小编Ran*_*yaa的帖子

Java拒绝启动 - 无法为对象堆保留足够的空间

背景

我们有大约20个Linux刀片池.有些正在运行Suse,有些正在运行Redhat.ALL共享NAS空间,其中包含以下3个文件夹:

  • / NAS/app/java - 指向Java JDK安装的符号链接.目前版本为1.5.0_10
  • / NAS/app/lib - 指向我们的应用程序版本的符号链接.
  • / NAS/data - 写入输出的目录

我们所有的机器都有2个处理器(超线程),4GB物理内存和4GB交换空间.我们将每台机器在给定时间可处理的"作业"数量限制为6(此数字可能需要更改,但这不会进入当前问题,因此请暂时忽略它).

我们的一些工作设置最大堆大小为512mb,其他一些保留最大堆大小为2048mb.同样,我们意识到如果在堆大小设置为2048的同一台机器上启动了6个作业,我们可以查看可用内存,但据我们所知,这还没有发生.

问题

有一段时间,作业将立即失败,并显示以下消息:

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Run Code Online (Sandbox Code Playgroud)

我们曾经在同一台机器上同时运行太多工作.这个问题很少发生(可能每月一次),我们只是重新启动它,一切都会好的.

这个问题最近变得更糟.我们所有请求最大堆大小为2048m的作业几乎每次都会立即失败,需要在完成之前重新启动几次.

我们已经去了各个机器,并尝试使用相同的结果手动执行它们.

调试

事实证明,问题只存在于我们的SuSE盒子中.它更频繁发生的原因是因为我们一直在添加更多的机器,而新的机器是SuSE.

SuSE盒子上的'cat/proc/version'给我们:

Linux version 2.6.5-7.244-bigsmp (geeko@buildhost) (gcc version 3.3.3 (SuSE Linux)) #1 SMP Mon Dec 12 18:32:25 UTC 2005
Run Code Online (Sandbox Code Playgroud)

RedHat盒子上的'cat/proc/version'给我们:

Linux version 2.4.21-32.0.1.ELsmp (bhcompile@bugs.build.redhat.com) (gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-52)) #1 SMP …
Run Code Online (Sandbox Code Playgroud)

java linux memory heap jvm

49
推荐指数
4
解决办法
16万
查看次数

如何在oracle中将列varchar更改为clob

我在oracle DB中有一个设计为varchar 的列详细信息,此DB现在用于客户,而某些行已经存储了数据.

现在我想将列详细信息更改为Clob列.什么是实现这一目标的聪明方法?

sql oracle oracle10g

28
推荐指数
3
解决办法
4万
查看次数

如何强制Internet Explorer加载Adobe Flash内容调试器?

我目前安装了最新版本的IE Flash Player:

在此输入图像描述 在此输入图像描述

我已经从Adobe Flash Player支持中心安装了最新版本的内容调试器.

无论我做什么,IE似乎都没有拿起新的内容调试器版本.我试过卸载,尝试安装旧版本......一切都没有运气.

flash internet-explorer

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

如何在Zuul中配置特定于域的路由

我们有2个域名指向我们的单个Zuul ELB.两个站点都使用了很多相同的服务,所以尽管我们的生产环境现在设置有点不同,但我们只有一个Zuul ELB.

我们如何根据域名将相同的路径路由到不同的服务?

我想最终得到这样的东西:

zuul:
  host: http://a-zuul-host.elb.amazonaws.com:80
  ignoredServices: '*'
  routes:
    app1:
      path: /
      domain: app1.com
      serviceId: APP_1_SERVICE
    app2:
      path: /
      domain: app2.com
      serviceId: APP_2_SERVICE
Run Code Online (Sandbox Code Playgroud)

这甚至是可能的还是我需要设置另一个zuul实例?

routing netflix-zuul

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

你如何解决Hudson中"太多打开文件"的问题?

我们使用Hudson作为持续集成系统来执行我们许多项目的自动构建(每晚和基于CVS轮询).

有些项目每15分钟轮询一次CVS,其他一些项目每5分钟轮询一次,每小时轮询一次.

每隔几周我们就会得到一个失败的构建,但输出如下:

FATAL: java.io.IOException: Too many open files
java.io.IOException: java.io.IOException: Too many open files
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
Run Code Online (Sandbox Code Playgroud)

下一个构建总是起作用(有0个更改),所以我们总是将它同时运行2个构建作业并且在此过程中发生过多文件.

这个周末我们有一个构建失败的星期五晚上(自动每晚构建)与消息和每个其他夜间构建也失败.不知何故,这导致Hudson不断构建每个失败的项目,直到问题得到解决.这导致每个项目每30分钟左右建立一次,直到星期六晚上这个问题神奇地消失.

java build-automation continuous-integration hudson exception

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

如何使用MQQueueConnectionFactory连接到多实例队列管理器

我们有一个需要与Multi-Instance QueueManager通信的应用程序.两个(实例)都在默认端口上运行并具有唯一的地址.

  • serverA.internal.company.address
  • serverB.internal.company.address

我们使用以下代码来建立ConnectionFactory:

MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory();
connectionFactory.setTransportType(1);
connectionFactory.setPort(1414);
connectionFactory.setChannel("CLIENTCONNECTION");
connectionFactory.setQueueManager("queue.manager.name.here");
connectionFactory.setHostName("serverA.internal.company.address");
Run Code Online (Sandbox Code Playgroud)

我们如何指定这两个地址,以便在不编写自己的重试逻辑的情况下实现故障转移?

java tomcat ibm-mq

6
推荐指数
2
解决办法
4388
查看次数

如何在ActionScript中将String转换为布尔值?

我有以下代码:

var bool:String = "true";
Run Code Online (Sandbox Code Playgroud)

如果没有 if块或switch语句,如何将其转换为布尔对象?

apache-flex string actionscript boolean type-conversion

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

查找 (Oracle) SQL 中的最后一个重复行

我们有一个历史表,其定义如下:

--ID (pk) -----------Object ID--------------Work ID--------date------
  1                  1111                   AAAA           1/1/2010
  2                  1111                   AAAA           1/2/2010
  3                  2222                   BBBB           1/1/2010
  4                  3333                   CCCC           1/1/2010
  5                  1111                   DDDD           1/3/2010
Run Code Online (Sandbox Code Playgroud)

我们需要最新的(基于日期的而非基于 ID 的)行 PER Work ID。请注意,一个对象 ID 可以有多个工作 ID,我们需要每个工作 ID 的最新值。

我们需要什么作为我们的结果集:

ID (pk) -----------Object ID--------------Work ID--------date------
2                  1111                   AAAA           1/2/2010
3                  2222                   BBBB           1/1/2010
4                  3333                   CCCC           1/1/2010
5                  1111                   DDDD           1/3/2010
Run Code Online (Sandbox Code Playgroud)

想法/想法?

sql oracle select

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

为什么在调用.getBytes()时字符串"¿"会被翻译为"¿"

使用时将字符串"¿"写出来

System.out.println(new String("¿".getBytes("UTF-8")));
Run Code Online (Sandbox Code Playgroud)

¿写的而不仅仅是¿

为什么?我们如何解决它?

java utf-8 character-encoding

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

即使使用UTF-8,为什么在Windows与Linux中显示不同?

为什么以下在Linux与Windows中显示不同?

System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));
Run Code Online (Sandbox Code Playgroud)

在Windows中:

¿

在Linux中:

一个

java utf-8 character-encoding

2
推荐指数
3
解决办法
2929
查看次数

如何使用Schema基于属性值验证元素?

我试图验证的XML如下:

<root>
    <element attribute="foo">
        <bar/>
    </element>
    <element attribute="hello">
        <world/>
    </element>
</root>
Run Code Online (Sandbox Code Playgroud)

如何使用Schema验证?

注意:

attribute ="foo"时,element只能包含bar.

attribute ="hello"时,element只能包含world

xml validation schema xsd

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