Re: [appengine-java] Re: Java Heap Space Error, Correct Increasing Method?

2010-06-28 Thread Toby Reyelts
You need to supply --jvm_flag as a command-line argument to dev_appserver.sh
(aka KickStart), not to java.exe. That should work the same way for the ant,
dev_appserver/ task. (You can see this in config/user/ant-macros.xml).

On Mon, Jun 28, 2010 at 3:51 PM, Mike Dillon mikedillo...@gmail.com wrote:

 Another thing to consider. I'm not using eclipse, and I'm building and
 running the server with 'ant runserver'. I just realized that ant
 isn't calling
 dev_appserver.sh so I haven't been executing those args at all. When I
 use dev_appserver.sh to run my server it chokes on --jvm_flag but will
 run with just the -Xmx, however that has no affect.

 - Mike

 On Jun 28, 2:47 pm, Mike Dillon mikedillo...@gmail.com wrote:
  Thanks,
 
  Yes that is exactly whats going on, the linux box has 4gb of ram, my
  mac has 2gb...
 
  And yes I tried the --jvm_flag=-Xmx512m on my mac with no success.
 
  - Mike
 
  On Jun 28, 2:42 pm, Don Schwarz schwa...@google.com wrote:
 
 
 
   Have you tried --jvm_flag=-Xmxwhateverm on your Mac?  It should work
 there
   too.
 
   As for the Linux box, the default heap size is different depending on
   whether you have a server-class machine or not, so it is possible
 that you
   are seeing a much higher default heap size just by virtue of using a
 machine
   with more RAM or more processors.
 
   The -Xmx setting you added to dev_appserver.sh has no effect.  Your
 code is
   executed in a subprocess, which is why --jvm_flag must be used to pass
 Java
   args through to this process.
 
   On Mon, Jun 28, 2010 at 6:38 PM, Mike Dillon mikedillo...@gmail.com
 wrote:
Thanks Don,
 
I forgot to mention that I'm using a mac with the latest snow leopard
update. It seems that these heap space
commands are incorrect for my machine, because we just tested it on a
linux box and it works fine, even
without the --jvm_flag prefix.
 
Any ideas?
 
- Mike
 
On Jun 28, 1:18 pm, Don Schwarz schwa...@google.com wrote:
 I believe you want the following flag:
 
 --jvm_flag=-Xmx512m
 
 On Sun, Jun 27, 2010 at 3:13 PM, Mike Dillon 
 mikedillo...@gmail.com
wrote:
  Hello all,
 
  Im working on a project that reads GTFS archives as part of its
  functionality. When we are importing
  a particular set of data that has ~60,000 entries my dev server
 locks
  up around the 27,000 entry. The
  error is the java heap space error. I would like to know if
 anyone has
  successfully upped their heap
  space. I searched, and found general instructions but after
  implementing them I'm still failing around
  the same entry. This is leading me to believe that my command
 line
  args are not taking affect. Here
  is what I have so far:
 
  appengine-sdk-java/bin/dev_appserver.sh:
  #!/bin/bash
  # Launches the development AppServer
  [ -z ${DEBUG} ] || set -x  # trace if $DEBUG env. var. is
 non-zero
  SDK_BIN=`dirname $0 | sed -e s#^\\([^/]\\)#${PWD}/\\1#` # sed
 makes
  absolute
  SDK_LIB=$SDK_BIN/../lib
  SDK_CONFIG=$SDK_BIN/../config/sdk
  java -Xms1024m -Xmx1024m -ea -cp
  $SDK_LIB/appengine-tools-api.jar \
   com.google.appengine.tools.KickStart \
   com.google.appengine.tools.development.DevAppServerMain $*
 
  Is this correct?
 
  Also the way we get our data is through a custom import function
 that
  chunks the data into groups of 20
  and then processes them and stores them into the datastore.  We
 are
  only using one instance of the
  persistance manager as per the recommendations to use a singleton
  class. Each batch hits a servlet on
  our app and then does its work. Should we close the persistence
  manager after every batch is completed?
  I'm wondering if this would be a memory leak.
 
 I believe our documentation recommends storing the
PersistenceManagerFactory
 as a singleton, but using a new PersistenceManager each time
 (remembering
to
 close it before discarding).
 
 However, the local implementation of the datastore does keep
 everything
in
 memory (and simply flushes to disk periodically), so you will run
 into
size
 issues at some point.
 
--
You received this message because you are subscribed to the Google
 Groups
Google App Engine for Java group.
To post to this group, send email to
google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to
google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%2B
 unsubscr...@googlegroups.com
.
For more options, visit this group at
   http://groups.google.com/group/google-appengine-java?hl=en.

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this 

[appengine-java] Re: Java Heap Space Error, Correct Increasing Method?

2010-06-28 Thread Mike Dillon
Solved!

Okay here is a quick format for how to increase your java heap space:

