powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Зависание java URLConnection под Oracle
1 сообщений из 1, страница 1 из 1
Зависание java URLConnection под Oracle
    #32504252
Sibvez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто сможет помочь...
Есть java класс, который хранится в Oracle database... вот код функции..
-------------------------
import java.awt.*;
import java.applet.*;
import java.lang.*;
import java.net.*;
import java.util.*;
import java.io.*;
import oracle.jdbc.*;
import java.sql.*;

public class Synchronization
{
public static String retstr = "done";
private final static boolean debug = true;
public static byte[] senddata(String p1, String p2) throws Exception{
try {
URLConnection conn;
URL servlet;
conn = null;
servlet = null;
logText("Start senddata");
try {
servlet = new URL(p1);
}
catch (Exception e){
retstr = "Can't create URL. Error message - " + e.getMessage();
logText(retstr);
servlet = null;
conn = null;
return retstr.getBytes();
}
logText("Create URL: " + p1);
try {
conn = servlet.openConnection();
}
catch (Exception e){
retstr = "Can't create Connection. Error message - " + e.getMessage();
logText(retstr);
servlet = null;
conn = null;
return retstr.getBytes();
}
logText("Create Connection");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setDefaultAllowUserInteraction(true);
// Send data to server
PrintStream out = new PrintStream(conn.getOutputStream());
out.print(p2);
out.flush();
out.close(); // ESSENTIAL for this to work!
logText("Send to server: " + p2);
int len = conn.getContentLength();
logText("Received Content-Length: " + len);
if (len > 0) {
InputStream result=conn.getInputStream();
BufferedInputStream in = new BufferedInputStream(result);
byte ret_val[] = new byte[4000];
int num = 0;
num = in.read(ret_val,0,4000);
byte to_oracle[] = new byte[num];
for (int i = 0; i < num; i++) to_oracle[ i ]=ret_val[ i ];
in.close();
result.close();
logText("End senddata");
servlet = null;
conn = null;
return to_oracle;
}
else {
retstr = "Error!!! 0 length content";
servlet = null;
conn = null;
return retstr.getBytes();
}
} // try
catch(Exception exc){
retstr = "Error!!!";
return retstr.getBytes();
} // catch
}
public static void logText(String text) throws Exception{
if(debug){
System.out.println(text);
}
}
}
------------------------
в двух словах функция должна обратиться к сервлету на другом серваке и POST'ом передать туда строчку, потом получить ответ сервлета и отдать его вызывающей программе....
вызываю функцию из пакета вот так...
------------------------
function f_senddata(p1 in varchar2, p2 in varchar2) return varchar2
as language java name 'Synchronization.senddata(java.lang.String, java.lang.String) return java.lang.String';

procedure p_test
is
v_str_to_send varchar2(32767) := 'ping';
v_ret_str varchar2(32767);
begin
v_ret_str := f_senddata(pak_const.c_connection_string, v_str_to_send);
if (v_ret_str <> 'OK') then
pak_history.p_error('Error Synchronization (ping). String: ' || v_str_to_send || '. Received answer: ' || v_ret_str);
end if;
EXCEPTION
WHEN others THEN
pak_history.p_error('Error Synchronization (ping). String: ' || v_str_to_send || '. Received answer: ' || v_ret_str);
end;

------------------------
В том, что сервлет, к которому обращается фенкция работает корректно, у меня сомнений нету...
Теперь собственно сам вопрос...
все работает очень нестабильно... а именно можно 10 раз вызвать процедуру p_test и все будет нормально, но на определенном шаге это дело отправляется в астрал... а именно явавская функция вызывается и все.....
в функции выполнение доходит только до посылки данных на сервлет, причем логи сервлета говорят, что к нему никто не обращался... а моя функция при этом спокойно висит и якобы ждет ответа..... может висеть так несколько дней... помогает ее убить только перезагрузка компа...
Может кто сможет сказать, где у меня ошибка (кроме как в ДНК:))
Заранее спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Зависание java URLConnection под Oracle
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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