У меня есть главный поток(main(String [] args)) , в нем есть
while(true){
Socket socket = serverSocket.accept();
System.out.println(socket.getInetAddress());
//Когда есть новое подключение запускаю новый поток для работы с ним
new SecondSocket(socket).start();
}
Есть еще один класс в ней настройка c3p0
public class DatabaseUtility {
static String connectionUrl = "jdbc:sqlserver://blablabla";
public static ComboPooledDataSource getDataSource() throws PropertyVetoException{
ComboPooledDataSource c = new ComboPooledDataSource();
c.setJdbcUrl(connectionUrl);
c.setInitialPoolSize(3);
c.setMinPoolSize(3);
c.setAcquireIncrement(3);
c.setMaxPoolSize(100);
c.setMaxStatements(500);
return c;
}
}
И классе new SecondSocket(socket).start(); Создаю CallableStatement :
CallableStatement cstmt = null;//эту же ссылку использую еще в двух местах
//т.е. 3 объекта CallableStatement
cstmt = connection.prepareCall("{call xml_parser(?,?)}");
cstmt.setString(1, line);
cstmt.registerOutParameter(2, Types.VARCHAR);
cstmt.execute();
Где я не правильно делаю? если связь с клиентом обрывается созданный поток new SecondSocket(socket).start(); он должен исчезнуть из хипа?На заметку метод run() свою работу завершает.Хочу узнать в каком из них проблема в c3p0 или в SecondSocket(socket).start() или в Socket()?
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости