我在我的应用程序中使用jsp-servlet。并在jboss 7.0.2服务器上部署了这场战争。我有servlet有与数据库相关的代码,并被称为许多时间在秒(比如说500次)。但是对于这么多的线程来说,jboss 7.0.2将无法处理这些线程。jboss7,java.lang.OutOfMemoryError:无法创建新的本地线程
我正在使用64位jvm。
我用-Xss256k减少了线程堆栈的大小,这对我不起作用。
我的确在jboss.conf
wrapper.java.additional.10 = -XX配置:ThreadStackSize = 256K
我需要处理上jboss7的2000多个线程。
服务器(jboss7.0.2)引发异常。
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Unknown Source)
这里是我的servlet java.lang.OutOfMemoryError:无法创建新的本地线程
public class Test extends HttpServlet {
private static final long serialVersionUID = 1L;
public Test() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
public void processRequest(HttpServletRequest request,
HttpServletResponse response) {
Logger log=LoggerFactory.getLogger(feedback.class);
/* here is my code to insert the data in database. */
TestClass testobj = new TestClass();
testobj.setparam("");
smsmanager1.add(sms);
smsmanager1 = null;
sms = null;
}
}
代码FOT添加方法
public void add(T obj) {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session=sessionFactory.openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
session.save(obj);
transaction.commit();
session.flush();
} catch (HibernateException e) {
if(transaction!=null){
transaction.rollback();}
e.printStackTrace();
} finally {
if(session!=null){
session.close();}
session = null;
transaction = null;
}
我为有空白的servlet测试唯一一个控制台打印语句。它工作正常,但它不适用于上面的servlet。
我在正确的轨道上吗?
服务器如何处理500-800线程以上的这种servlet?