这些java错误的原因可能是什么?
有人知道这些java错误的原因吗 java版本应该是1.4.1_05。这与PeopleSoft有关这些java错误的原因可能是什么?,java,peoplesoft,Java,Peoplesoft,有人知道这些java错误的原因吗 java版本应该是1.4.1_05。这与PeopleSoft有关 "VM Thread" prio=5 tid=0x00B8EF28 nid=0x5f8 runnable "VM Periodic Task Thread" prio=10 tid=0x00CF4CF8 nid=0x648 waiting on condition "Suspend Checker Thread" prio=10 tid=0x00CF5760 nid=0x64c runnabl
"VM Thread" prio=5 tid=0x00B8EF28 nid=0x5f8 runnable
"VM Periodic Task Thread" prio=10 tid=0x00CF4CF8 nid=0x648 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x00CF5760 nid=0x64c runnable
<Nov 17, 2011 1:41:46 PM GMT+08:00> <Error> <HTTP> <BEA-101017> <[ServletContext(id=21840659,name=PORTAL,context-path=)] Root cause of ServletException.
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start(Native Method)
at bea.jolt.NwHdlr.start_threads(NwHdlr.java:1982)
at bea.jolt.NwHdlr.openConnection(NwHdlr.java:879)
at bea.jolt.CMgr.connect(CMgr.java:71)
at bea.jolt.JoltSession.logon(JoltSession.java:246)
at bea.jolt.JoltSession.<init>(JoltSession.java:125)
at psft.pt8.net.JoltSessionWrapper.<init>(JoltSessionWrapper.java:67)
at psft.pt8.net.JoltSessionPool.createConnection(JoltSessionPool.java:373)
at psft.pt8.net.JoltSessionPool.getJoltSession(JoltSessionPool.java:220)
at psft.pt8.net.NetSession.getJoltSession(NetSession.java:484)
at psft.pt8.net.NetReqRepSvc.sendRequest(NetReqRepSvc.java:526)
at psft.pt8.net.NetService.requestService(NetService.java:141)
at psft.pt8.net.NetReqRepSvc.requestService(NetReqRepSvc.java:328)
at psft.pt8.net.NetSession.connect(NetSession.java:269)
at psft.pt8.net.NetSession.<init>(NetSession.java:203)
at psft.pt8.jb.JBEntry.connectWithBlob(JBEntry.java:720)
at psft.pt8.jb.JBEntry.connect(JBEntry.java:654)
at psft.pt8.auth.PSAuthenticator.authenticate(PSAuthenticator.java:546)
at psft.pt8.psreports.onLogin(psreports.java:216)
at psft.pt8.psreports.onAction(psreports.java:321)
at psft.pt8.psreports.service(psreports.java:181)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at psft.pt8.psfilter.doFilter(psfilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6372)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3643)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>
“VM线程”优先级=5 tid=0x00B8EF28 nid=0x5f8可运行
“VM定期任务线程”优先级=10 tid=0x00CF4CF8 nid=0x648等待状态
“挂起检查程序线程”优先级=10 tid=0x00CF5760 nid=0x64c可运行
为线程堆栈可用的内存创建的线程太多。您可以减少创建的线程数,或从(慷慨的)默认值减少其默认堆栈大小<代码>-XX:ThreadStackSize=128将使其为128KB。当然,堆栈太少,如果您有一个特别深的方法调用,您可能会遇到StackOverflowError
(呵呵)
由于您必须生成大量线程(数千个)才能使用默认堆栈大小来实现这一点,我的直觉认为您最好的解决方案是#1。你的应用程序中不需要数千个线程 此错误消息通常表示系统已耗尽启动线程所需的资源。通常这是堆栈的内存
Java1.4.1于2002年9月发布。可能您的系统需要升级(可能是使用的硬件或软件版本)java.lang.OutOfMemoryError可能是由于应用程序的可用内存造成的,也可能是由于应用程序的内存泄漏造成的。检查相关线程 JVM分配每个线程内存空间,称为线程堆栈。默认值取决于操作系统和JVM。您可以尝试通过设置-Xss选项来分配分配给线程的内存,也可以尝试减少分配给堆内存的空间-Xmx选项。查看本文了解JVM调优。好吧,它说
java.lang.OutOfMemoryError: unable to create new native thread
看来你的记忆力不够。这可能是因为旧线程不会被杀死,所以会出现越来越多的线程,直到内存满为止
或者,您可以增加Java的内存大小。直接原因是JVM内存不足,无法为新线程创建堆栈 根本原因更难确定:
- 应用程序可能不必要或浪费地创建线程
- 应用程序可能在重新部署时泄漏线程
- 线程可能在I/O中阻塞(例如读取套接字),并且永远不会返回
- 自定义线程池中可能存在导致线程丢失的错误
- 新堆栈所需的内存可能已被其他东西用完;e、 g.通过堆或内存映射文件或JNI代码进行非堆分配
- 等等
您应该首先配置JVM在OOME上创建一个转储文件,并使用事后转储分析器查看是否有任何线索;e、 g.大量线程处于意外状态。您运行了多少线程,已经使用了多少内存?stacktrace很好地说明了这一点—“OutOfMemoryError”发生这种情况时,有多少线程正在运行?根据这个线程,限制是堆栈中存在连续内存块。我同意JVM应该更新,但这不太可能解决眼前的问题。(此外,该消息意味着它肯定是堆栈内存。)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1;
import java.util.Scanner;
/**
*
* @author smart
*/
public class JavaApplication1 {
public static void main(String[] args) {
String cname;
double quantity, price, dp, total, dv, finaltotal;
Scanner S=new Scanner(System.in);
System.out.println("please enter clientname");
cname=S . nextLine();
System.out.println("please enter quantity");
quantity=S . nextDouble();
System.out.println("please enter price");
price=S . nextDouble();
System.out.println("please enter discount percentage");
dp=S . nextDouble();
total=S . nextDouble();
dv=S . nextDouble();
finaltotal=S . nextDouble();
total= quantity+price;
dv= price-dp;
finaltotal=total*dv;
System.out.println(total);
System.out.println(dv);
System.out.println(finaltotal);
}
}