|
Zkuste
si zapnout trasovani Suni SSL implementace nastavenim tusim, ze
javax.net.debug=ssl
Z toho
by mohlo jit neco vykoukat.
Honza
Po dalsich vyzkumech si odpovim si sam
:-)
Pozadavky na zavedeni timeoutu a metod pro jejich nastavovani v
URLConnection jsou v BTS Sunu od roku 1998! Jako castecna nahrada byly
do 1.4 zavedeny nize uvedene systemove property
(sun.net.client.defaultConnectTimeout a
sun.net.client.defaultReadTimeout) ktere vsak podle ohlasu a dalsich Bugu v
BTS moc nefungovaly ani v 1.4.2 (nejen pro HTTPS ale ani pro HTTP, take
asi dost zalezi na platforme, bud nefungovali vubec, nebo timeoutovaly az
po dvojnasobku zadaneho casu,...) V 1.5 (tiger) jiz by mely byt do
URLConnection pridany metody umoznujici nastavovat timeout pro jednotliva
volani, doufam ze budou fungovat ;-)
@see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4143518 @see
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4700777
Kazdopadne
funkcni timeouty jsou jen resenim dusledku zamrznuteho spojeni, neresi
pricinu. Pricina bude pravdepodobne nekde jinde (zadna nebo nekorektni
odpoved serveru, chyby pri ceste paketu po internetu, ...), budu patrat
dal.
Vlastik
-------- Původní zpráva --------
Zdravim,
vyskytl se mi problem s timeoutem, respektive netimeoutem HTTPS
spojeni. Z java kodu delam HTTPS dotaz na jiny server. Kod je zhruba
nasledujici:
URL ourl = new URL(url); HttpURLConnection conn = (HttpURLConnection) ourl.openConnection(); conn.connect(); .... url je pritom "https:/...."
Pri
inicializaci aplikace mam nastaveny
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); takze
by se mela pouzit JSSE implementace od Sunu. Aplikace je provozovana na JVM
z Sun JDK 1.4.2 na Linuxu.
Problem je ze to spojeni na vzdaleny server
nekdy zustane "viset" a nikdy neskonci, v kodu nedostanu zadnou exception,
proste nic. Zajimave je ze se problem zacal objevovat asi az po dvou letech
provozu. Problem je dost nahodny a nejsem schopen ho
nasimulovat.
Nesetkal se nekdo s podobnym problemem? Neni ten problem v
nastaveni nejakeho timeoutu?
Hledal jsem v dokumentaci i na webu jaky
je default a jak nastavit timeout pro to HTTPS spojeni ale nejak nejsem
uplne uspesny. Jedine co jsem nasel je nastaveni systemovych property
sun.net.client.defaultConnectTimeout a
sun.net.client.defaultReadTimeout U nich je napsano ze: "These
properties specify the default connect and read timeout (resp.) for the
protocol handler used by java.net.URLConnection." Defaultni hodnota by
mela byt -1 coz je bez timeoutu.
Zajimalo by me zda ma nekdo odzkouseno
ze nastaveni techto property ovlivni i HTTPS spojeni. Dale by me zajimalo
zda ma nekdo odzkouseno ze staci ty property nastavit az z aplikace pomoci
System.setProperty(...); a v ktere fazi, nebo je to jiz pozde a musi se
nastavit na commandline pri spousteni javy.
Predem
dik
Vlastik
--
Ing. Vlastimil Elias Qbizm technologies, a.s.
vedouci analytik ... the art of software.
____________________________________________________________________
www.qbizm-technologies.cz www.qbizm.cz www.qbizm-services.cz
|