Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Io exception: Broken pipe / 8 сообщений из 8, страница 1 из 1
18.10.2004, 18:10
    #32743304
mitya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Io exception: Broken pipe
Использую Oracle 8.1.7.3.0
вызываю хранимую процедуру, которая делает select по входящему seqnr
из какой-то таблицы и вставляет запись в таблицу, где есть LONG - field.
Если в LONG надо вставлять большое зкачение > 10K, то
получаю ошибку.

CallableStatement cst = db_con.prepareCall("{ call edbadm.FormulaPackage.Update_FormulaText(?) }");
cst.setString(1,seqnr);
try {
cst.execute();
}
catch (Exception e)
{
log(e.toString());
cst.close();
return;
}
cst.close();

Invocation exception: Io exception: Broken pipe(java.sql.SQLException: Io exception: Broken pipe)
java.sql.SQLException: Io exception: Broken pipe
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:476)
at aktif$zahlerstande$formula_frame$html.run(aktif$zahlerstande$formula_frame$html.java:1403)
at Jasper.doGet(Jasper.java:90)
at Jasper.doPost(Jasper.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:521)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:317)
at org.apache.jserv.JServConnection.run(JServConnection.java:188)
at java.lang.Thread.run(Thread.java:534)

В чем проблемма?
...
Рейтинг: 0 / 0
18.10.2004, 18:26
    #32743328
z
z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Io exception: Broken pipe
Broken pipe

разрыв соединения...(инет упал и тд)
...
Рейтинг: 0 / 0
18.10.2004, 18:56
    #32743372
mitya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Io exception: Broken pipe
Так постоянно происходит и только если в LONG большое значение
...
Рейтинг: 0 / 0
18.10.2004, 19:12
    #32743384
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Io exception: Broken pipe
А с CLOB'ом тоже самое? Вроде как в PL/SQL можно переменной типа LONG присвоить значение из переменной типа CLOB, м.б. до каких-то пределов. Либо же попробовать вызвать метод CallableStatement.setLong().
...
Рейтинг: 0 / 0
19.10.2004, 09:44
    #32743728
SOMNAMBULA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Io exception: Broken pipe
Что-то мне подсказывает что проблемма тут не в LONG...
Я с похожим сталкивался. Так сложно сказать, опиши подробнее, как и откуда и указанный код вызывается (судя по логу - из сервлета).
...
Рейтинг: 0 / 0
19.10.2004, 15:42
    #32744665
mitya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Io exception: Broken pipe
Код вызывается из сервлета.
Я уже пробовал вызывать не из хранимой процедуры:

sql = "UPDATE CONSUMPTIONLOCATIONFORMULATEXT SET FORMULATEXT = ? WHERE seqnr = ?";
PreparedStatement pstmt = db_con.prepareStatement(sql);
ByteArrayInputStream bais = new ByteArrayInputStream(formulatext.getBytes());
long formulaLength = bais.available( );
pstmt.setBinaryStream(1, bais, (int)formulaLength);
pstmt.setString(2, seqnr);

try
{
pstmt.executeUpdate( );
}
catch(Exception e)
{
log(e.toString());
bais.close();
bais = null;
pstmt.close( );
pstmt = null;
return;
}
pstmt.close( );
pstmt = null;
результат тот же: Io exception: Broken pipe

Если использовать Oracle 9.2. то все ОК, но есть заказчики c Oracle 8.1.7.3.0
...
Рейтинг: 0 / 0
19.10.2004, 16:40
    #32744808
SOMNAMBULA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Io exception: Broken pipe
Поднял старые файлы...
нет, у меня немного не такой список исключений был, но очень похож. Правда я с оракл 9.2. и работал. В моём случае была проблемма с одновременным доступом нескольких потоков к коду, выполняющему и обрабатывающему соединение с БД. В твоём случае такого нет? Например, одновременные запросы к сервлету как раз и порождают несколько потоков (для каждого запроса). Если так, то попробуй синхронизировать доступ или имплементировать SingleThreadModel для сервлета.
...
Рейтинг: 0 / 0
20.10.2004, 11:02
    #32745887
mitya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Io exception: Broken pipe
Нет у меня нет проблем с одновременным доступом.

Самое интересное, что проверял на Oracle 8.1.7.0 и
там все работает, а на 8.1.7.3 не хочет. Дрова пробовал и для 8-го и для 9-го.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Io exception: Broken pipe / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]