[ glamoc @ 26.06.2008. 08:46 ] @
radim neki distribuirani projekat za faks i imam problem kad preko mreze prenoim neki veliki fajl.Naime posle odredjene kolicine podataka
baci mi izuzetak outofMemory exception.Da stalno ne bih resetovao stream pokusao sam da posiljaoca i primaoca sinhronizujem tako da se stream resetuje
posle odredjenog broja paketa ali kad treba da resetuje on baci izuzetak java.io.IOException: mark/reset not supported

kod f-je za reset je
protected ObjectOutputStream oout;
protected ObjectInputStream oin;

public void reset()throws CommunicationException{
try{
oout.reset();
oin.reset();
}catch(Exception e){
e.printStackTrace();
throw new CommunicationException();
}
}
ako neko zna sta je fora neka javi hitno
[ Tulex @ 27.06.2008. 09:05 ] @
I ja sam imao slican problem sa stream-om, odnosno sa metodom mark.... Dosao sam do zakljucka da ne moze svaki stream da se oblezi sa mark, mozda i gresim.
E sad, ti resetujes i input i output stream pa vidi na kom ti puca kod. Iako se iz tvog koda ne vidi verovatno koristis mark da oznacis gde si stao i posle sa reset da se vratis na to mesto. Ne vidim smisao da pozivas samo reset jer ce te vratiti na pocetak stream-a.
Sto se tice Out of memory dobro proveri (ali zaista DOBRO) da li zatvaras sve stream-ove za sobom. Dosta puta sam se opekao na toj gresci.
I za kraj pokusaj da povecas kolicinu memorije za svoju aplikaciju na 256MB -Xmx256m ili cak 512. Mozda ti to resi problem.

Verovatno ti nisam bio od neke velike pomoci... ali to je najbolje sto mi trenutno pada da pamet.
[ glamoc @ 27.06.2008. 10:42 ] @
E mozes li mi objasniti to sa mark posto ja nista nisam markirao...
evo malo cu ti pojasniti kako sam zamislio da radim ovaj reset.
Posto ne mogu da prenesem velike fajlove preko streamova kada recimo klijent salje serveru neki fajl namestio sam da posle poslatih
2048 paketa od 2048 bajta kljent se blokira na Objectread cekajuci da server procita svih 2048 paketa.Server tada resetuje stream salje poruku klijentu i ovaj
nastavlja sa radom i tako u krug dok se ne prenese ceo fajl.Nisam nista markirao mada iz ove tvoje price kapiram da bi trebao da postavim neki marker u streamu i kad uradim reset stream ce se vratiti na taj marker a pdatci posle ce biti izrisani.Molio bih te za pojasnjavanje markiranja i samog reseta tj da li reset brise stream posle mark ili samo pozicionira odakle pocinje citanje bez brisanja
[ Tulex @ 27.06.2008. 10:54 ] @
Molim te izvini malo sam u frci.
Ovako stream se ne brise
to je kao neki niz...Znaci kad kazes reset on se samo pozicionira na pocetak tog streama i onda opet mozes da ga citas iz pocetka
A ako kazes mark...onda postavis neki pointer na to mesto i nakon toga kad kazes reset vratis se nazad do tog mark-a a ne na sam pocetak streama..
Sad jako zurim...ali videcu jos kasnije sta mogu da ti iskopam
Pozdrav
[ glamoc @ 28.06.2008. 12:29 ] @
Ljudi ako neko zna sta treba raditi kad transportujem veliku kolicinu podataka da ne dodje do out of memory exceptiona neka pise...HITNO je
[ milan.dinic @ 28.06.2008. 12:54 ] @
dodaj JVM argument -Xmx

npr -Xmx512m
[ glamoc @ 28.06.2008. 14:11 ] @
to nije resenje sta ako prebacujem 2GB...
[ milan.dinic @ 28.06.2008. 14:46 ] @
ako je fajl veci od 2 gb mozes da kopiras binarno deo po deo falja
[ glamoc @ 28.06.2008. 18:28 ] @
Ma ne moze se fajl preko mreze poslati ceo nego kao nizovi bajta ali to mene i muci jer kad ga izdelim na pakete od 2048 bajta i kad je fajl veci onda se stream prepuni i baci mi izuzetak.Meni treba neka fora kako da ispraznim stream nakon recimo 10 Mb(pokusao sam da zatvorim streamove pa da ih ponovo otvorim ali ne pali)
[ masetrt @ 03.07.2008. 16:02 ] @
probaj da koristis jsch biblioteku. U sustini tamo imas implementiran scp sto mislim da ce ti zavrsiti posao

http://www.jcraft.com/jsch/