If you are running your dev server by running ./dev_appserver.sh war
dir then do this:
#!/bin/bash
# Launches the development AppServer
[ -z ${DEBUG} ] || set -x  # trace if $DEBUG env. var. is non-zero
SDK_BIN=`dirname $0 | sed -e s#^\\([^/]\\)#${PWD}/\\1#` # sed makes
absolute
SDK_LIB=$SDK_BIN/../lib
SDK_CONFIG=$SDK_BIN/../config/sdk
java -ea -cp  $SDK_LIB/appengine-tools-api.jar \
  com.google.appengine.tools.KickStart \
  com.google.appengine.tools.development.DevAppServerMain --jvm_flag=-
Xmxmem size here $*

*** Notice where the --jvm_flag is !

If you are using ant runserver then you need to edit appengine-sdk-
java/config/user/ang-macros.xml :
Find this, and add an arg value:
 macrodef name=dev_appserver description=Runs the App Engine
Development App Server
attribute name=war description=The exploded war directory
containing the application/
attribute name=port default=8080 description=The port the
server starts on/
attribute name=address default=localhost description=The
interface the server binds to/
element name=options optional=true description=Additional
options for dev_appserver/
element name=args optional=true description=Additional
arguments for the java task/

sequential
  java classname=com.google.appengine.tools.KickStart
classpath=${appengine.tools.classpath}
fork=true failonerror=true
arg
value=com.google.appengine.tools.development.DevAppServerMain/
arg value=--po...@{port}/
arg value=--addre...@{address}/
arg value=--jvm_flag=-Xmxmem size here/
options/
arg value=@{war}/
args/
  /java
/sequential
  /macrodef


Thanks for the help Don.

- Mike

On Jun 28, 3:51 pm, Mike Dillon mikedillo...@gmail.com wrote:
 Another thing to consider. I'm not using eclipse, and I'm building and
 running the server with 'ant runserver'. I just realized that ant
 isn't calling
 dev_appserver.sh so I haven't been executing those args at all. When I
 use dev_appserver.sh to run my server it chokes on --jvm_flag but will
 run with just the -Xmx, however that has no affect.

 - Mike

 On Jun 28, 2:47 pm, Mike Dillon mikedillo...@gmail.com wrote:



  Thanks,

  Yes that is exactly whats going on, the linux box has 4gb of ram, my
  mac has 2gb...

  And yes I tried the --jvm_flag=-Xmx512m on my mac with no success.

  - Mike

  On Jun 28, 2:42 pm, Don Schwarz schwa...@google.com wrote:

   Have you tried --jvm_flag=-Xmxwhateverm on your Mac?  It should work 
   there
   too.

   As for the Linux box, the default heap size is different depending on
   whether you have a server-class machine or not, so it is possible that 
   you
   are seeing a much higher default heap size just by virtue of using a 
   machine
   with more RAM or more processors.

   The -Xmx setting you added to dev_appserver.sh has no effect.  Your code 
   is
   executed in a subprocess, which is why --jvm_flag must be used to pass 
   Java
   args through to this process.

   On Mon, Jun 28, 2010 at 6:38 PM, Mike Dillon mikedillo...@gmail.com 
   wrote:
Thanks Don,

I forgot to mention that I'm using a mac with the latest snow leopard
update. It seems that these heap space
commands are incorrect for my machine, because we just tested it on a
linux box and it works fine, even
without the --jvm_flag prefix.

Any ideas?

- Mike

On Jun 28, 1:18 pm, Don Schwarz schwa...@google.com wrote:
 I believe you want the following flag:

 --jvm_flag=-Xmx512m

 On Sun, Jun 27, 2010 at 3:13 PM, Mike Dillon mikedillo...@gmail.com
wrote:
  Hello all,

  Im working on a project that reads GTFS archives as part of its
  functionality. When we are importing
  a particular set of data that has ~60,000 entries my dev server 
  locks
  up around the 27,000 entry. The
  error is the java heap space error. I would like to know if anyone 
  has
  successfully upped their heap
  space. I searched, and found general instructions but after
  implementing them I'm still failing around
  the same entry. This is leading me to believe that my command line
  args are not taking affect. Here
  is what I have so far:

  appengine-sdk-java/bin/dev_appserver.sh:
  #!/bin/bash
  # Launches the development AppServer
  [ -z ${DEBUG} ] || set -x  # trace if $DEBUG env. var. is non-zero
  SDK_BIN=`dirname $0 | sed -e s#^\\([^/]\\)#${PWD}/\\1#` # sed 
  makes
  absolute
  SDK_LIB=$SDK_BIN/../lib
  SDK_CONFIG=$SDK_BIN/../config/sdk
  java -Xms1024m -Xmx1024m -ea -cp  
  $SDK_LIB/appengine-tools-api.jar \
   com.google.appengine.tools.KickStart \
   com.google.appengine.tools.development.DevAppServerMain $*

  Is this correct?

  Also the way we get our data is through a custom import function 
  that
  chunks the data 

