Avatar billede schristensen Praktikant
16. maj 2005 - 13:26 Der er 12 kommentarer og
1 løsning

Java webservice

Hej

Jeg har en Java webservice som er lagt på en Oracle webserver. Servicen skal kaldes fra en C# klient. Opsætningen virker sådan set fint. Jeg kan sagtens kalde servicen og få et resultat.

Mit problem er, at når jeg øger mængden af data jeg sender tilbage til klienten smider min webservice en java.lang.OutOfMemory exception. Jeg kan fint kalde servicen fra en browser og få et svar - selvom datamængden er den samme.

Min første tanke var at det var klienten som havde en fejl, da jeg fint kunne kalde fra min browser. Jeg lavede derfor en Java klient (en stub) som gjorde det muligt for mig at kalde min egen webservice fra min Java stub. Denne nye stub for dog også den samme exception.

Har du nogen idé til hvad jeg gør forkert - og hvorfor min webservice fint virker når jeg kalder den fra en browser men ikke fra en Java eller C# klient?

Mvh

Søren
Avatar billede arne_v Ekspert
16. maj 2005 - 13:31 #1
Hm. Browser betyder jo HTTP. Mens .NET eller Java client formentligt er SOAP/HTTP.
Hvilket jo altså ikke er det samme.

Hvad er -Xmx sat til for din OC4J ?
Avatar billede schristensen Praktikant
16. maj 2005 - 13:32 #2
2 sek ... kigger lige
Avatar billede schristensen Praktikant
16. maj 2005 - 13:35 #3
Kan ikke finde nogen -Xmx under Java options!!
Avatar billede arne_v Ekspert
16. maj 2005 - 13:39 #4
nu kender jeg ikke OC4J

-Xmx er java command line switch

hvis det er en GUI så hedder det sikker "JVM maxmiumum memory" eller sådan noget
Avatar billede schristensen Praktikant
16. maj 2005 - 13:42 #5
Jeg sidder og kigger i Oracle' Enterprise-Manager. Det er bare underligt med min fejl. Jeg plejer ellers nok at få OutOfMemory exceptions ud i server loggen, men fra min webservice OC4J bliver der ikke logget noget om at der kommer OutOfMemory.. er det ikke underligt?
Avatar billede schristensen Praktikant
16. maj 2005 - 13:46 #6
Jeg har lige sat følgende ind under Java options: -Xms256m -Xmx256m -Xss128k

Jeg fandt det under en anden OC4J på samme server..
Avatar billede arne_v Ekspert
16. maj 2005 - 13:50 #7
hvor meget RAM er der i den maskine ?

256 MB er ikke meget idag !

Hvis du har 1 GB eller mere så prøv -Xmx512m (men lad bare -Xms blive på
256 eller måske endda sæt ned til 128)
Avatar billede schristensen Praktikant
16. maj 2005 - 13:52 #8
Jeg har 4gb i maskinen, men der er også 16 OC4J instanser på maskinen - så jeg tør dårligt nok tage mere en 256 lige nu... Hvad står -Xms parameteren for?
Avatar billede arne_v Ekspert
16. maj 2005 - 13:54 #9
C:\>java -X
    ...
    -Xms<size>        set initial Java heap size
    -Xmx<size>        set maximum Java heap size
    -Xss<size>        set java thread stack size
Avatar billede schristensen Praktikant
16. maj 2005 - 13:56 #10
ok.. du må meget gerne smide et svar, så jeg kan give dig nogle point.
Avatar billede arne_v Ekspert
16. maj 2005 - 13:57 #11
16 er mange, men 16 * 256 MB = 4 GB, d.v.s. at de kan ikke udnytte det memory
som ikke bliver brugt af de andre

jeg tror (men jeg er ikke app server tunings ekspert) at

-Xms128m -Xmx384m

måske var et godt bud - de starter med 128 MB hver - det 2 GB som bliver
ligeligt fordelt - og så er der 2 GB som kan fordeles på dem som har brug for det
Avatar billede arne_v Ekspert
16. maj 2005 - 13:57 #12
virker det nu ?
Avatar billede schristensen Praktikant
16. maj 2005 - 14:03 #13
Ja det virker som det skal. Vi har en anden applikation kørende på serveren. Applikationen er delt over de 15 resterende OC4J sådan så at hvert "område" af applikationen kører i sin egen OC4J, og derfor kan deployes og genstartes uden at hele applikationen går ned, men det synes at give en masse problemer. Der er bl.a. rimeligt lang ventetid på at skifte fra en OC4J til en anden. Vi har derfor overvejet at smide det hele i den samme OC4J. Jeg synes bare det er svært at finde den rette løsning som vil gøre at applikationen kører bedst... Mange tak for din hjælp - jeg vil bestemt prøve dit tip med at sætte Xms lidt ned og Xmx lidt op.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester