B
bananenkasper
Gast
Hallo,
ich habe eine EJB3.0 Anwendung auf einem JBoss 6 laufen.
Jetzt möchte ich über eine Client-Application Dateien einlesen und als Object zum Server senden, der diese Daten dann in einer Datenbank ablegt.
Mit wenigen Objekten ~100 klappt es auch anstandslos, aber mit ~1000 tut sich lange wenig, bis es zu einem
kommt.
Ich mutmasse dass irgendwas mit der Serialisierung suboptimal läuft, weiß aber nicht wie ich überprüfen kann, was wirklich so lange dauert.
Hier ist etwas Code:
Client:
Server:
Output:
Danke!
ich habe eine EJB3.0 Anwendung auf einem JBoss 6 laufen.
Jetzt möchte ich über eine Client-Application Dateien einlesen und als Object zum Server senden, der diese Daten dann in einer Datenbank ablegt.
Mit wenigen Objekten ~100 klappt es auch anstandslos, aber mit ~1000 tut sich lange wenig, bis es zu einem
Code:
java.lang.OutOfMemoryError: Java heap space
Ich mutmasse dass irgendwas mit der Serialisierung suboptimal läuft, weiß aber nicht wie ich überprüfen kann, was wirklich so lange dauert.
Hier ist etwas Code:
Client:
Java:
public void upload() throws Exception {
info("reading files");
List<? extends Fraction> fractions = readFractions();
final Sample s = new SampleImpl(sampleName, new UserImpl(), fractions);
info("uploading " + fractions.size() + " fractions (raw)");
session.addSample(s);
info("normalizing sample + [" + s.getId() + "]");
session.normalizeSample(s.getId(), choosenNormalizationMethod, standards, massDelta);
}
Server:
Java:
@Override
public void addSample(Sample sample) throws Exception {
log.debug("Adding sample [" + sample.getId() + "]");
final SampleBean bean = JPAUtils.createSampleBean(sample);
try {
log.debug("storing to db");
em.persist(bean);
log.debug("store successful");
} catch (Throwable t) {
log.debug(t.getLocalizedMessage(), t);
throw new EJBException("could not add sample");
}
}
Output:
Code:
INFO trying to connect
INFO conneted
INFO reading files
INFO uploading 962 fractions (raw)
ERROR Transaction rolled back
Danke!