[appengine-java] Re: Java Heap Space Error, Correct Increasing Method?

2010-06-28 Thread Mike Dillon
Thanks Toby, I had figured this out before you replied but didn't
refresh the page before I posted my solution. I appreciate the help!

On Jun 28, 3:59 pm, Toby Reyelts to...@google.com wrote:
 You need to supply --jvm_flag as a command-line argument to dev_appserver.sh
 (aka KickStart), not to java.exe. That should work the same way for the ant,
 dev_appserver/ task. (You can see this in config/user/ant-macros.xml).



 On Mon, Jun 28, 2010 at 3:51 PM, Mike Dillon mikedillo...@gmail.com wrote:
  Another thing to consider. I'm not using eclipse, and I'm building and
  running the server with 'ant runserver'. I just realized that ant
  isn't calling
  dev_appserver.sh so I haven't been executing those args at all. When I
  use dev_appserver.sh to run my server it chokes on --jvm_flag but will
  run with just the -Xmx, however that has no affect.

  - Mike

  On Jun 28, 2:47 pm, Mike Dillon mikedillo...@gmail.com wrote:
   Thanks,

   Yes that is exactly whats going on, the linux box has 4gb of ram, my
   mac has 2gb...

   And yes I tried the --jvm_flag=-Xmx512m on my mac with no success.

   - Mike

   On Jun 28, 2:42 pm, Don Schwarz schwa...@google.com wrote:

Have you tried --jvm_flag=-Xmxwhateverm on your Mac?  It should work
  there
too.

As for the Linux box, the default heap size is different depending on
whether you have a server-class machine or not, so it is possible
  that you
are seeing a much higher default heap size just by virtue of using a
  machine
with more RAM or more processors.

The -Xmx setting you added to dev_appserver.sh has no effect.  Your
  code is
executed in a subprocess, which is why --jvm_flag must be used to pass
  Java
args through to this process.

On Mon, Jun 28, 2010 at 6:38 PM, Mike Dillon mikedillo...@gmail.com
  wrote:
 Thanks Don,

 I forgot to mention that I'm using a mac with the latest snow leopard
 update. It seems that these heap space
 commands are incorrect for my machine, because we just tested it on a
 linux box and it works fine, even
 without the --jvm_flag prefix.

 Any ideas?

 - Mike

 On Jun 28, 1:18 pm, Don Schwarz schwa...@google.com wrote:
  I believe you want the following flag:

  --jvm_flag=-Xmx512m

  On Sun, Jun 27, 2010 at 3:13 PM, Mike Dillon 
  mikedillo...@gmail.com
 wrote:
   Hello all,

   Im working on a project that reads GTFS archives as part of its
   functionality. When we are importing
   a particular set of data that has ~60,000 entries my dev server
  locks
   up around the 27,000 entry. The
   error is the java heap space error. I would like to know if
  anyone has
   successfully upped their heap
   space. I searched, and found general instructions but after
   implementing them I'm still failing around
   the same entry. This is leading me to believe that my command
  line
   args are not taking affect. Here
   is what I have so far:

   appengine-sdk-java/bin/dev_appserver.sh:
   #!/bin/bash
   # Launches the development AppServer
   [ -z ${DEBUG} ] || set -x  # trace if $DEBUG env. var. is
  non-zero
   SDK_BIN=`dirname $0 | sed -e s#^\\([^/]\\)#${PWD}/\\1#` # sed
  makes
   absolute
   SDK_LIB=$SDK_BIN/../lib
   SDK_CONFIG=$SDK_BIN/../config/sdk
   java -Xms1024m -Xmx1024m -ea -cp
   $SDK_LIB/appengine-tools-api.jar \
    com.google.appengine.tools.KickStart \
    com.google.appengine.tools.development.DevAppServerMain $*

   Is this correct?

   Also the way we get our data is through a custom import function
  that
   chunks the data into groups of 20
   and then processes them and stores them into the datastore.  We
  are
   only using one instance of the
   persistance manager as per the recommendations to use a singleton
   class. Each batch hits a servlet on
   our app and then does its work. Should we close the persistence
   manager after every batch is completed?
   I'm wondering if this would be a memory leak.

  I believe our documentation recommends storing the
 PersistenceManagerFactory
  as a singleton, but using a new PersistenceManager each time
  (remembering
 to
  close it before discarding).

  However, the local implementation of the datastore does keep
  everything
 in
  memory (and simply flushes to disk periodically), so you will run
  into
 size
  issues at some point.

 --
 You received this message because you are subscribed to the Google
  Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B
  unsubscr...@googlegroups.comgoogle-appengine-java%2B
  unsubscr...@googlegroups.com
 .
 For more options, visit this