Articles of java

如何重新启动由systemd在OutOfMemory错误pipe理的Java应用程序

我有作为systemd服务安装的Java应用程序(在Spring Boot框架之上)。 [Unit] Description=${module_name}-service Requires=network.target After=syslog.target [Service] User=${user_name} ExecStart=/opt/${module_name}/${module_name}-${version}.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target 如何pipe理某些情况下的服务重启,例如OutOfMemory错误后自动重启

ActiveMQ持久化在数据库中

你们中的任何一个在数据库中使用持久性运行ActiveMQ ? 更好的是,在Oracle数据库中? 我们想用ActiveMQ取代我们当前的JMQ用法。 该计划是有两台共享一个ActiveMQ队列的机器(一个热的,一个故障切换),以便故障切换可以在热机停止的地方启动。 在基于文件的持久性testing中,这很好。 但是,让这两台机器能够访问一些快速的文件空间是非常棘手的,无论哪里都成为一个失败点。 坚持进入我们的Oracle数据库似乎是最理想的方式,但是在testing中却很慢。 其他使用Oracle集群的东西也不错。 有人以可接受的性能做这个吗? 如果是这样的话,有没有一个技巧来调整它? 它是否“为你工作”? 如果其中任何一个,你会介意分享一些configuration片段或什么? 即使你不使用Oracle,我也确信我可以根据需要翻译configuration。 编辑 :真的吗? 这是SF上唯一的ActiveMQ问题? 编辑2 :我正在谈论这个页面上的前两个configuration。 特别是后者(“JDBC持久性没有日志logging”),但与前者的经验将是伟大的。

Tomcat中的负载平衡

我想在tomcat 6.0中实现负载平衡,以便我们可以创build一个以上的tomcat实例,当任何实例closures时,其他实例将运行我们的应用程序。 所以即使有大量的并发请求时,我们的应用也永远不会停止。 但我不知道要实施它。 请给你宝贵的build议。

WebLogic中仅Http的cookie:哪些版本支持他们/他们如何以及为什么支持他们?

我们希望通过我们的networking应用程序http-only来设置所有cookie。 我只对这样做的好处有一个基本的了解,但是我被安全人员告知,这是一件好事(tm)我们的应用程序运行在JDK1.6.05和WebLogic10.3.0 在深入了解Oracle网站的文档之后,我发现了很好的证据表明WebLogic支持http-only cookies的第一个版本是10.3.1。 通过“支持”,我的意思是cookie-http-only部署描述符元素。 在升级之前,我会很高兴回答这些问题: 1a)WL10.3.1是否是第一个支持http-only cookies的版本,而且我们对10.3.0感到不幸,这是否准确呢? 1b)如果我们确实需要升级,在Windows下有没有这样做容易? 我听说有人提到一个“升级瓶”,你只是坚持在类path中,但我找不到任何这方面的提及。 有一个简单的方法存在,还是我们需要做一个完整的安装新版本? 2)启用cookie-http-only部署描述符元素时会做什么? 它会确保应用程序设置的所有Cookie都具有http-only = true属性吗? 它会做更多还是更less? 有什么我必须做的编程? 3)有什么一般我应该知道的只有http的cookie,让我的networking应用程序利用他们,或其他安全问题?

java.lang.OutOfMemoryError:无法创build新的本地线程

当我试图在我的mac上运行我的Junittesting时,我总是得到这个exception: java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:658) at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:727) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657) at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:92) at com.google.appengine.tools.development.ApiProxyLocalImpl$PrivilegedApiAction.run(ApiProxyLocalImpl.java:197) at com.google.appengine.tools.development.ApiProxyLocalImpl$PrivilegedApiAction.run(ApiProxyLocalImpl.java:184) at java.security.AccessController.doPrivileged(Native Method) at com.google.appengine.tools.development.ApiProxyLocalImpl.doAsyncCall(ApiProxyLocalImpl.java:172) at com.google.appengine.tools.development.ApiProxyLocalImpl.makeAsyncCall(ApiProxyLocalImpl.java:138) 同样的unit testing在Ubuntu和Windows上通过的很好。 有关我的系统资源在mac上的一些信息: $ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked […]

在JVM上监视哪些性能指标?

我想在我们的JVM上做一些性能监控。 除了我已经在我的名单上已经有的明显的东西,监测什么是有趣的? JVM空闲/总内存 GC率(每分钟多less) GC的持续时间

操作系统参数调整延迟改善

我们正在尝试改进Java代理应用程序的平均延迟。 Java应用程序从客户端接收消息并将其代理到必要的服务器。 该协议是二进制的,asynchronous的。 该拓扑结构是: Client (1) – Java proxy (2) – Server (3) 呼叫stream程是 (1)-(2)-(3)-(2)-(1) 对于Java代理来说,要求是一个方向跳的2 ms平均延迟开销。 我们已经注意到,如果我们增加客户端数量,延迟开销会线性下降。 比方说, 1 client -> Java proxy latency overhead = 6 ms. 2 clients -> Java proxy latency overhead = 3 ms. 4 clients -> Java proxy latency overhead = 1.5 ms. 另一方面,即使有一个客户,我们也必须遵守延迟要求。 我们观察到的同样的行为,如果我们用Erlang实现代替Java代理实现。 我们可以为低级操作系统调优做些什么吗? Java代理主机是2个Nehalem CPU X5550 […]

随着时间的推移,CPU / JVM / JBoss 7变慢

我在JBoss 7.1.1 Final上遇到了性能下降的问题。 我写了一个简单的程序来展示这种行为。 我生成了一个10万个随机整数的数组,并对其执行冒泡sorting。 @Model public class PerformanceTest { public void proceed() { long now = System.currentTimeMillis(); int[] arr = new int[100000]; for(int i = 0; i < arr.length; i++) { arr[i] = (int) (Math.random() * 200000); } long now2 = System.currentTimeMillis(); System.out.println((now2 – now) + "ms took to generate array"); now = System.currentTimeMillis(); […]

如何确定不同版本的DRAC所需的Java版本

我们在工作场所有两台不同的服务器机器,它们是: 戴尔 – PowerEdge T620 – 运行drac 7(版本1.35.35) 戴尔 – PowerEdge 2950 – 运行drac 5(版本1.65) 我能否确定每台机器需要哪个Java版本才能使用虚拟控制台? 谢谢

OpenVZ中的Java VM问题

我买了一个vps托pipe我的Java需求。 但是我无法在上面运行java。 关于java的一切正确安装,但是当我尝试运行java(“java -version”forexample)我得到这个错误: VM初始化期间发生错误 无法为对象堆预留足够的空间 无法创buildJava虚拟机。 我不认为这是一个以Java为中心的问题,肯定是内存不足。 我联系了VPSpipe理员,但他说一切都很好,你有2GB RAM,可扩展到4GB! 我做了一些关于这个主题的search,这里是我的BEANS文件(使用脚本将数字转换为人类可信的forms)。 顺便JVM堆内存分配计数kmemsize或privvmpages? 该configuration允许我使用jvm为单个进程分配多lessram? resource held maxheld barrier limit failcnt kmemsize 2.25 mb 2.35 mb 13.71 mb 14.10 mb 0 lockedpages 0 0 1024.00 kb 1024.00 kb 0 privvmpages 20.54 mb 21.33 mb 256.00 mb 272.00 mb 156 shmpages 5.00 mb 5.00 mb 84.00 mb 84.00 […]