Java MapScript issues Servlet

Mario H. Basa mhbasa at YAHOO.COM
Tue Mar 1 08:55:55 EST 2005


Hello Umberto,

I was using an apache 2, but the php was compiled as a
CGI, so the slow performance can be attributed I think
to the overhead of forking and starting a new process.

I'll try and benchmark a DSO next. It will be
interesting to see the results of a fully-threaded php
mapscript.

mario.



--- Umberto Nicoletti <unicoletti at PROMETEO.IT> wrote:

> Quoting "Mario H. Basa" <mhbasa at YAHOO.COM>:
>
> > Hi.
> >
> > >From my experience, Java Mapscript still has some
> > problems with threads, and can still easily bring
> down
> > Tomcat even with the thread compile option is set.
> > Please correct me if I am wrong.
> >
>
> Yes, that is probably correct, although it is not
> *that easy*. I have also
> stressed mapscript with jmeter and actually not
> found errors, but I did not
> cover querying.
> That is why I voted for improved thread safety when
> the devs showed their wishlists.
>
>
> > What I did was I synchronized the class that does
> the
> > map processing, and now my test app can survive
> > benchmarking with JMeter. Here are my results as
> > compared with a simillar PHP CGI program:
> >
>
> This is definitely a correct workaround.
>
> > 4 threads (requests) per second, repeated 25 times
> >
> > PHP Mapscript 1.8 to 1.9 pages per second
> > Java Mapscript 2.3 to 2.5 pages per second
> >
> > I was honestly surprised with the result and it is
> > encouraging me to work with Java Mapscript even in
> a
> > synchronized mode.
> >
>
> Were you using apache 1.3 or 2.x in the php tests?
> Apache 1.3 uses a fork based
> model, that while being extremely safe and sound is
> not as fast as a threaded
> model. Apache 2.x has threads and should be faster.
>
> Regards,
> Umberto
>
> > mario
> > yokohama,japan
> >
> >
> > --- Joseph Miller <miller_joseph at BAH.COM> wrote:
> >
> > > Umberto,
> > >
> > > 1)I don't think I compiled specifically with
> > > multi-threading because it
> > > wasn't an option listed in the nmake.opt for
> > > Microsoft Visual C++  options
> > > file???  The last I heard multithreading was not
> > > even on the horizon for
> > > mapserver and yet I see it in the Unix build
> options
> > > file?  What do I need
> > > to do this?
> > >
> > > 2)I tried both options you mentioned, I had the
> > > problem when passed the
> > > same mapObj from request to request and stored
> it in
> > > the session and when I
> > > set it to null after every request and
> instantiated
> > > it and assigned
> > > attributes based on other variables stored in
> the
> > > requests and sessions?
> > > I'm assuming the latter is preferred?
> > >
> > > Thanks,
> > > Joe Miller
> > >
> > > On Mon, 28 Feb 2005 09:44:21 +0100, Umberto
> > > Nicoletti
> > > <unicoletti at PROMETEO.IT> wrote:
> > >
> > > >Did you enable threads support?
> > > >Java, and especially servlets, are definitely
> > > highly concurrent
> > > >environment, so you have to enable thread
> support
> > > when compiling
> > > >mapserver and mapscript. One very problematic
> spot
> > > with regards to
> > > >threads is in fact the parser of .map files.
> > > >
> > > >Do you attempt to reuse the same mapObj across
> > > multiple requests or just
> > > >create one and dispose as soon as you are done
> > > within a single request?
> > > >
> > > >HTH,
> > > >Umberto
> > > >
> > > >
> > > >On Mon, 2005-02-28 at 00:53 -0500, Miller
> Joseph
> > > wrote:
> > > >> Hi,
> > > >> I'm having a baffling problem with a nightly
> > > build of Java Mapscript
> > > >> from about a month ago that I am running on
> > > Windows 2000 with Tomcat
> > > >> 5.5.4.
> > > >>
> > > >> The symptom I see is that I can generate the
> > > default image but after the
> > > >> fourth or fifth time that I pass a new
> envelope
> > > to change the extent of
> > > >> the image I get the following error:
> > > >>
> > > >> The relevant part of the stack trace:
> > > >> java.lang.UnknownError: Failed to draw layer
> > > named 'world'.
> > > >>         at
> > >
> >
>
edu.umn.gis.mapscript.mapscriptJNI.mapObj_draw(Native
> > > Method)
> > > >>         at
> > >
> edu.umn.gis.mapscript.mapObj.draw(mapObj.java:397)
> > > >>
> > > >> Occasionally I'll get a flex scanner error or
> > > tomcat will crash with an
> > > >> Exception_Access_Violation memmove error
> similar
> > > to the one referred to
> > > >> here:
> > > >>
> > >
> >
>
http://forum.java.sun.com/thread.jspa?forumID=52&messageID=1124599&threa
> > > >> dID=286832
> > > >>
> > > >> All of this happens whether I instatiate new
> > > instances of the mapObj and
> > > >> set everything to null or if I use the same
> > > mapObj throughout and only
> > > >> after a few passes, suggesting to me that
> there
> > > is a memory issue
> > > >> somewhere.  I can pass on some specific code,
> but
> > > all I am really doing
> > > >> is creating new envelopes to store extents
> and
> > > then assigning them to
> > > >> the mapObj or extracting the corner
> coordinates
> > > and setting the extent
> > > >> with them.
> > > >>
> > > >> I've been fighting this for a frustrating
> week
> > > now.  Does anyone have
> > > >> any advice?
> > > >>
> > > >> Thanks,
> > > >> Joe Miller
> > > >--
> > > >Umberto Nicoletti
> > > <Mercury> At that point it
> > > will
> > > >+390415701366   unicoletti at prometeo.it
> > > compile, but segfault, as
> > > it should..
> > > >Prometeo S.R.L. The Software Experience
> > >
> > > Umberto,
> > >
> > > 1)I don't think I compiled specifically with
> > > multi-threading because it
> > > wasn't an option listed in the nmake.opt for
> > > Microsoft Visual C++  options
> > > file???  The last I heard multithreading was not
> > > even on the horizon for
> > > mapserver and yet I see it in the Unix build
> options
> > > file?  What do I need
> > > to do this?
> > >
> > > 2)I tried both options you mentioned, I had the
> > > problem when passed the
> > > same mapObj from request to request and stored
> it in
> > > the session and when I
>
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com



More information about the mapserver-users mailing list