Исключение при выполнении выбора java.lang.IllegalThreadStateException: поток уже запущенJAVA

Программисты JAVA общаются здесь
Anonymous
Исключение при выполнении выбора java.lang.IllegalThreadStateException: поток уже запущен

Сообщение Anonymous »

Получение исключения при выполнении выбора java.lang.IllegalThreadStateException: поток уже запущен, когда мы пытаемся выполнить оператор выбора на сервере sql через Java. Ниже приведен фрагмент кода

Код: Выделить всё

QueryExecuter queryExec = null;
PreparedStatement ps = null;
ResultSet rs = null;
queryExec = new QueryExecuter("Sql");   //To get connection from MS SQL Server
ps = queryExec.getPreparedStatement(RegistrationSqlCatalog.strGetCartItemVinData);
ps.setString(1,rdto.getVIN());
rs = queryExec.executeSelect(ps);
дело в том, что мы вообще не используем какой-либо поток для запуска этого процесса, мы подключаем эту базу данных с помощью соединений jdbc, и в журналах мы видим следующие строки

Код: Выделить всё

SQL Data source iscom.ibm.ws.rsadapter.jdbc.WSJdbcDataSource@4a4adf7d
QueryExecuter.PreparedStatement() sqlQuery   SELECT CARTID FROM CARTITEMS WHERE UPPER(VINNUMBER) = ?
Excpetion in Execute Select java.lang.IllegalThreadStateException: Thread is already started
и мы используем какой-то старый стек, в котором источники данных и все остальное управляются в консоли администратора WebSphere.
Та же сборка отлично работает в DEV и, что удивительно, он не работает в ТЕСТОВОЙ среде, где используется тот же файл jar(mssql-jdbc-10.2.0.jre8.jar), а также для развертывания используется одно и то же ухо.
Итак, мы попытались подключить базу данных TEST к нашей среде DEV, даже тогда она работает нормально, но та же база данных в среде TEST не работает.
Мы проверили версию jar, Ear и Websphere или даже в Java-версии они выглядят хорошо, кроме этих, будут ли какие-либо факторы, влияющие на этот процесс, если да, сообщите нам.

Код: Выделить всё

public QueryExecuter (String sql) throws SQLException, NamingException{
con = this.getSQLConnection();
}

private Connection getSQLConnection() throws SQLException, NamingException{
DataSource datasrc = null;
datasrc = OntracServiceLocator.getInstance().getSQLDataSource();
con = datasrc.getConnection();
if (con == null) cat.info("Query Executer Unable to get Connection ");
return con;
}

public DataSource getSQLDataSource() throws NamingException {
String dsName = "java:comp/env/jdbc/sql";
cat.info("data source " + dsName);
ic = getInitialContext();
DataSource ds = null;
ds = (DataSource) ic.lookup(dsName);
cat.info("SQL Data source is" + ds);
return ds;
}
над цепочкой кода для QueryExecuter
Может ли кто-нибудь помочь нам с этой проблемой?

Подробнее здесь: https://stackoverflow.com/questions/784 ... ead-is-alr

Вернуться в «JAVA»