Я использую jsp-сервлет в своем приложении. и развернул войну на сервере jboss 7.0.2. у меня есть сервлет с кодом, связанным с базой данных, и он вызывается много раз в секунду (скажем, 500 раз). но он падает для такого количества потоков, jboss 7.0.2 не сможет обработать эти потоки.
Я использую 64-битную JVM.
Я уменьшил размер стека с помощью -Xss256k, у меня это не работает.
я сделал настройку в jboss.conf
wrapper.java.additional.10 = -XX: ThreadStackSize = 256k
Мне нужно обработать 2000 потоков на jboss7.
сервер (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)
Вот мой сервлет 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;
}
}
код для добавления метода
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;
}
Я проверил пустой сервлет с единственным оператором печати консоли. он работает нормально, но не работает для вышеуказанного сервлета.
Я на правильном пути?
как сервер будет обрабатывать такой сервлет для выше 500-800 потоков?