[appengine-java] Can pm.makePersistentAll() help me write 12,000 objects?

2010-02-24 Thread Tim Cooper
I have been trying to write 12,000 objects in a single page request.
These objects are all very small and the total amount of memory is not
large.  There is no index on these objects - the only GQL queries I
make on them are based on the primary key.

Ikai has said:  That is - if you have to delete or create 150
persistent, indexed objects, you may want to rethink what problems you
are trying to solve.

So I have been thinking about the problems I'm trying to solve,
including looking at the BuddyPoke blog and reading the GAE
documentation.  I'm trying to populate the database with entries
relating to high school timetables.

* I could do the writes asynchronously, but that looks like a lot of
additional effort. On my C++ app, writing the same information to my
laptop drive, this happens in under a second, because the amount of
data is actually quite small, but it times out on GAE.
* I am using pm.makePersistentAll(), but this doesn't help.
* There is no index on the objects - I access them only through the
primary key.  (I'm pretty sure there's no index - but how can I
confirm this via the development server dashboard?)
* The objects constitute 12,000 entity groups.  I could merge them
into fewer entity groups, but there's no natural groupings I could
use, so it could get quite complex to introduce a contrived grouping,
and also this would complicate the multi-user updating of the objects.
  The AppEngine team seem to generally recommend using more entity
groups, but it's difficult to integrate that advice with the contrary
advice to use fewer entity groups for acceptable performance.
* I'd be happy if the GAE database was  10 times slower than a
non-cloud RDBMS, but the way I'm using it, it's currently not.

Does anyone have any advice?

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Local datastore is empty after migrating to 1.3.1

2010-02-24 Thread Itzik Yatom
Same problem

On Feb 23, 10:21 pm, Scott Hernandez scotthernan...@gmail.com wrote:
 I got a read error when I tried running with my existing (v1.3.0)
 data-store file; I created a new one (by renaming the old one) and
 restarting. I suspect the internal format is different and the old
 format cannot be read. Whether this is by design or a bug is another
 question.



 On Tue, Feb 23, 2010 at 10:26 AM, David turntwo...@gmail.com wrote:
  I just upgraded to1.3.1and also hit this issue.  I hope someone from
  the GAE team will soon comment on this behavior.  I'm also curious how
  common a problem this is. Have other people upgraded to1.3.1and
  maintained their local data store?

  On Feb 17, 3:06 pm, mcrady mcr...@gmail.com wrote:
  Same here.  If I switch back to 1.3.0 the local data is still there.

  Any workarounds to get to1.3.1with the local data?

  On Feb 13, 10:45 am, Brian bwa...@gmail.com wrote:

   My remotedatastorekept the data, mylocalone was wiped. Pretty easy
   to make a script to load a DB with test data, not really a good idea
   to rely on yourlocaldatastore...

   On Feb 12, 6:32 pm, mably fm2...@mably.com wrote:

Same thing happened to me.

Got an emptylocaldatastoreafterupdating to1.3.1.

Hopefully I didn't have much data in it.  But it might not be the case
for everybody.

On 12 fév, 09:35, Al Murauski a.murau...@gmail.com wrote:

 The Development Console tells Thedatastoreisemptyafterupdating
 to1.3.1.

 Any ideas why? I need mylocaldata back.

 The local_db file is not emoty and contain sthe data it contained
 before1.3.1migration.- Hide quoted text -

 - Show quoted text -

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: way to interactively query datastore?

2010-02-24 Thread vbart
I can offer only listing solution, based on our free GQL dynamic
parser - http://audao.spoledge.com/download.jsp
The full JSP you can find here:
http://vaclavb.blogspot.com/2010/02/google-app-engine-data-viewer-gql-java.html

The GQL parser (class GqlDynamic) converts GQL queries into low-level
datastore API calls, so the basic code of fetching entities can be:

  import com.google.appengine.api.datastore.DatastoreServiceFactory;
  import com.google.appengine.api.datastore.Entity;
  import com.spoledge.audao.parser.gql.GqlDynamic;
  import java.util.List;
  ...
  GqlDynamic gqld = new GqlDynamic();
 
gqld.setDatastoreService( DatastoreServiceFactory.getDatastoreService());

  String gql = SELECT * FROM MyEntity WHERE prop1='test' ORDER BY
prop2 LIMIT 10;
  ListEntity result =
gqld.prepareQuery( gql ).asList( gqld.getFetchOptions());

Then you just need to render the result in a JSP page.

The GQL parser currently does not support operators '!=' and 'IN', but
we are going to launch a new version in a few days which will support
all GQL features.

Vaclav

On Feb 23, 7:17 am, David Lam david.k.l...@gmail.com wrote:
 Kind of an appengine noob here... is there something like the datastore
 viewer (i.e.http://localhost:8080/_ah/admin/datastore), but instead lets
 you try out arbitrary GQL by typing it in?

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Chat Time transcript for February 17, 2010

2010-02-24 Thread Jason (Google)
Last Wednesday, the App Engine team hosted the latest session of its
bimonthly IRC office hours. A transcript of the session and a summary
of the topics covered is provided below. The next session will take
place next Wednesday, March 3rd from 7:00-8:00 p.m. PST in the
#appengine channel on irc.freenode.net.

- Jason


--SUMMARY---
- Q: What are my options do move my data from my App Engine datastore
in production to my PC? A: For now, you have to use the bulkloader
utility that ships with the Python SDK, but you can use this with Java-
based apps as well -- see 
http://blog.notdot.net/2009/9/Advanced-Bulk-Loading-Part-5-Bulk-Loading-for-Java
for details on setting up the appropriate handlers for a Java
environment. [9:12-9:16]

- Q: With the index row limit raised to 5,000, does this mean that I
can build queries involving multiple list properties? A: Yes. You
could do this before, technically, but you had to be more careful to
avoid exploding indexes, which could be caused by querying large list
properties. You still have to be concerned about this, but the larger
limit does give you more flexibility. [9:19-9:22]

- Discussion on using memcache to lock an entity for writing -- not
recommended (memcache is designed as a cache first and foremost) but
feasible. All the same, this should be avoided, especially since there
are no guarantees made that memcache won't be cleared periodically,
and you wouldn't want this locking metadata purged without warning.
[9:32-9:40]

- Discussion on mitigation strategies for contention -- in general,
you only need to think about sharding or other mechanisms if you
expect heavy contention (generally more than one write per second
consistently) on a single entity or entity group. Otherwise, even if
the occasional concurrent write request comes in, the system will
automatically retry the write after any failures, so you don't need to
alter your models to account for this. But for heavy contention, you
can look at sharding, using the task queue API, or even dropping
requests. [9:40-9:41, 9:43, 9:46-9:50]

- Q: When MapReduce functionality is available, will it support global
transactions? A: In general, global transactions are difficult to
support in a distributed system. You can achieve a weak form of global
transactions today with transactional tasks, which guarantee eventual
consistency. [9:55-10:01]


--FULL
TRANSCRIPT---
[09:08am] nickjohnson: Welcome to the bi-weekly App Engine chat time!
With us today are apijason_google and myself, with others to come.
[09:09am] nickjohnson: If you're having trouble sending messages to
the channel, please be patient, we're working on resolving that right
now.
[09:10am] apijason_google: Hi Everyone.
[09:10am] lurkdev: hello
[09:10am] cyonyx: hello
[09:11am] cresloyd: hello
[09:11am] webus: hello
[09:11am] apijason_google:
[09:12am] webus: how i can backup my data from GAE (BigTable) to my
local PC ?
[09:12am] nickjohnson: webus: Java, or Python?
[09:13am] webus: java
[09:15am] nickjohnson: For now, you need to use the Python bulkloader
to load and dump data - see 
http://blog.notdot.net/2009/9/Advanced-Bulk-Loading-Part-5-Bulk-Loading-for-Java
for details on setting up a handler, and
http://code.google.com/appengine/docs/python/tools/uploadingdata.html#Downloading_and_Uploading_All_Data
for details on dump and restore
[09:15am] apijason_google: webus: I think the only way right now is to
use the bulkloader tool that ships with the Python SDK. It should work
with Java apps too, and we're working on a better Java solution.
[09:15am] nickjohnson: ** If you're still having trouble sending to
the channel, please send me a PM **
[09:15am] webus: thnx!
[09:16am] cresloyd: there are third-party solutions to sync data
between the datastore and external databases; I don't know if Googlers
would want to recommend any of them, but you're welcome to try them of
course
[09:18am] ryan_google: hi!
[09:19am] ryan_google: aha i can talk now
[09:19am] nickjohnson: Hooray!
[09:19am] nickjohnson: Anyone who was trying to talk, you can try
again now.
[09:19am] cyonyx: now that the 5000 index limit has been set for an
entity, does that mean one can use more than one list property per
model as long as they stay within the 5000?
[09:20am] ryan_google: cyonyx: yes
[09:20am] ryan_google: i assume you've read
http://code.google.com/appengine/docs/python/datastore/queriesandindexes.html#Big_Entities_and_Exploding_Indexes
?
[09:22am] ryan_google: *crickets*
[09:22am] cyonyx: i have read that thank you.  the docs are great by
the way.  i was playing with some code and found that the 1000 limit
was removed for a list, so I tried adding more than 5000 to that list
and got an error
[09:23am] ryan_google: hmm
[09:23am] nickjohnson: cyonyx: The limit we removed was the 1000
result limit, and is unrelated to the max entries in a list.
[09:24am] ryan_google: 

[appengine-java] Chat Time transcript for February 3, 2010

2010-02-24 Thread Jason (Google)
The high-level summary and complete transcript of the February 3rd
edition of the IRC office hours is pasted below. Please join us on the
first and third Wednesday of every month in the #appengine channel on
irc.freenode.net. On the first Wednesday, we meet in the channel from
7:00-8:00 p.m. PST (evening hours), and on the third Wednesday, we're
available from 9:00-10:00 a.m. PST (morning hours).

- Jason

--SUMMARY---
- Most of the chat took place in another IRC channel because the usual
channel was closed to unregistered users. As a result, the chat
started later than usual. The next chats should take place in the
regular channel: #appengine on irc.freenode.net. If you can't post,
please register your nick by following the instructions at
http://freenode.net/faq.shtml#registering. [7:12-7:15]

- Discussion on datastore cursors, a premiere feature of the 1.3.1
release, which enable developers to work with result sets larger than
1,000. [7:16-7:22]

- Q: As a developer of an app allowing users to upload content, what
level of policing should I do to make sure the uploaded content does
not violate App Engine's terms of service? A: You should not encourage
or openly permit content in violation of the terms of service. This
means that should you spot such content, you take care to remove it,
and you also take care to do the same if a member of the App Engine
team contacts you about any violations. For this type of violation, we
will reach out to you first to give you an opportunity to remove the
content before taking your application offline. [7:22-7:25, 7:27]

- Q: Are there any plans to allow for larger URL fetch requests, up to
5+ MB? A: No plans at present, but please star this issue if you're
interested: http://code.google.com/p/googleappengine/issues/detail?id=2735.
It's possible that we could implement this feature similar to the way
we increased the maximum image data size that could be operated on via
the image service functions: by allowing blob keys to be passed rather
than the raw data directly. Another idea is making the URL fetch
service work with a callback, similar to blobstore. [7:25-7:29,
7:31-7:33, 7:39]

- If multiple writes occur in a single transaction, they must be
processed sequentially. This is because a transaction can only apply
to entities in the same entity group, and an entity group cannot be
updated while another update is taking place. Use entity groups only
when necessary -- try to keep them as small as possible to maximize
write throughput. [7:30-7:31, 7:33-7:34]

- Follow-up on index inconsistency issues (issue 2481): we are taking
this issue very seriously, and have devoted many hours so far tracking
down the cause. For most apps that we have identified as being
affected, we have manually corrected the problem indexes, but we're
still working on the root cause. The team is making substantial
progress and the timeline for a fix is weeks and not months. If
you continue to see this problem, please add a comment to
http://code.google.com/p/googleappengine/issues/detail?id=2481. [7:35,
7:38-7:40]

- Discussion on google.appengine.tools.bulkloader.IncrementId
implementation, whether it's hardened enough to prevent conflicts of
auto-generated IDs, and whether a better implementation is coming.
[7:42, 7:46]

- Discussion on authentication using the Google Accounts service, how
it's implemented and security mechanisms in place. [7:44-7:48]

- Q: What are transactional tasks? A: Simply put, tasks that are added
to queues when there is an active datastore transaction will be
automatically enlisted in the datastore transaction so most of the
time you won't actually need to get ahold of the active
com.google.appengine.api.datastore.Transaction. [7:49, 7:53]

- Discussion on pre-releases and need for a production sandbox where
new back-ends can be released and tested without (potentially)
breaking production apps. [7:54-7:55, 7:57]

- Cool app which compares the performance of the different Java
datastore APIs: http://gaejava.appspot.com/. The low-level API
outperforms JDO/JPA, even though JDO and JPA are technically using the
same underlying implementation as the low-level API, likely due to the
ORM-layer overhead. [7:58-8:04, 8:10-8:11]

- Poll: For developer-to-developer support, do you prefer Google
Groups or Stack Overflow? [8:05-8:11]


--FULL
TRANSCRIPT---
[7:11pm] apijason_google: Ha ha. Anyway, we'll be here for the next 50
minutes at least. Ikai and I are here, Wesley is coming soon. Sorry
for the technical difficulties.
[7:12pm] _tmatsuo: perhaps you can register your nick on the net.
[7:12pm] _tmatsuo: *on freenode.net
[7:13pm] apijason_google: Yeah, after today's incident, we just might
do that.
[7:13pm] ikai_google: registered, no dice
[7:13pm] ikai_google: I still can't post in the other forum
[7:13pm] ikai_google: err channel
[7:13pm] lambo4jos: hello everyone

[appengine-java] Re: cron jobs

2010-02-24 Thread lakshmi
Hi,

I am trying to send email for every hour.
i write the code of cron.xml like above.But now the admin console
shows status as follows.

Cron Job Schedule/Last Run/Last Status (All
times are UTC)

/emailing
repeated every one hour  every 1 hours (UTC)


 2010-02-24 12:28:02 on time Too many
continues


anybody help me,
Am i set sny extra setting in any fike.Please help me.

thanks
Lakshmi.

On Feb 23, 11:41 am, lakshmi sowji.ap...@gmail.com wrote:
 Thanks for your reply,

 ok i will try it.

 Thanks,
 Lakshmi.

 On Feb 22, 11:52 pm, bimbo jones bimbojone...@gmail.com wrote:



  Hi,

  If you want to receive the 'cron' word every 1 minute try logging the result
  instead of printing, or sending a email to you.

  2010/2/22 lakshmi sowji.ap...@gmail.com

   Hi,
   Thanks for your reply.

   The output for my present program is,the word a'cron' is printing only
   one time.

   But i want to print it for every  minute.

   Please help me to get that result.

   Thanks,

   Lakshmi.

   On Feb 18, 7:10 pm, bimbo jones bimbojone...@gmail.com wrote:
Hi,

if you want it to be printed on the browser you should use
pw.println(cron); pw.close(); instead of System.out.println(cron);

2010/2/18 Sowji sowji.ap...@gmail.com

 Hi,
 Please help me in cron jobs,in google app engine.
  My program main code is as follows.
 --
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.List;
 import java.util.Timer;
 import java.util.TimerTask;
 import javax.jdo.PersistenceManager;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 public class RepeatedResults extends HttpServlet {

   public PersistenceManager
   pm=PMF.getInstance().getPersistenceManager();
   ListManager list;
  public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws IOException {
     resp.setContentType(text/plain);
     PrintWriter pw=resp.getWriter();
     System.out.println(cron);
  }
 }
  this code i wrote for printing a word like cron nuber of times.

 My cron.xml is as follows.
 --
 ?xml version=1.0 encoding=UTF-8?
  cronentries
   cron
     url/repeated/url
     descriptionrepeated every one minutes/description
     scheduleevery 1 minutes/schedule
   /cron
  /cronentries
 It was saved in war\WEB_INF
 My servlet for repeatedResults is as follws
 

 servlet
  servlet-nameRepeated/servlet-name
   servlet-classgoalsmanagement.RepeatedResults/servlet-class
  /servlet
  servlet-mapping
   servlet-nameRepeated/servlet-name
   url-pattern/repeated/url-pattern
  /servlet-mapping
 I access this url from a html file.
 but result is print only one time.not repeatedly.
 My cron job status in admin console is as follows

                     cron Job
    Schedule/Last
 Run/Last Status (All times are UTC)
                   /repeated
                    repeated every one minutes        every 1 minutes
   (UTC)

 2010-02-18 08:54:49 on time Success

 could you please help me what was my mistake.
 thanks,
 Lakshmi.

 --
 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.com
   google-appengine-java%2b­unsubscr...@googlegroups.com
 .
 For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.-Hide
   quoted text -

- Show quoted text -

   --
   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.com
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine-java?hl=en.-Hide quoted 
  text -

  - Show quoted text -- Hide quoted text -

 - Show quoted text -

-- 
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.com.
For more options, visit this 

Re: [appengine-java] How to Install Google App Plugin for Eclipse Galileo

2010-02-24 Thread Miguel Méndez
The following link explains how to install from zips:
http://code.google.com/eclipse/docs/install-from-zip.html.

On Tue, Feb 23, 2010 at 11:43 PM, Ashish Mishra
ashish.mishr...@gmail.comwrote:

 Hi,

 I want to know, how can i install the plugin manually of Google App
 Engine. Since on my machine Eclipse is not able to install any plugin.
 It is giving some exception like this :

 Message: Unhandled event loop exception

 Exception Stack Trace:
 java.lang.IllegalStateException: Profile not locked due to exception:
 D:\eclipse 3.5\p2\org.eclipse.equinox.p2.engine\profileRegistry
 \SDKProfile.profile\.lock (Access is denied)
 at
 org.eclipse.equinox.internal.p2.engine.ProfileLock.lock(ProfileLock.java:
 106)
 at

 org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.restore(SimpleProfileRegistry.java:
 371)
 at

 org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.getProfileMap(SimpleProfileRegistry.java:
 241)
 at

 org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.internalGetProfile(SimpleProfileRegistry.java:
 201)
 at

 org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.getProfile(SimpleProfileRegistry.java:
 134)
 at

 org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil.getProfile(ProvisioningUtil.java:
 217)
 at

 org.eclipse.equinox.internal.p2.ui.sdk.ProvSDKUIActivator.getSelfProfileId(ProvSDKUIActivator.java:
 161)
 at

 org.eclipse.equinox.internal.p2.ui.sdk.PreloadingRepositoryHandler.execute(PreloadingRepositoryHandler.java:
 49)
 at
 org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:
 294)
 at org.eclipse.core.commands.Command.executeWithChecks(Command.java:
 476)
 at

 org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:
 508)
 at

 org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:
 169)
 at

 org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:
 241)
 at

 org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:
 770)
 at org.eclipse.ui.menus.CommandContributionItem.access
 $10(CommandContributionItem.java:756)
 at org.eclipse.ui.menus.CommandContributionItem
 $5.handleEvent(CommandContributionItem.java:746)
 at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:
 3880)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473)
 at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
 at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
 at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
 at
 org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:
 332)
 at
 org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:
 493)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:
 149)
 at

 org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:
 113)
 at

 org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:
 194)
 at

 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:
 110)
 at

 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:
 79)
 at
 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
 368)
 at
 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:
 179)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
 at org.eclipse.equinox.launcher.Main.run(Main.java:1311)


  Is there any way from where we can download the plugin at my machine
 and extract it  and copy it to plugins and features? Since in past I
 have done for other plugins.

 Thanks for your replies in advance

 Regards,
 Ashish Mishra

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Miguel

-- 
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 

[appengine-java] Help needed with Error

2010-02-24 Thread Sandeep
I have been getting this error since my last deployment. Everything
works fine in my local setup but on the server it throws this
exception.

Caused by: java.io.NotSerializableException:
org.datanucleus.store.appengine.query.DatastoreQuery$2
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.util.ArrayList.writeObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.util.HashMap.writeObject(Unknown Source)

Check out www.medavakkam.com/eGrocery

On click of Create new Order I get this error. The same datastore
calls are made in another flow and that is working fine.

Thanks  Regards,
Sandeep

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Help needed with Error

2010-02-24 Thread seleronm
Hi,

This might be useful.

Follow this thread:
http://groups.google.com/group/google-appengine/browse_thread/thread/685d2e9db4063a69

Please confirm.
thanks.


On 2月24日, 午後11:25, Sandeep sandeep.ba...@gmail.com wrote:
 I have been getting this error since my last deployment. Everything
 works fine in my local setup but on the server it throws this
 exception.

 Caused by: java.io.NotSerializableException:
 org.datanucleus.store.appengine.query.DatastoreQuery$2
         at java.io.ObjectOutputStream.writeObject0(Unknown Source)
         at java.io.ObjectOutputStream.writeObject(Unknown Source)
         at java.util.ArrayList.writeObject(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
         at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
         at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
         at java.io.ObjectOutputStream.writeObject0(Unknown Source)
         at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
         at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
         at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
         at java.io.ObjectOutputStream.writeObject0(Unknown Source)
         at java.io.ObjectOutputStream.writeObject(Unknown Source)
         at java.util.HashMap.writeObject(Unknown Source)

 Check outwww.medavakkam.com/eGrocery

 On click of Create new Order I get this error. The same datastore
 calls are made in another flow and that is working fine.

 Thanks  Regards,
 Sandeep

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Deployment with Eclipse plug-in

2010-02-24 Thread dominity
Hey, guys.

Currently I've got this message during deployment.

java.io.IOException: Error posting to URL:
http://appengine.google.com/api/appversion/create?app_id=caretransferapacversion=1;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=http://
code.google.com/appengine/community.htmlreport/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html

How does it be processed?

Best regards, Alexander.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Deployment with Eclipse plug-in

2010-02-24 Thread Sandeep
Same here, haven't been able to deploy my updated app too.

java.io.IOException: Error posting to URL:
http://appengine.google.com/api/appversion/create?app_id=mdvk-chnversion=1;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=http://
code.google.com/appengine/community.htmlreport/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html

at
com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:
143)
at
com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:
81)
at
com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:
522)
at
com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:
339)
at
com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:
111)
at
com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:
56)
at
com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:
271)
at
com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:
148)
at
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:
38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Also note: http://appengine.google.com/ is throwing 500 Internal
Errors. I do not think this is your app problem.

Regards,
Sandeep

On Feb 24, 9:00 pm, dominity domin...@gmail.com wrote:
 Hey, guys.

 Currently I've got this message during deployment.

 java.io.IOException: Error posting to 
 URL:http://appengine.google.com/api/appversion/create?app_id=caretransfer...
 500 Internal Server Error

 htmlhead
 meta http-equiv=content-type content=text/html;charset=utf-8
 title500 Server Error/title
 /head
 body text=#00 bgcolor=#ff
 h1Error: Server Error/h1
 h2The server encountered an error and could not complete your
 request.pIf the problem persists, please A HREF=http://
 code.google.com/appengine/community.htmlreport/A your problem and
 mention this error message and the query that caused it./h2
 h2/h2
 /body/html

 How does it be processed?

 Best regards, Alexander.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Help needed with Error

2010-02-24 Thread Sandeep
Couldn't derive anything useful from the other thread. I believe the
problem is with something on the server end and not the code.
Something that has been working for the last 4 weeks cannot crash so
abruptly in one screen and continue working on the other. Right now,
it seems like the entire datastore is down and I am facing this issue
in all my screens :(. Only the home page and static pages are working.

Thanks for the pointer though.

Regards,
Sandeep

On Feb 24, 8:50 pm, seleronm seler...@gmail.com wrote:
 Hi,

 This might be useful.

 Follow this 
 thread:http://groups.google.com/group/google-appengine/browse_thread/thread/...

 Please confirm.
 thanks.

 On 2月24日, 午後11:25, Sandeep sandeep.ba...@gmail.com wrote:



  I have been getting this error since my last deployment. Everything
  works fine in my local setup but on the server it throws this
  exception.

  Caused by: java.io.NotSerializableException:
  org.datanucleus.store.appengine.query.DatastoreQuery$2
          at java.io.ObjectOutputStream.writeObject0(Unknown Source)
          at java.io.ObjectOutputStream.writeObject(Unknown Source)
          at java.util.ArrayList.writeObject(Unknown Source)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
          at java.lang.reflect.Method.invoke(Unknown Source)
          at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
          at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
          at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
          at java.io.ObjectOutputStream.writeObject0(Unknown Source)
          at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
          at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
          at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
          at java.io.ObjectOutputStream.writeObject0(Unknown Source)
          at java.io.ObjectOutputStream.writeObject(Unknown Source)
          at java.util.HashMap.writeObject(Unknown Source)

  Check outwww.medavakkam.com/eGrocery

  On click of Create new Order I get this error. The same datastore
  calls are made in another flow and that is working fine.

  Thanks  Regards,
  Sandeep- Hide quoted text -

 - Show quoted text -

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] GAE Alternatives?

2010-02-24 Thread A1programmer
Are there any good alternatives to Google App Engine out there?

I am finding that I cannot rely on GAE for a production quality
environment.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Will a solution to the Java load latency come in Q2?

2010-02-24 Thread Sandeep
Hi,

One of the suggestions I have seen is to keep your home page as a
static HTML and as light as possible. This should enable loading app
within a couple of seconds even if the app is not loaded on any
server. Offcourse, if the kind of service provided through your site
and the user base demands faster first time load then what you are
asking is truly desirable.

Regards,
Sandeep

On Feb 24, 9:56 am, Timofey Koolin timo...@koolin.ru wrote:
 Hello, for fast first load applications for user I set shedule for get
 main page of my application every minute.

 On Feb 23, 6:30 pm, Locke locke2...@gmail.com wrote:



  I plan on going live with my app in Q2, however, I can't subject my
  users to App Engine's Java loading delays.

  I recall that there has been talk of giving paying users the ability
  to keep at least one instance of their Java apps hot at all times.
  What are the chances of such a solution becoming available by the end
  of Q2? If this solution or some other solution to this problem is
  unlikely to be available in the next few months, I will reluctantly
  have to begin porting my app to another platform.

  Anyone know the status of this issue? Any info on the topic is
  appreciated. Thanks.- Hide quoted text -

 - Show quoted text -

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] GAE Alternatives?

2010-02-24 Thread Paul Hammant
Nope, but one *imagines* that others (Spring/VMWare, JBoss/RedHat,
Oracle/Sun/Tangasol, Terracotta, Gigaspaces and Intalio/Jetty) are part way
through delivery, or are planning, or finding partners.

There's a huge attraction to the tiny resource requirement to maintain a WAR
file deployment versus the large requirements of a EC2 style VM. Presuming
the servlet container is shared amongst many apps of course.

One wonders why Sun did not do this ten years ago.

- Paul

On Wed, Feb 24, 2010 at 10:39 AM, A1programmer derrick.simp...@gmail.comwrote:

 Are there any good alternatives to Google App Engine out there?

 I am finding that I cannot rely on GAE for a production quality
 environment.

 --
 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.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 group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] [OT] Re: GAE Alternatives?

2010-02-24 Thread Guillermo Schwarz
I think Sun didn't have clear ideas on what was possible and what
clients wanted. They didn't separate their business in hardware and
JavaSoft apart and that bad management decision took its toll.

Microsoft is doing the same mistake: Is it a toy maker or a hardware
maker or an operating system maker or a service provider like Google?

I find today GAE is similar to the old Apple II in 1975. It took 5
years for IBM to catch up with the IBM PC, haven't it created a more
powerful system and open sourced its design, we would all be using
Motorola's CPUs...

The main advantage GAE provides now is potentially unlimited
scalability (only limited by hardware). Since hardware is going to get
really cheap in the following decade, with SSDs and multicore CPUs
everywhere, customers will not want to continue managing thousands of
computers by hand, but let cloud companies provide almost free
services like this.

Now Java belongs to Oracle, so I bet Oracle will want to produce some
competng product/service...without ruining the DB market it already
has...

On 24 feb, 13:57, Paul Hammant p...@hammant.org wrote:
 Nope, but one *imagines* that others (Spring/VMWare, JBoss/RedHat,
 Oracle/Sun/Tangasol, Terracotta, Gigaspaces and Intalio/Jetty) are part way
 through delivery, or are planning, or finding partners.

 There's a huge attraction to the tiny resource requirement to maintain a WAR
 file deployment versus the large requirements of a EC2 style VM. Presuming
 the servlet container is shared amongst many apps of course.

 One wonders why Sun did not do this ten years ago.

 - Paul

 On Wed, Feb 24, 2010 at 10:39 AM, A1programmer 
 derrick.simp...@gmail.comwrote:

  Are there any good alternatives to Google App Engine out there?

  I am finding that I cannot rely on GAE for a production quality
  environment.

  --
  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.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 group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Store List of own objects in datastore

2010-02-24 Thread DreamFlasher
Hi,

if I wanted to have a product which contains reviews to it, and
Product is a class and Review as well, how would I do that?
I tried

@Persistent(defaultFetchGroup = true)
private LinkedListReview reviews = new LinkedListReview();

in class Product. I would like to get the attached objects when
loading it. With the configuration above I get The datastore does not
support joins and therefore cannot honor requests to place related
objects in the default fetch group. Is there any way to auto fetch?

This also does not work with serialized = true.

Kind regards,
Marcel

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Google App Engine down or just my app?

2010-02-24 Thread Ronen
Hey,

Trying to reach:

https://appengine.google.com/

Get an internal server error (500). In addition, can't deploy my app
from eclipse. Following error:

eclipse.buildId=M20090917-0800
java.version=1.6.0_18
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86 -product
org.eclipse.epp.package.jee.product


Error
Wed Feb 24 18:35:02 IST 2010
Unable to update app: Error posting to URL:
https://appengine.google.com/api/appversion/create?app_id=webhinge-guestbookversion=2500
Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=http://
code.google.com/appengine/community.htmlreport/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html


See the deployment console for more details

com.google.appengine.tools.admin.AdminException: Unable to update app:
Error posting to URL: 
https://appengine.google.com/api/appversion/create?app_id=webhinge-guestbookversion=2;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=http://
code.google.com/appengine/community.htmlreport/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html

at
com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:
62)
at
com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:
271)
at
com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:
148)
at
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:
38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.io.IOException: Error posting to URL:
https://appengine.google.com/api/appversion/create?app_id=webhinge-guestbookversion=2;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=http://
code.google.com/appengine/community.htmlreport/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html

at
com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:
149)
at
com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:
82)
at
com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:
532)
at
com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:
349)
at
com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:
111)
at
com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:
56)
... 4 more

What seems to be the problem?

Ronen

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: why my app on GAE first access is so slow

2010-02-24 Thread charming30
Any valid answers for this question yet?

On Jan 6, 7:33 pm, Jorge athenas...@gmail.com wrote:
 It´s been a lot of discussion about this topic lately. See for
 instance Tragedy of the Commons, and Cold Starts.

 I own dedicated servers with other hosts and what I´ve been doing is
 automatically generating http request to my GAE app every 40 seconds.
 I started with 60 seconds and that became insufficient. Nevertheless,
 the Tragedy of the Commons seams to be real, because now 40 seconds is
 not enough to keep the app warm.

 My hope is Google will come up with a satisfactory solution soon.
 Maybe a fee to keep your application warm. I agree the cold startup
 time is absolutely unacceptable.

 Jorge Gonzalez

 On Nov 12 2009, 6:56 am, DrMorten morten.dalgaard.niel...@gmail.com
 wrote:



  1 minute works for me, I used a commercial service that tracks uptime
  to check it.
  Trouble is that the commercial service checks randomly from different
  locations all over the world.
  meaning that the application loads out of memory because its hosted in
  different locations, effectivly killing my CPU qouta.

  On Nov 12, 3:36 am, zhiw...@gmail.com zhiw...@gmail.com wrote:

   i only test it in my country, i don't know whether it is still
   effective for request that from a foreign country. but to me it is
   enough

   On Nov 12, 10:30 am, zhiw...@gmail.com zhiw...@gmail.com wrote:

i turn it to 1min, the cron job access a servlet that do nothing just
for active the app. every 24h it only used 1% of the free cpu-time .
now at least when i access my app, it was notslowlike before. but
sometime the app still be inactive, although the cron job active the
app, when i access sush as mainpage, it still took sometime
to load the servlet. gae doc wrote: load-on-start doesn't work , the
servlet will be load on first accessed.  i think use cron job to
access mainpage is better. now i have not try ths.

On Nov 12, 5:04 am, James H james.hollier...@gmail.com wrote:

 So, 1-3 minute intervals seem to do the trick?  Is this technique
 still working for you?

 On Nov 10, 8:24 pm, zhiw...@gmail.com zhiw...@gmail.com wrote:

  i think the gae cloud envrionment does not have the region concept.
  every app run on a virtual server , the cron job is used to make the
  virtual server active.  if the virtual server is active, when access
  the app, there is no need to reinit such asspringlistener etc, so
  delay time is short, that is so simple  i think.

  On Nov 10, 7:30 am, James H james.hollier...@gmail.com wrote:

   How would a single cron task really help in an environment where
   multitudes of app servers are involved based on demand, geography,
   etc?  So, how will the task that just ran help someone in U.S. and
   simultaneously help someone in Russia on the same app?  I assume 
   they
   are potentially running on different app servers.

   On Nov 10, 1:51 am, m seleron seler...@gmail.com wrote:

Thank you for useful information.

Though various situations are thought
I think that a detailed analysis might be necessary to decrease 
the CPU TIME.

thunks

2009/11/10 zhiw...@gmail.com zhiw...@gmail.com:

 now i set the schedule time to 3min, it seems work, every 
 time i
 access my app, i can hardly feelslow. my cron job access a 
 servlet
 that do nothing and just for active my app. set the schedule 
 time to
 1min is better i think,although it will take some cpu time.

 On Nov 9, 11:31 pm, m seleron seler...@gmail.com wrote:
 I'm sorry very much.

 It examined.
 ServletContextListener#contextDestoryed was not called.
 It was necessary to examine it accurately.

 Nichole.
 Thank you for advice.

 Does not the page access speed become early?

 When you access that I think access speed is open in since 
 the second
 times always
 because by the thing that keeps being accessed with cron

 If the display speed is stillslow, the cause might be 
 different.

 thanks,

 On Nov 9, 11:30 pm, zhiw...@gmail.com zhiw...@gmail.com 
 wrote:

  i set the time to 5min , but i can still find the 
  contextInitialized
  info, seems gae's time-out is very short, now i test set 
  it to 3min

  On Nov 9, 10:18 pm, Joseph Stano joseph.st...@gmail.com 
  wrote:

   have you noticed if that solves the timeout issue?

   On Mon, Nov 9, 2009 at 5:04 AM, zhiw...@gmail.com 
   zhiw...@gmail.com wrote:

it seems only contextInitialized method can be 
executed, and
contextDestroyed never be executed. so i can not get 
the time my app
alive after it was actived.  i have use cron job to 

[appengine-java] org.datanucleus.exceptions.NucleusUserException: Object Manager has been closed

2010-02-24 Thread Taylor Leese
Why does the code below result in
org.datanucleus.exceptions.NucleusUserException: Object Manager has
been closed? The exception appears to be thrown at
query.getResultList(). I'm using Spring JPA.

bean id=entityManagerFactory
class=org.springframework.orm.jpa.LocalEntityManagerFactoryBean lazy-
init=true
property name=persistenceUnitName value=transactions-
optional/
/bean

public final void removeUserTokens(final String username) {
final Query query = entityManager.createQuery(
SELECT p FROM PersistentLogin p WHERE username = :username);
query.setParameter(username, username);

for (Object token : query.getResultList()) {
entityManager.remove(token);
}
}

Exception:

org.datanucleus.exceptions.NucleusUserException: Object Manager has
been closed
at
org.datanucleus.ObjectManagerImpl.assertIsOpen(ObjectManagerImpl.java:
3876)
at
org.datanucleus.ObjectManagerImpl.getFetchPlan(ObjectManagerImpl.java:
376)
at org.datanucleus.store.query.Query.getFetchPlan(Query.java:497)
at org.datanucleus.store.appengine.query.DatastoreQuery
$6.apply(DatastoreQuery.java:611)
at org.datanucleus.store.appengine.query.DatastoreQuery
$6.apply(DatastoreQuery.java:610)
at
org.datanucleus.store.appengine.query.LazyResult.resolveNext(LazyResult.java:
94)
at org.datanucleus.store.appengine.query.LazyResult
$LazyAbstractListIterator.computeNext(LazyResult.java:215)
at
org.datanucleus.store.appengine.query.AbstractIterator.tryToComputeNext(AbstractIterator.java:
132)
at
org.datanucleus.store.appengine.query.AbstractIterator.hasNext(AbstractIterator.java:
127)
at org.datanucleus.store.appengine.query.LazyResult
$AbstractListIterator.hasNext(LazyResult.java:169)
at
com.mystuff.service.auth.PersistentTokenRepositoryImpl.removeUserTokens(PersistentTokenRepositoryImpl.java:
90)

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Will a solution to the Java load latency come in Q2?

2010-02-24 Thread Jorge
There are dozens of threads with this topic and the discussions go on
and on. Many ask, many complain, and nobody answers with commitment
(Google).

Some suggest the stupid solution of pinging your app every so often.
No offense, Timofy Koolin, I use the same stupid solution myself!!!

Me too I'm planning on going live on Q2 and I am really concerned
about the feasibility of that because of the long latency on cold
starts and worst, the servlets (e.g. cron jobs) dieing because of
that.

I think many of us see this as a major issue. I wish there was a clear
commitment with goals and dates from Google.

Jorge Gonzalez


On Feb 23, 10:56 pm, Timofey Koolin timo...@koolin.ru wrote:
 Hello, for fast first load applications for user I set shedule for get
 main page of my application every minute.

 On Feb 23, 6:30 pm, Locke locke2...@gmail.com wrote:

  I plan on going live with my app in Q2, however, I can't subject my
  users to App Engine's Java loading delays.

  I recall that there has been talk of giving paying users the ability
  to keep at least one instance of their Java apps hot at all times.
  What are the chances of such a solution becoming available by the end
  of Q2? If this solution or some other solution to this problem is
  unlikely to be available in the next few months, I will reluctantly
  have to begin porting my app to another platform.

  Anyone know the status of this issue? Any info on the topic is
  appreciated. Thanks.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: App Engine and Spring slow start up

2010-02-24 Thread charming30
Has the above mentioned offline precompilatio in 1.3.1 been able to
solve your issue, I plan to use Spring on Java for my Business App
which is complex and could be based on SOA. Kindly let me know if your
issue was resolved or reduced by using the above fix.


On Feb 20, 12:05 am, luijar luis.j.aten...@gmail.com wrote:
 I believe my development environment was on 1.3.0. That might be
 something to look at, although it seems that probably it's a very
 small overhead, do you have any metrics that would give some evidence
 as to how much overhead is offline precompilation adding?

 Thanks

 On Feb 18, 2:04 pm, Don Schwarz schwa...@google.com wrote:



  Have you deployed your application with the 1.3.1 SDK?  That release turned
  on offline precompilation by default, which is an optimization that may
  help.

  On Thu, Feb 18, 2010 at 7:59 AM, Alex chasov...@gmail.com wrote:
   Hi,

   It appeared that long init problem is well known for Grails users:
  http://jira.codehaus.org/browse/GRAILSPLUGINS-1736

   I wasted couple of weeks to create app I cannot run. Hope that
   SpringSource and Google can solve the issue.

   On Feb 17, 7:41 pm, Stephan Hartmann hartm...@metamesh.de wrote:
The problem is that the initialization of your app takes longer than 30
seconds.
Pinging your app doesn't help when the app is restarted due to
   redeployment
or maintenance, or when high traffic demands a second instance.

You should try to reduce your startup time.

regards,
Stephan

2010/2/17 luijar luis.j.aten...@gmail.com

 Great, all of our projects areSpringenabled lol. But I guess it's
 good that we are not the only ones seeing this, hopefully it gets a
 little more visibility. We have a cron job (1 min) that tries to keep
 our application alive by hitting a URL, but it does not do a very good
 job. It's frustrating and we don't even have access to the 500 page to
 tell the user to retry or go somewhere else.

 On Feb 17, 11:21 am, oth other...@gmail.com wrote:
  Yes we have seen this problem a lot. Per our tests, an application
  becomes idle after a minute of non activity. So, the unfortunate
  reality is that you need to keep your app alive by simulating
   activity
  on it. Or go the nonSpringroute.

  Thanks

  On Feb 16, 4:14 pm, luijar luis.j.aten...@gmail.com wrote:

   Hello Google App Engine forum,

     We have been seeing ever since we deployed our applications
   (currently 3 of them) that when our application instances become
   idle
   (they have not been hit for x amount of seconds) subsequent
   requests
   return with a 500 response. Logs show a hard deadline exceeded
   error

   com.google.apphosting.runtime.HardDeadlineExceededError: This
   request
   (32306ebe63b71ab0) started at 2010/02/12 20:39:11.984 UTC and was
   still executing at 2010/02/12 20:39:41.225 UTC.
           at

   com.google.appengine.runtime.Request.process-32306ebe63b71ab0(Request.java)

   And the first line of the log message has the following :

   02-12 12:39PM 14.088

   javax.servlet.ServletContext log: InitializingSpringroot
   WebApplicationContext

   Question:
   Has anyone else seen this behavior? How long does it take for an
   application instance to become idle?

   Thanks

 --
 You received this message because you are subscribed to the Google
   Groups
 Google App Engine forJava 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.com
   google-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%252bunsubscr...@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 forJava 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.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 group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Help needed with Error

2010-02-24 Thread Keith
If you are trying to put the reult of a query directly into memcache
then you should read 
http://groups.google.com/group/google-appengine-java/msg/1d835ac8245d1d48.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Read-only mode exceptions

2010-02-24 Thread Millisecond
I'm trying to make my app robust to survive through these read-only
modes that we seem to be in fairly often lately.

All calls to the cache were surrounded with a try-catch for
MemcacheServiceException as spelled out here (even though I don't use
a StrictErrorHandler, during the last maintenance it was still
failing):

http://code.google.com/appengine/docs/java/howto/maintenance.html

But now during this maintenance, I'm receiving a GCacheException on
all cache.put() calls causing my app to still be down.

Is that expected?  Are there other exceptions I may need to catch?

If it's expected, an update to that page would be nice.

Thanks,
-C

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: GAE Alternatives?

2010-02-24 Thread Corby
On Feb 24, 10:39 am, A1programmer derrick.simp...@gmail.com wrote:
 Are there any good alternatives to Google App Engine out there?

 I am finding that I cannot rely on GAE for a production quality
 environment.

I am very excited about the future of Google App Engine, but I am in
the same boat, Derrick.

I am working with a startup that tried to get up and running on Google
App Engine, but we have since migrated to Spring Cloud Foundry, which
runs on Amazon's EC2 architecture. It is a heavier-weight environment,
and the monthly costs are higher, but the development costs are much,
much cheaper, and we have far fewer unexpected Production problems.

 There's a huge attraction to the tiny resource requirement to maintain a WAR
 file deployment versus the large requirements of a EC2 style VM.

I agree, but for me there is an even larger attraction to having
predictable behavior in our Production environment, and we can't
currently get that from GAE. Some people are happy with BigTable as a
general persistence solution, but we are not. The whitelisted
classloader makes every attempt to integrate with third-party
libraries an adventure. And the nature of GAE's on-demand provisioning
makes it difficult to guarantee the response times we want for our
customers.

The crushing blow to our morale is code that runs perfectly in our
development environment, but breaks when deployed to GAE.

I have a lot of faith in the Google team, and I can't wait to see what
GAE looks like a year from now. But right now, I can only recommend it
for the simplest of internal apps, nothing client-facing.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: solution to the Java load latency

2010-02-24 Thread Ikai L (Google)
The correct solution is to drive more traffic to your application, and we
discourage pinging. We're working on solutions that will reduce load times
all around. The issue with pinging your application, as some users do, is
that it decreases resources from the global pool and increases the amount of
application cycling that happens. A more subtle effect of this is this
affects our instrumentation and causes your application to be grouped in our
reporting with applications that are seeing normal cycling - the % of your
requests that are loading requests drops significantly, and it tells us that
your application is fine when it is not.

On Tue, Feb 23, 2010 at 1:45 PM, Guillermo Schwarz 
guillermo.schw...@gmail.com wrote:

 Does any one have a way to test this?

 I've been doing tests manually against my app and it takes between 6 to 8
 secs to load, just the landing page.

 After that, it has subsecond performance. Nice!

 I've read that you can have the one app in python access the same data
 store as another app in Java. Would that break the GAE contract?

 It sure would fix this problem while GAE fix this issue.

 Cheers,
 Guillermo.


 On Tue, Feb 23, 2010 at 4:44 PM, Locke locke2...@gmail.com wrote:

 Some Java load times are here. When using the database, these times
 can be worse, of course.


 http://groups.google.com/group/google-appengine/browse_thread/thread/11b2f2b425e10e38/c8564e0eb61de1ed?lnk=gstq=benchmarks#c8564e0eb61de1ed


 On Feb 23, 12:23 pm, Guillermo Schwarz guillermo.schw...@gmail.com
 wrote:
  Dear all,
 
  I've read some of you are having load latency issues. How much time
  you have to wait for your applications to load? I ask this because I
  haven't noticed any delay in my applications so I was wondering what
  it could be.
 
  Cheers,
  Guillermo.

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




 --
 Saludos cordiales,

 Guillermo Schwarz
 Sun Certified Enterprise Architect

  --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Google App Engine down or just my app?

2010-02-24 Thread Ikai L (Google)
Yes, there was an outage, but this should have been resolved. You may want
to subscribe to this mailing list:

http://groups.google.com/group/google-appengine-downtime-notify

On Wed, Feb 24, 2010 at 9:00 AM, Ronen rbabay...@gmail.com wrote:

 Hey,

 Trying to reach:

 https://appengine.google.com/

 Get an internal server error (500). In addition, can't deploy my app
 from eclipse. Following error:

 eclipse.buildId=M20090917-0800
 java.version=1.6.0_18
 java.vendor=Sun Microsystems Inc.
 BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
 Framework arguments:  -product org.eclipse.epp.package.jee.product
 Command-line arguments:  -os win32 -ws win32 -arch x86 -product
 org.eclipse.epp.package.jee.product


 Error
 Wed Feb 24 18:35:02 IST 2010
 Unable to update app: Error posting to URL:

 https://appengine.google.com/api/appversion/create?app_id=webhinge-guestbookversion=2500
 Internal Server Error

 htmlhead
 meta http-equiv=content-type content=text/html;charset=utf-8
 title500 Server Error/title
 /head
 body text=#00 bgcolor=#ff
 h1Error: Server Error/h1
 h2The server encountered an error and could not complete your
 request.pIf the problem persists, please A HREF=http://
 code.google.com/appengine/community.htmlreport/A your problem and
 mention this error message and the query that caused it./h2
 h2/h2
 /body/html


 See the deployment console for more details

 com.google.appengine.tools.admin.AdminException: Unable to update app:
 Error posting to URL:
 https://appengine.google.com/api/appversion/create?app_id=webhinge-guestbookversion=2;
 500 Internal Server Error

 htmlhead
 meta http-equiv=content-type content=text/html;charset=utf-8
 title500 Server Error/title
 /head
 body text=#00 bgcolor=#ff
 h1Error: Server Error/h1
 h2The server encountered an error and could not complete your
 request.pIf the problem persists, please A HREF=http://
 code.google.com/appengine/community.htmlreport/A your problem and
 mention this error message and the query that caused it./h2
 h2/h2
 /body/html

 at
 com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:
 62)
 at

 com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:
 271)
 at

 com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:
 148)
 at

 org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:
 38)
 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
 Caused by: java.io.IOException: Error posting to URL:

 https://appengine.google.com/api/appversion/create?app_id=webhinge-guestbookversion=2;
 500 Internal Server Error

 htmlhead
 meta http-equiv=content-type content=text/html;charset=utf-8
 title500 Server Error/title
 /head
 body text=#00 bgcolor=#ff
 h1Error: Server Error/h1
 h2The server encountered an error and could not complete your
 request.pIf the problem persists, please A HREF=http://
 code.google.com/appengine/community.htmlreport/A your problem and
 mention this error message and the query that caused it./h2
 h2/h2
 /body/html

 at

 com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:
 149)
 at

 com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:
 82)
 at

 com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:
 532)
 at

 com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:
 349)
 at

 com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:
 111)
 at
 com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:
 56)
 ... 4 more

 What seems to be the problem?

 Ronen

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: Deployment with Eclipse plug-in

2010-02-24 Thread Keith Platfoot
This is likely related to the unscheduled outage earlier today.

See http://code.google.com/status/appengine

Keith

On Wed, Feb 24, 2010 at 11:28 AM, Sandeep sandeep.ba...@gmail.com wrote:

 Same here, haven't been able to deploy my updated app too.

 java.io.IOException: Error posting to URL:

 http://appengine.google.com/api/appversion/create?app_id=mdvk-chnversion=1;
 500 Internal Server Error

 htmlhead
 meta http-equiv=content-type content=text/html;charset=utf-8
 title500 Server Error/title
 /head
 body text=#00 bgcolor=#ff
 h1Error: Server Error/h1
 h2The server encountered an error and could not complete your
 request.pIf the problem persists, please A HREF=http://
 code.google.com/appengine/community.htmlreport/A your problem and
 mention this error message and the query that caused it./h2
 h2/h2
 /body/html

 at

 com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:
 143)
at

 com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:
 81)
at

 com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:
 522)
at

 com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:
 339)
at

 com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:
 111)
at
 com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:
 56)
at

 com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:
 271)
at

 com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:
 148)
at

 org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:
 38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

 Also note: http://appengine.google.com/ is throwing 500 Internal
 Errors. I do not think this is your app problem.

 Regards,
 Sandeep

 On Feb 24, 9:00 pm, dominity domin...@gmail.com wrote:
  Hey, guys.
 
  Currently I've got this message during deployment.
 
  java.io.IOException: Error posting to URL:
 http://appengine.google.com/api/appversion/create?app_id=caretransfer...
  500 Internal Server Error
 
  htmlhead
  meta http-equiv=content-type content=text/html;charset=utf-8
  title500 Server Error/title
  /head
  body text=#00 bgcolor=#ff
  h1Error: Server Error/h1
  h2The server encountered an error and could not complete your
  request.pIf the problem persists, please A HREF=http://
  code.google.com/appengine/community.htmlreport/A your problem and
  mention this error message and the query that caused it./h2
  h2/h2
  /body/html
 
  How does it be processed?
 
  Best regards, Alexander.

 --
 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.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 group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Problem with persistance

2010-02-24 Thread Jake
http://code.google.com/appengine/docs/java/datastore/relationships.html#Owned_One_to_One_Relationships

You create a bidirectional one-to-one relationship using fields on
both classes, with an annotation on the child class's field to declare
that the fields represent a bidirectional relationship. The field of
the child class must have a @Persistent annotation with the argument
mappedBy = ..., where the value is the name of the field on the
parent class.

From what I see, you have it backwards, with the annotation in the
parent class.

Jake

On Feb 24, 4:26 am, Anton Klotz dipl.ing.akl...@googlemail.com
wrote:
 Hi,

 could please somebody tell me, what I'm doing wrong here?

 Here is one child datastructure I want to persist:

 @PersistenceCapable

 public class OfferDetails {

         @PrimaryKey
         @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
         private Key mId;

         @Persistent
         private String mOfferDescription;

         @Persistent
         private Offer mOffer;

         public OfferDetails ()
         {

         }

         public OfferDetails (String offerDesc)
         {
                 this ();
                 mOfferDescription = offerDesc;
         }

 }

 And here is the parent

 @PersistenceCapable(identityType = IdentityType.APPLICATION,
 detachable=true)

 public class Offer {
         @PrimaryKey
         @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
         private Key mId;

         @Persistent(mappedBy=mOffer)
         private OfferDetails mOfferDetails;

 public Offer( OfferDetails offerDetails)
         {
                 this();
                 mOfferDetails = offerDetails;
         }

 }

 Here is the presistance routine:

 public class OfferDataAccess {
           private static final long serialVersionUID = -7037344095742126014L;
           private PersistenceManager pm;

           public OfferDataAccess ()
           {
                   pm = PMF.get().getPersistenceManager();
           }

         public void persistOffer (Offer offer)
         {
                 pm.currentTransaction().begin();
                 try {
                         pm.makePersistent(offer);
                         pm.currentTransaction().commit();
                 } finally {
                         if (pm.currentTransaction().isActive())
                                 pm.currentTransaction().rollback();
                         pm.close();
                 }
         }

 And here is the call of the persistance routine:
 class CreateOfferActionCommand
 {
         public void execute() {
                 mOfferDB = new OfferDataAccess ();
                 mOffer = new Offer (mOfferDetails);
                 mOfferDB.persistOffer (mOffer);

 }
 }

 Now if I run this code, I get following errormessage:

 java.lang.IllegalStateException: Primary key for object of type
 OfferDetails is null.
         at
 org.datanucleus.store.appengine.EntityUtils.getPkAsKey(EntityUtils.java:
 152)
         at
 org.datanucleus.store.appengine.DatastoreFieldManager.getKeyForObject(DatastoreFieldManager.java:
 625)
         at
 org.datanucleus.store.appengine.DatastoreFieldManager.getParentKeyFromParentField(DatastoreFieldManager.java:
 634)
         at
 org.datanucleus.store.appengine.DatastoreFieldManager.establishEntityGroup(DatastoreFieldManager.java:
 591)
         at
 org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPreProcess(DatastorePersistenceHandler.java:
 338)
         at
 org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(DatastorePersistenceHandler.java:
 246)
         at
 org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject(DatastorePersistenceHandler.java:
 235)
         at
 org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent(JDOStateManagerImpl.java:
 3185)
         at
 org.datanucleus.state.JDOStateManagerImpl.makePersistent(JDOStateManagerImpl.java:
 3161)
         at
 org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:
 1298)
         at
 org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:
 1175)
         at
 org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:
 669)
         at
 org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:
 694)
         at
 com.sparradar.server.datamodel.offer.OfferDataAccess.persistOffer(OfferDataAccess.java:
 29)
         at
 com.sparradar.server.action.actioncommands.CreateOfferActionCommand.execute(CreateOfferActionCommand.java:
 60)
         at
 info.rk.vaadinapp.manager.urldispatching.URLActionDispatcher.handleURI(URLActionDispatcher.java:
 90)
         at com.vaadin.ui.Window.handleURI(Window.java:358)
         at
 com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleURI(AbstractCommunicationManager.java:
 1830)
         at
 com.vaadin.terminal.gwt.server.CommunicationManager.handleURI(CommunicationManager.java:
 

Re: [appengine-java] Can pm.makePersistentAll() help me write 12,000 objects?

2010-02-24 Thread Jeff Schnitzer
I think this is actually an interesting question, and brings up a
discussion worth having:

Is datastore performance reasonable?

I don't want to make this a discussion of reliability, which is a
separate issue.  It just seems to me that the datastore is actually
kinda pokey, taking seconds to write a few hundred entities.  When
people benchmark Tokyo Tyrant, I hear numbers thrown around like
22,000 writes/second sustained across 1M records:

http://blog.hunch.se/2009/02/28-tokyo-cabinet

You might argue that the theoretical scalability of BigTable's
distributed store is higher... but we're talking about two full orders
of magnitude difference.  Will I ever near the 100-google-server
equivalent load?  Could I pay for it if I did?  100 CPUs (measured)
running for 1 month is about $7,200.  Actual CPU speed is at least
twice the measured rate, so a single Tokyo Tyrant is theoretically
equivalent to almost $15,000/month of appengine hosting.  Ouch.

Maybe this isn't an apples to apples comparison.  Sure, there aren't
extra indexes on those Tyrant entities... but to be honest, few of my
entities have extra indexes.  What other factors could change this
analysis?

Thoughts?

BTW Tim, you may very well have quite a few indexes on your entities.
In JDO, nearly all single fields are indexed by default.  You must
explicitly add an annotation to your fields to make them unindexed.
With Objectify, you can declare your entity as @Indexed or @Unindexed
and then use the same annotation on individual fields to override the
default.

Jeff

On Wed, Feb 24, 2010 at 12:43 AM, Tim Cooper tco...@gmail.com wrote:
 I have been trying to write 12,000 objects in a single page request.
 These objects are all very small and the total amount of memory is not
 large.  There is no index on these objects - the only GQL queries I
 make on them are based on the primary key.

 Ikai has said:  That is - if you have to delete or create 150
 persistent, indexed objects, you may want to rethink what problems you
 are trying to solve.

 So I have been thinking about the problems I'm trying to solve,
 including looking at the BuddyPoke blog and reading the GAE
 documentation.  I'm trying to populate the database with entries
 relating to high school timetables.

 * I could do the writes asynchronously, but that looks like a lot of
 additional effort. On my C++ app, writing the same information to my
 laptop drive, this happens in under a second, because the amount of
 data is actually quite small, but it times out on GAE.
 * I am using pm.makePersistentAll(), but this doesn't help.
 * There is no index on the objects - I access them only through the
 primary key.  (I'm pretty sure there's no index - but how can I
 confirm this via the development server dashboard?)
 * The objects constitute 12,000 entity groups.  I could merge them
 into fewer entity groups, but there's no natural groupings I could
 use, so it could get quite complex to introduce a contrived grouping,
 and also this would complicate the multi-user updating of the objects.
  The AppEngine team seem to generally recommend using more entity
 groups, but it's difficult to integrate that advice with the contrary
 advice to use fewer entity groups for acceptable performance.
 * I'd be happy if the GAE database was  10 times slower than a
 non-cloud RDBMS, but the way I'm using it, it's currently not.

 Does anyone have any advice?

 --
 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.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 group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: solution to the Java load latency

2010-02-24 Thread Ikai L (Google)
I'm glad you understand some of the challenges we are facing. We have
several proposed solutions, but each solution has a tradeoff. Sun's
investment in the JVM is massive, and they focused on building a virtual
machine that pays a bit more of an upfront cost for a bigger performance
benefit over the long run (startime time, JIT). At times, this is at odds
with some of the requirements of building a flexible cloud system: we need
to assume lifespans are ephemeral, we need to teardown and startup new app
instances quickly, we need to sandbox applications for security.

I can understand quick and dirty. I just try to discourage people from doing
it as much as possible.

On Wed, Feb 24, 2010 at 11:04 AM, Guillermo Schwarz 
guillermo.schw...@gmail.com wrote:

 Ikai,

 I agree wholehartedly with you.

 Nevertheless, I think what Locke needs is a quick and dirty solution
 before the correct one you mention is implemented (which can take a
 while, because it is the correct one).

 At the same time, that solution needs to not interfere with other
 applications. The poll initiative using cron would be of that kind.

 I suppose Locke could load a static page somewhere (I think that is
 possible right now in GAE, but I'm not sure) and inside that page have
 a link (let's say an image) that is hosted with the rest of the app.
 This way the application would the pinged whenever a user enters the
 page and everyone would be happy.

 Cheers,
 Guillermo.

 On 24 feb, 15:29, Ikai L (Google) ika...@google.com wrote:
  The correct solution is to drive more traffic to your application, and
 we
  discourage pinging. We're working on solutions that will reduce load
 times
  all around. The issue with pinging your application, as some users do, is
  that it decreases resources from the global pool and increases the amount
 of
  application cycling that happens. A more subtle effect of this is this
  affects our instrumentation and causes your application to be grouped in
 our
  reporting with applications that are seeing normal cycling - the % of
 your
  requests that are loading requests drops significantly, and it tells us
 that
  your application is fine when it is not.
 
  On Tue, Feb 23, 2010 at 1:45 PM, Guillermo Schwarz 
 
 
 
  guillermo.schw...@gmail.com wrote:
   Does any one have a way to test this?
 
   I've been doing tests manually against my app and it takes between 6 to
 8
   secs to load, just the landing page.
 
   After that, it has subsecond performance. Nice!
 
   I've read that you can have the one app in python access the same data
   store as another app in Java. Would that break the GAE contract?
 
   It sure would fix this problem while GAE fix this issue.
 
   Cheers,
   Guillermo.
 
   On Tue, Feb 23, 2010 at 4:44 PM, Locke locke2...@gmail.com wrote:
 
   Some Java load times are here. When using the database, these times
   can be worse, of course.
 
  http://groups.google.com/group/google-appengine/browse_thread/thread/.
 ..
 
   On Feb 23, 12:23 pm, Guillermo Schwarz guillermo.schw...@gmail.com
   wrote:
Dear all,
 
I've read some of you are having load latency issues. How much time
you have to wait for your applications to load? I ask this because I
haven't noticed any delay in my applications so I was wondering what
it could be.
 
Cheers,
Guillermo.
 
   --
   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.com
 google-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%252bunsubscr...@googlegroups.com
 
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine-java?hl=en.
 
   --
   Saludos cordiales,
 
   Guillermo Schwarz
   Sun Certified Enterprise Architect
 
--
   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.com
 google-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%252bunsubscr...@googlegroups.com
 
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine-java?hl=en.
 
  --
  Ikai Lan
  Developer Programs Engineer, Google App Enginehttp://
 googleappengine.blogspot.com|http://twitter.com/app_engine

 --
 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
 

[appengine-java] Datanucleus log

2010-02-24 Thread markm208
Probably a simple, easy question but...

I am getting this error message when datanucleus enhancement takes
place:

DataNucleus Enhancer completed with an error. Please review the
enhancer log for full details. Some classes may have been enhanced but
some caused errors
DataNucleus Enhancer completed and no classes were enhanced. Consult
the log for full details

It is not immediately apparent (to me anyway) where the log is. So,
can someone point me to the log itself?

The real problem I am having is with this code (using JPA):

@Entity(name = IndirectContactEmail)
public class IndirectContactEmail
{
//key of the entity
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key id;

//simple data members
private String first;
private String last;
private Email emailId;

//reference members
//unowned one-to-many, these are back links to the 'ones'
private Key indirectContactListKey;
private Key directContactKey;

public static ListIndirectContactEmail get(ListKey
keysOfIndirectContactEmails)
{
return null;
}
...

If I comment out the get() method everything is fine, with it in (even
completely empty) I get datanucleus enhancement errors:

Errors were encountered when loading the specified MetaData files and
classes. See the nested exceptions for details
org.datanucleus.exceptions.NucleusUserException: Errors were
encountered when loading the specified MetaData files and classes. See
the nested exceptions for details
at
org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
426)
at
org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:
743)
at
org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:
545)
at
org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:
1252)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:
57)
at com.google.appengine.tools.enhancer.Enhance.init(Enhance.java:
60)
at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
Caused by: java.lang.NullPointerException
at
org.datanucleus.jpa.metadata.JPAAnnotationReader.processMemberAnnotations(JPAAnnotationReader.java:
853)
at
org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:
159)
at
org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:
136)
at
org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:
2278)
at
org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
385)
... 10 more
Nested Throwables StackTrace:
java.lang.NullPointerException
at
org.datanucleus.jpa.metadata.JPAAnnotationReader.processMemberAnnotations(JPAAnnotationReader.java:
853)
at
org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:
159)
at
org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:
136)
at
org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:
2278)
at
org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
385)
at
org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:
743)
at
org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:
545)
at
org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:
1252)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:
57)
at com.google.appengine.tools.enhancer.Enhance.init(Enhance.java:
60)
at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
DataNucleus Enhancer completed with an error. Please review the
enhancer log for full details. Some classes may have been enhanced but
some caused errors
DataNucleus Enhancer completed and no classes were enhanced. Consult
the log for full details

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java 

[appengine-java] Re: Datanucleus log

2010-02-24 Thread datanucleus
Rename your get() method to getXXX or something else. Sadly GAE/J uses
an ancient version of DataNucleus.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Datanucleus log

2010-02-24 Thread markm208
Aah... I see, that worked. get() is a loaded name, I should have known
better.

I am still curious about the location of the log file mentioned in the
error, can you provide some help there?
Thanks!


On Feb 24, 1:48 pm, datanucleus andy_jeffer...@yahoo.com wrote:
 Rename your get() method to getXXX or something else. Sadly GAE/J uses
 an ancient version of DataNucleus.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] uniqueness control ideas

2010-02-24 Thread atomi
I've been trying to devise a way to maintain uniqueness among different
entities by storing some kind of UUID based on the fields I want unique for
that entity Using JDO, and a GenericDAO (groovy)
Here is the method for put() in my GenericDAO:

def put(Object object) {
Collection objects = list();
 Boolean exists = false;

objects.each {if(it.getUniqueKey() == object.getUniqueKey()) {exists =
true}}

if(!exists) {
PersistenceManager pm = getPersistenceManager();

Transaction tx = pm.currentTransaction();
try {
tx.begin();
 pm.makePersistent(object);
tx.commit();
} finally {
 if (tx.isActive()) {
tx.rollback();
}
 pm.close();
}
}
 }
Where the uniqueKey field is a *unique string based on fields I need to be
unique*.
My question is what is good way to create this unique key string using for
example multiple string fields that will be consistent? My first inclination
was to use an MD5 but I see that datanucleus provides value generators that
might work better? Ideas? Or am I just going about this the wrong way?

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Can pm.makePersistentAll() help me write 12,000 objects?

2010-02-24 Thread Guillermo Schwarz
Ikai,

Maybe you are right. Maybe not. I'm not an expert in datastore
internals, but here is my point of view.

This paper claims that Berkeley DB Java edition can insert about
15,000 records per second.

http://www.oracle.com/database/docs/bdb-je-architecture-whitepaper.pdf

The graphic is on page 22. The main reason they claim to be able to do
that is that they don't need to actually sync the write to disk, they
can queue the write, update in-memory data and write a log file.
Writing the log file is for transactional purposes and it is the only
write really needed.That is pretty fast.

Cheers,
Guillermo.

On 24 feb, 16:51, Ikai L (Google) ika...@google.com wrote:
 I also remember hearing (and this is not verified so don't quote me on this
 or come after me if I'm wrong) from a friend of mine running KV stores in
 production that there were issues with certain distributed key/value stores
 that actually managed to slow down as a function of the number of objects in
 the store - and Tokyo Tyrant was on his list. A key property of scalable
 stores is that the opposite of this is true.

 12,000 synchronous, serialized writes in a single sub-second request is
 pretty serious. I am not aware of a single website in the world that does
 this.

 On Wed, Feb 24, 2010 at 11:35 AM, Jeff Schnitzer j...@infohazard.orgwrote:



  I think this is actually an interesting question, and brings up a
  discussion worth having:

  Is datastore performance reasonable?

  I don't want to make this a discussion of reliability, which is a
  separate issue.  It just seems to me that the datastore is actually
  kinda pokey, taking seconds to write a few hundred entities.  When
  people benchmark Tokyo Tyrant, I hear numbers thrown around like
  22,000 writes/second sustained across 1M records:

 http://blog.hunch.se/2009/02/28-tokyo-cabinet

  You might argue that the theoretical scalability of BigTable's
  distributed store is higher... but we're talking about two full orders
  of magnitude difference.  Will I ever near the 100-google-server
  equivalent load?  Could I pay for it if I did?  100 CPUs (measured)
  running for 1 month is about $7,200.  Actual CPU speed is at least
  twice the measured rate, so a single Tokyo Tyrant is theoretically
  equivalent to almost $15,000/month of appengine hosting.  Ouch.

  Maybe this isn't an apples to apples comparison.  Sure, there aren't
  extra indexes on those Tyrant entities... but to be honest, few of my
  entities have extra indexes.  What other factors could change this
  analysis?

  Thoughts?

  BTW Tim, you may very well have quite a few indexes on your entities.
  In JDO, nearly all single fields are indexed by default.  You must
  explicitly add an annotation to your fields to make them unindexed.
  With Objectify, you can declare your entity as @Indexed or @Unindexed
  and then use the same annotation on individual fields to override the
  default.

  Jeff

  On Wed, Feb 24, 2010 at 12:43 AM, Tim Cooper tco...@gmail.com wrote:
   I have been trying to write 12,000 objects in a single page request.
   These objects are all very small and the total amount of memory is not
   large.  There is no index on these objects - the only GQL queries I
   make on them are based on the primary key.

   Ikai has said:  That is - if you have to delete or create 150
   persistent, indexed objects, you may want to rethink what problems you
   are trying to solve.

   So I have been thinking about the problems I'm trying to solve,
   including looking at the BuddyPoke blog and reading the GAE
   documentation.  I'm trying to populate the database with entries
   relating to high school timetables.

   * I could do the writes asynchronously, but that looks like a lot of
   additional effort. On my C++ app, writing the same information to my
   laptop drive, this happens in under a second, because the amount of
   data is actually quite small, but it times out on GAE.
   * I am using pm.makePersistentAll(), but this doesn't help.
   * There is no index on the objects - I access them only through the
   primary key.  (I'm pretty sure there's no index - but how can I
   confirm this via the development server dashboard?)
   * The objects constitute 12,000 entity groups.  I could merge them
   into fewer entity groups, but there's no natural groupings I could
   use, so it could get quite complex to introduce a contrived grouping,
   and also this would complicate the multi-user updating of the objects.
    The AppEngine team seem to generally recommend using more entity
   groups, but it's difficult to integrate that advice with the contrary
   advice to use fewer entity groups for acceptable performance.
   * I'd be happy if the GAE database was  10 times slower than a
   non-cloud RDBMS, but the way I'm using it, it's currently not.

   Does anyone have any advice?

   --
   You received this message because you are subscribed to the Google Groups
  Google App Engine for Java group.
   To post 

Re: [appengine-java] Re: Can pm.makePersistentAll() help me write 12,000 objects?

2010-02-24 Thread Ikai L (Google)
Simple key-only writes can definitely do it, but there's a few places where
you can introduce overhead:

- serialization
- network I/O
- indexes

My point wasn't necessarily that it wasn't possible. makePersistentAll does
use a batch write, and there are definitely sites that can do 12,000+ writes
a second (and well above that), but I don't know of any that will attempt to
do that in a single request. While it's an interesting thought exercise to
see if BigTable can do it through App Engine's interface (hint: it can,
globally, easily), I can't think of a single use case for a site to need to
do this all the time and with the sub-second requirement. I think it's
reasonable to ask why this design exists and why the requirements exist and
rethink one or the other.

On Wed, Feb 24, 2010 at 12:35 PM, Guillermo Schwarz 
guillermo.schw...@gmail.com wrote:

 Ikai,

 Maybe you are right. Maybe not. I'm not an expert in datastore
 internals, but here is my point of view.

 This paper claims that Berkeley DB Java edition can insert about
 15,000 records per second.

 http://www.oracle.com/database/docs/bdb-je-architecture-whitepaper.pdf

 The graphic is on page 22. The main reason they claim to be able to do
 that is that they don't need to actually sync the write to disk, they
 can queue the write, update in-memory data and write a log file.
 Writing the log file is for transactional purposes and it is the only
 write really needed.That is pretty fast.

 Cheers,
 Guillermo.

 On 24 feb, 16:51, Ikai L (Google) ika...@google.com wrote:
  I also remember hearing (and this is not verified so don't quote me on
 this
  or come after me if I'm wrong) from a friend of mine running KV stores in
  production that there were issues with certain distributed key/value
 stores
  that actually managed to slow down as a function of the number of objects
 in
  the store - and Tokyo Tyrant was on his list. A key property of scalable
  stores is that the opposite of this is true.
 
  12,000 synchronous, serialized writes in a single sub-second request is
  pretty serious. I am not aware of a single website in the world that does
  this.
 
  On Wed, Feb 24, 2010 at 11:35 AM, Jeff Schnitzer j...@infohazard.org
 wrote:
 
 
 
   I think this is actually an interesting question, and brings up a
   discussion worth having:
 
   Is datastore performance reasonable?
 
   I don't want to make this a discussion of reliability, which is a
   separate issue.  It just seems to me that the datastore is actually
   kinda pokey, taking seconds to write a few hundred entities.  When
   people benchmark Tokyo Tyrant, I hear numbers thrown around like
   22,000 writes/second sustained across 1M records:
 
  http://blog.hunch.se/2009/02/28-tokyo-cabinet
 
   You might argue that the theoretical scalability of BigTable's
   distributed store is higher... but we're talking about two full orders
   of magnitude difference.  Will I ever near the 100-google-server
   equivalent load?  Could I pay for it if I did?  100 CPUs (measured)
   running for 1 month is about $7,200.  Actual CPU speed is at least
   twice the measured rate, so a single Tokyo Tyrant is theoretically
   equivalent to almost $15,000/month of appengine hosting.  Ouch.
 
   Maybe this isn't an apples to apples comparison.  Sure, there aren't
   extra indexes on those Tyrant entities... but to be honest, few of my
   entities have extra indexes.  What other factors could change this
   analysis?
 
   Thoughts?
 
   BTW Tim, you may very well have quite a few indexes on your entities.
   In JDO, nearly all single fields are indexed by default.  You must
   explicitly add an annotation to your fields to make them unindexed.
   With Objectify, you can declare your entity as @Indexed or @Unindexed
   and then use the same annotation on individual fields to override the
   default.
 
   Jeff
 
   On Wed, Feb 24, 2010 at 12:43 AM, Tim Cooper tco...@gmail.com wrote:
I have been trying to write 12,000 objects in a single page request.
These objects are all very small and the total amount of memory is
 not
large.  There is no index on these objects - the only GQL queries I
make on them are based on the primary key.
 
Ikai has said:  That is - if you have to delete or create 150
persistent, indexed objects, you may want to rethink what problems
 you
are trying to solve.
 
So I have been thinking about the problems I'm trying to solve,
including looking at the BuddyPoke blog and reading the GAE
documentation.  I'm trying to populate the database with entries
relating to high school timetables.
 
* I could do the writes asynchronously, but that looks like a lot of
additional effort. On my C++ app, writing the same information to my
laptop drive, this happens in under a second, because the amount of
data is actually quite small, but it times out on GAE.
* I am using pm.makePersistentAll(), but this doesn't help.
* There is no index on 

Re: [appengine-java] Re: way to interactively query datastore?

2010-02-24 Thread David Lam
On Wed, Feb 24, 2010 at 1:37 AM, vbart vaclav.barta...@spolecne.cz wrote:

 I can offer only listing solution, based on our free GQL dynamic
 parser - http://audao.spoledge.com/download.jsp
 The full JSP you can find here:

 http://vaclavb.blogspot.com/2010/02/google-app-engine-data-viewer-gql-java.html

 The GQL parser (class GqlDynamic) converts GQL queries into low-level
 datastore API calls, so the basic code of fetching entities can be:

  import com.google.appengine.api.datastore.DatastoreServiceFactory;
  import com.google.appengine.api.datastore.Entity;
  import com.spoledge.audao.parser.gql.GqlDynamic;
  import java.util.List;
  ...
  GqlDynamic gqld = new GqlDynamic();

 gqld.setDatastoreService( DatastoreServiceFactory.getDatastoreService());

  String gql = SELECT * FROM MyEntity WHERE prop1='test' ORDER BY
 prop2 LIMIT 10;
  ListEntity result =
 gqld.prepareQuery( gql ).asList( gqld.getFetchOptions());

 Then you just need to render the result in a JSP page.

 The GQL parser currently does not support operators '!=' and 'IN', but
 we are going to launch a new version in a few days which will support
 all GQL features.

 Vaclav


hmm thanks for the tip!  i actually was unaware the way to do something like
this was to build a google datastore.Query to represent the GQL statement...

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: problem with Unowned relationship beetwen a Root entity and a Entity of an EntityGroup

2010-02-24 Thread nicolas melendez
Nobody helps :(
NM

El feb 23, 2010 11:08 a.m., nicolas melendez nfmelen...@gmail.com
escribió:

Hi, i have an Unowned  relationship beetwen a *Root entity* and a Entity of
an EntityGroup.
*Root entity *isn't part of the* *entity group.

So, to the Entity of an EntityGroup i set the key of my *Root Entity* and I
persist.
Then when a do the getKey of the *Root Entity* to the  Entity of the
EntityGroup, y get a null, and then when i use it a Null pointer exception.
Anybody, knows why?
I am missing something?
Thanks
NM

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] custom authentication when using Google Apps domain

2010-02-24 Thread Houston startup coder
We need users to be able to access our app on our domain, so I went
into my Dashboard and clicked Add New URL to set this up, and then
added a CNAME at GoDaddy.  We use Google Apps for our domain
internally, but do not want the users of our App Engine app accessing
Mail, Documents, Sites, etc.  However, my understanding is that the
only way I could point a subdomain at our App Engine app was to use
Google Apps and Add New URL.

We're going to have an installed desktop application access our app
via ClientLogin, and it's fine if that needs to talk to
myapp.appspot.com in order to use HTTPS.  The plan is for the
installed application to hide the credentials it uses to safely
communicate with our App Engine application behind the scenes.

The only time our users will directly interact with the App Engine app
is when they login via a web browser.  For that, we'd like to use
custom authentication because I don't want to have to pay $50/user/
year for them to access via a Google Apps Premier account.  But it
sounds like this means we can't safeguard portions of the site with
the deployment descriptor if we're using custom authentication:

http://code.google.com/appengine/docs/java/config/webxml.html#Security_and_Authentication

Is this true?  How can we handle this?

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Can pm.makePersistentAll() help me write 12,000 objects?

2010-02-24 Thread Larry Cable
my experience with a relatively simple application via JDO
makePersistentAll() was that I got
DataStore Operation Timeout exceptions with batch sizes of approx
200-300 objects ...

On Feb 24, 1:48 pm, Guillermo Schwarz guillermo.schw...@gmail.com
wrote:
 I think we can safely assume that the programmer was trying to speed
 up things a little by writing 12 thousand objects in a single
 operation.

 Now if that gets to be faster or slower than writing each object
 separately, it is a matter of the internal implementation of the data
 store. I prefer to do no hacks, but OTOH it is better sometimes to be
 clear bout what you want (API wise).

 The point here is that the programmer wants to insert 15 thousand
 objects in a second, you seem to imply that is possible.
 While it's an interesting thought exercise to see if BigTable can do
 it through App Engine's interface (hint: it can, globally, easily).

 I rest my case ;-)

 Do we need to do anything to test that? Is there anything we could do
 to help?

 Cheers,
 Guillermo.

 On 24 feb, 18:06, Ikai L (Google) ika...@google.com wrote:



  Simple key-only writes can definitely do it, but there's a few places where
  you can introduce overhead:

  - serialization
  - network I/O
  - indexes

  My point wasn't necessarily that it wasn't possible. makePersistentAll does
  use a batch write, and there are definitely sites that can do 12,000+ writes
  a second (and well above that), but I don't know of any that will attempt to
  do that in a single request. While it's an interesting thought exercise to
  see if BigTable can do it through App Engine's interface (hint: it can,
  globally, easily), I can't think of a single use case for a site to need to
  do this all the time and with the sub-second requirement. I think it's
  reasonable to ask why this design exists and why the requirements exist and
  rethink one or the other.

  On Wed, Feb 24, 2010 at 12:35 PM, Guillermo Schwarz 

  guillermo.schw...@gmail.com wrote:
   Ikai,

   Maybe you are right. Maybe not. I'm not an expert in datastore
   internals, but here is my point of view.

   This paper claims that Berkeley DB Java edition can insert about
   15,000 records per second.

  http://www.oracle.com/database/docs/bdb-je-architecture-whitepaper.pdf

   The graphic is on page 22. The main reason they claim to be able to do
   that is that they don't need to actually sync the write to disk, they
   can queue the write, update in-memory data and write a log file.
   Writing the log file is for transactional purposes and it is the only
   write really needed.That is pretty fast.

   Cheers,
   Guillermo.

   On 24 feb, 16:51, Ikai L (Google) ika...@google.com wrote:
I also remember hearing (and this is not verified so don't quote me on
   this
or come after me if I'm wrong) from a friend of mine running KV stores 
in
production that there were issues with certain distributed key/value
   stores
that actually managed to slow down as a function of the number of 
objects
   in
the store - and Tokyo Tyrant was on his list. A key property of scalable
stores is that the opposite of this is true.

12,000 synchronous, serialized writes in a single sub-second request is
pretty serious. I am not aware of a single website in the world that 
does
this.

On Wed, Feb 24, 2010 at 11:35 AM, Jeff Schnitzer j...@infohazard.org
   wrote:

 I think this is actually an interesting question, and brings up a
 discussion worth having:

 Is datastore performance reasonable?

 I don't want to make this a discussion of reliability, which is a
 separate issue.  It just seems to me that the datastore is actually
 kinda pokey, taking seconds to write a few hundred entities.  When
 people benchmark Tokyo Tyrant, I hear numbers thrown around like
 22,000 writes/second sustained across 1M records:

http://blog.hunch.se/2009/02/28-tokyo-cabinet

 You might argue that the theoretical scalability of BigTable's
 distributed store is higher... but we're talking about two full orders
 of magnitude difference.  Will I ever near the 100-google-server
 equivalent load?  Could I pay for it if I did?  100 CPUs (measured)
 running for 1 month is about $7,200.  Actual CPU speed is at least
 twice the measured rate, so a single Tokyo Tyrant is theoretically
 equivalent to almost $15,000/month of appengine hosting.  Ouch.

 Maybe this isn't an apples to apples comparison.  Sure, there aren't
 extra indexes on those Tyrant entities... but to be honest, few of my
 entities have extra indexes.  What other factors could change this
 analysis?

 Thoughts?

 BTW Tim, you may very well have quite a few indexes on your entities.
 In JDO, nearly all single fields are indexed by default.  You must
 explicitly add an annotation to your fields to make them unindexed.
 With Objectify, you can declare your entity as 

[appengine-java] Re: GAE Alternatives?

2010-02-24 Thread Larry Cable
I have to concur with Corby on this ... I was initially attracted to
the end-to-end
solution that GAE offered integrated as it is with Eclipse.

In practice I have found it very frustrating to develop on GAE because
of:

- the class white list and 3rd party framework usage (i.e Spring)

- the truly frustrating metering exceptions that the Datastore and
Servlet container throw,
  coding around those is painful... you have to invent your own
transaction compensation...
- the lack of any Java based bullk load facility for DS (I had to
write my own)
  (which is when you trip up over the metering exceptions...)

- the limitations of mapping BigTable under JPA/JDO

- the paucity of debugging on the production server (the log WUI is
woeful for this)

We have reached the stage with our app where we will probably move it
off GAE and onto EC2 where despite the
additional work involved in dealing with AMI lifecycle vs .war we are
more in control of the underlying environment

(although I am sure there are a similar, but different, set of hiccups
and hurdles awaiting us ...)

- Larry


On Feb 24, 10:17 am, Corby cep...@gmail.com wrote:
 On Feb 24, 10:39 am, A1programmer derrick.simp...@gmail.com wrote:

  Are there any good alternatives to Google App Engine out there?

  I am finding that I cannot rely on GAE for a production quality
  environment.

 I am very excited about the future of Google App Engine, but I am in
 the same boat, Derrick.

 I am working with a startup that tried to get up and running on Google
 App Engine, but we have since migrated to Spring Cloud Foundry, which
 runs on Amazon's EC2 architecture. It is a heavier-weight environment,
 and the monthly costs are higher, but the development costs are much,
 much cheaper, and we have far fewer unexpected Production problems.

  There's a huge attraction to the tiny resource requirement to maintain a WAR
  file deployment versus the large requirements of a EC2 style VM.

 I agree, but for me there is an even larger attraction to having
 predictable behavior in our Production environment, and we can't
 currently get that from GAE. Some people are happy with BigTable as a
 general persistence solution, but we are not. The whitelisted
 classloader makes every attempt to integrate with third-party
 libraries an adventure. And the nature of GAE's on-demand provisioning
 makes it difficult to guarantee the response times we want for our
 customers.

 The crushing blow to our morale is code that runs perfectly in our
 development environment, but breaks when deployed to GAE.

 I have a lot of faith in the Google team, and I can't wait to see what
 GAE looks like a year from now. But right now, I can only recommend it
 for the simplest of internal apps, nothing client-facing.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] How expensive is a memcache instance?

2010-02-24 Thread Mouseclicker
The memcache is a really important feature to increase performance.
However I am not sure how to design my application in regards of how
to use memcache in the best way to cache various kinds of objects.
Often you have the need to cache different types of objects in an
application. It would be most convenient to create one memcache
instance for each kind. However I am not sure what happens in the
background if I create multiple instances using
CacheManager.getInstance().getCacheFactory().createCache().
Is this an expensive operation?

To clarify here an example: Lets assume I have a web shop. Probably I
would like to put the shopping carts in the cache but also maybe the
most frequently bought articles. The most easy way would be to have
one memcache instance for the shopping carts and a separate one for
the articles. So I don't have to deal with potential conflicts for the
keys and the cast of object types I get back. But would it we
advisable to use only one cache instance in this case to save
resources? I can imagine that for larger application you end up with a
whole bunch of cache instances.

Thanks for any hint. I believe that the answer is useful for many
other developers.

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] How expensive is a memcache instance?

2010-02-24 Thread Ikai L (Google)
Nope, this is cheap. Do it as many times as you need. You're not
instantiating a Memcache instance. You're instantiating a client instance.

On Wed, Feb 24, 2010 at 3:24 PM, Mouseclicker jens.h...@googlemail.comwrote:

 The memcache is a really important feature to increase performance.
 However I am not sure how to design my application in regards of how
 to use memcache in the best way to cache various kinds of objects.
 Often you have the need to cache different types of objects in an
 application. It would be most convenient to create one memcache
 instance for each kind. However I am not sure what happens in the
 background if I create multiple instances using
 CacheManager.getInstance().getCacheFactory().createCache().
 Is this an expensive operation?

 To clarify here an example: Lets assume I have a web shop. Probably I
 would like to put the shopping carts in the cache but also maybe the
 most frequently bought articles. The most easy way would be to have
 one memcache instance for the shopping carts and a separate one for
 the articles. So I don't have to deal with potential conflicts for the
 keys and the cast of object types I get back. But would it we
 advisable to use only one cache instance in this case to save
 resources? I can imagine that for larger application you end up with a
 whole bunch of cache instances.

 Thanks for any hint. I believe that the answer is useful for many
 other developers.

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: GAE Alternatives?

2010-02-24 Thread AJ Chen
It depends on your app. For small business app, you may check out force.com,
which offers free developer account. I use both GAE and force.com because
I'm excited about connecting google cloud with salesforce cloud. but, GAE's
current state of reliability and performance is a bit concern. Hope GAE
grows up faster.
-aj

On Wed, Feb 24, 2010 at 3:20 PM, Larry Cable larry.ca...@gmail.com wrote:

 I have to concur with Corby on this ... I was initially attracted to
 the end-to-end
 solution that GAE offered integrated as it is with Eclipse.

 In practice I have found it very frustrating to develop on GAE because
 of:

 - the class white list and 3rd party framework usage (i.e Spring)

 - the truly frustrating metering exceptions that the Datastore and
 Servlet container throw,
  coding around those is painful... you have to invent your own
 transaction compensation...
 - the lack of any Java based bullk load facility for DS (I had to
 write my own)
  (which is when you trip up over the metering exceptions...)

 - the limitations of mapping BigTable under JPA/JDO

 - the paucity of debugging on the production server (the log WUI is
 woeful for this)

 We have reached the stage with our app where we will probably move it
 off GAE and onto EC2 where despite the
 additional work involved in dealing with AMI lifecycle vs .war we are
 more in control of the underlying environment

 (although I am sure there are a similar, but different, set of hiccups
 and hurdles awaiting us ...)

 - Larry


 On Feb 24, 10:17 am, Corby cep...@gmail.com wrote:
  On Feb 24, 10:39 am, A1programmer derrick.simp...@gmail.com wrote:
 
   Are there any good alternatives to Google App Engine out there?
 
   I am finding that I cannot rely on GAE for a production quality
   environment.
 
  I am very excited about the future of Google App Engine, but I am in
  the same boat, Derrick.
 
  I am working with a startup that tried to get up and running on Google
  App Engine, but we have since migrated to Spring Cloud Foundry, which
  runs on Amazon's EC2 architecture. It is a heavier-weight environment,
  and the monthly costs are higher, but the development costs are much,
  much cheaper, and we have far fewer unexpected Production problems.
 
   There's a huge attraction to the tiny resource requirement to maintain
 a WAR
   file deployment versus the large requirements of a EC2 style VM.
 
  I agree, but for me there is an even larger attraction to having
  predictable behavior in our Production environment, and we can't
  currently get that from GAE. Some people are happy with BigTable as a
  general persistence solution, but we are not. The whitelisted
  classloader makes every attempt to integrate with third-party
  libraries an adventure. And the nature of GAE's on-demand provisioning
  makes it difficult to guarantee the response times we want for our
  customers.
 
  The crushing blow to our morale is code that runs perfectly in our
  development environment, but breaks when deployed to GAE.
 
  I have a lot of faith in the Google team, and I can't wait to see what
  GAE looks like a year from now. But right now, I can only recommend it
  for the simplest of internal apps, nothing client-facing.

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
AJ Chen, PhD
Chair, Semantic Web SIG, sdforum.org
http://web2express.org
@web2express on twitter
Palo Alto, CA, USA
650-283-4091
*Monitoring social media in real time*

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Problem whit upload form multipart

2010-02-24 Thread NIko Judo
Ok muchas gracias por sus respuestas, efectivamente habia 2 versiones
de fileupload y common-io en el path build\web\WEB-INF\lib, esto es
extraño porque edite las librerias de struts de mi proyecto y quite
las mas antiguas, sin embargo Netbeans quitaba las referencias pero
los archivos seguian en el build.
Bueno el problema se soluciono simplemente borrando estos jar.

Gracias por su tiempo.

On 17 feb, 00:01, John Patterson jdpatter...@gmail.com wrote:
 Do you have a different version of the jar in your lib directory to  
 the one on your build path?

 On 17 Feb 2010, at 09:11, NIko Judo wrote:



  Hola he probado el codigo siguiente para recibir un formulario
  multipart en mi aplicacion :

  Test folowing code

  import org.apache.commons.fileupload.FileItemStream;
  import org.apache.commons.fileupload.FileItemIterator;
  import org.apache.commons.fileupload.servlet.ServletFileUpload;

  import java.io.InputStream;
  import java.io.IOException;
  import java.util.logging.Logger;

  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;

  public class FileUpload extends HttpServlet {
   private static final Logger log =
       Logger.getLogger(FileUpload.class.getName());

   public void doPost(HttpServletRequest req, HttpServletResponse res)
       throws ServletException, IOException {
     try {
       ServletFileUpload upload = new ServletFileUpload();
       res.setContentType(text/plain);

       FileItemIterator iterator = upload.getItemIterator(req);
       while (iterator.hasNext()) {
         FileItemStream item = iterator.next();
         InputStream stream = item.openStream();

         if (item.isFormField()) {
           log.warning(Got a form field:  + item.getFieldName());
         } else {
           log.warning(Got an uploaded file:  + item.getFieldName() +
                       , name =  + item.getName());

           // You now have the filename (item.getName() and the
           // contents (which you can read from stream).  Here we just
           // print them back out to the servlet output stream, but you
           // will probably want to do something more interesting (for
           // example, wrap them in a Blob and commit them to the
           // datastore).
           int len;
           byte[] buffer = new byte[8192];
           while ((len = stream.read(buffer, 0, buffer.length)) != -1)
           {
             res.getOutputStream().write(buffer, 0, len);
           }
         }
       }
     } catch (Exception ex) {
       throw new ServletException(ex);
     }
   }

    �...@override
     protected void doGet(HttpServletRequest request,
  HttpServletResponse response)
     throws ServletException, IOException {

     }

  }

  el caso es que simpre me da un error cuando envio el formulario con
  image

  folowing error :

  Error for /FileUpload
  java.lang.NoSuchMethodError:
  org
  .apache
  .commons.fileupload.servlet.ServletFileUpload.getItemIterator(Ljavax/
  servlet/http/HttpServletRequest;)Lorg/apache/commons/fileupload/
  FileItemIterator;
     at com.ubicacion.servlet.FileUpload.doPost(FileUpload.java:32)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
  487)
     at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1093)
     at
  com
  .google
  .apphosting
  .utils
  .servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:
  97)
     at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1084)
     at
  com
  .google
  .apphosting
  .runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:
  35)
     at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1084)
     at
  com
  .google
  .apphosting
  .utils
  .servlet
  .TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
  43)
     at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1084)
     at
  org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
  360)
     at
  org
  .mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
  216)
     at
  org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
  181)
     at
  org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
  712)
     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
  405)
     at
  com
  .google
  .apphosting
  .runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:
  238)
     at
  org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
  139)
     at org.mortbay.jetty.Server.handle(Server.java:313)
     at  
  org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
  506)
   

[appengine-java] Re: Problem with persistance

2010-02-24 Thread Anton Klotz
Hi Jake,

thanks a lot for your answer.

After changing the mappedBy statement to child like this:

@Persistent(mappedBy = mOfferDetails)
private Offer mOffer;

and removing mappedBy from parent, Offer object seems to be persisted.
But when I get this object from the database with:

public Offer getOfferWithId (long id)
{
return pm.getObjectById(Offer.class, id);
}

and try to access child with

System.out.printf(String.format (Title %s,
mOffer.getOfferDetails().getOfferDescription() ));

I get following error:

 java.lang.NullPointerException
at
com.sparradar.server.action.actioncommands.ShowOfferDetailsActionCommand.execute(ShowOfferDetailsActionCommand.java:
41)
at
info.rk.vaadinapp.manager.urldispatching.URLActionDispatcher.handleURI(URLActionDispatcher.java:
90)
at com.vaadin.ui.Window.handleURI(Window.java:358)
at
com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleURI(AbstractCommunicationManager.java:
1830)
at
com.vaadin.terminal.gwt.server.CommunicationManager.handleURI(CommunicationManager.java:
311)
at
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.handleURI(AbstractApplicationServlet.java:
912)
at
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:
471)
at
com.vaadin.terminal.gwt.server.GAEApplicationServlet.service(GAEApplicationServlet.java:
231)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1093)
at
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
51)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
43)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
121)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
360)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
70)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:352)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
396)
at org.mortbay.thread.BoundedThreadPool
$PoolThread.run(BoundedThreadPool.java:442)


I don't get the error if I try to access eg mOffer.getId(). So my
interpretation of this error is that either the child object was not
saved in the database, or it was not fetched from the database. I
don't know how to verify this.

Thanks,

Anton


On 24 Feb., 20:17, Jake jbrooko...@cast.org wrote:
 http://code.google.com/appengine/docs/java/datastore/relationships.ht...

 You create a bidirectional one-to-one relationship using fields on
 both classes, with an annotation on the child class's field to declare
 that the fields represent a bidirectional relationship. The field of
 the child class must have a @Persistent annotation with the argument
 mappedBy = ..., where the value is the name of the field on the
 parent class.

 From what I see, you have it backwards, with the annotation in the
 parent class.

 Jake

 On Feb 24, 4:26 am, Anton Klotz dipl.ing.akl...@googlemail.com
 wrote:



  Hi,

  could please somebody tell me, what I'm doing wrong here?

  Here is one child datastructure I want to persist:

  @PersistenceCapable

  public class OfferDetails {

          @PrimaryKey
          @Persistent(valueStrategy = 

Re: [appengine-java] news on remote_api for java ?

2010-02-24 Thread Ikai L (Google)
You should be able to connect this:

?xml version=1.0 encoding=utf-8?
web-app
  !-- Add this to your web.xml to enable remote API on Java. --
  servlet
servlet-nameremoteapi/servlet-name

servlet-classcom.google.apphosting.utils.remoteapi.RemoteApiServlet/servlet-class
  /servlet
  servlet-mapping
servlet-nameremoteapi/servlet-name
url-pattern/remote_api/url-pattern
  /servlet-mapping
  security-constraint
web-resource-collection
  web-resource-nameremoteapi/web-resource-name
  url-pattern/remote_api/url-pattern
/web-resource-collection
auth-constraint
  role-nameadmin/role-name
/auth-constraint
  /security-constraint
/web-app

I'll dig for some sample code for the Java bulkloader. We're working
on official docs.

On Tue, Feb 9, 2010 at 1:22 AM, emerix rafa...@gmail.com wrote:

 Hi,
 Does anybody have some news on the remote_api for java ? It would be
 great to be able to use our JDO/JPA objects to interact with the
 datastore without having to upload a version to appengine !

 Thanx :)
 emerix

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Deleting Entities By Query or the PersistenceManager's deletePersistentAll()

2010-02-24 Thread Ikai L (Google)
I'm not certain there's a big benefit either way, as you still have to
remove all the indexes related to the entities. What have your benchmarks
reported?

On Wed, Feb 17, 2010 at 12:06 PM, Shai levys...@gmail.com wrote:

 Hi

 When I delete entities by query am I limited to 500 entities like when
 I am using PersistenceManager.deletePersistentAll() ?

 Also, if we ignore the object fetch time - what would consume less
 CPU time ?

 Can someone estimate if making many delete queries of smaller
 amounts of data would be better than getting all the data to for a big
 pm.deletePersistentAll() opertaion ?

 Thanks,
 Shai

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Ghost rows in Datastore - cant get some rows in a queries until I resave them in the Datastore viewer

2010-02-24 Thread Ikai L (Google)
Were you able to resolve this? What's your app-id?

On Wed, Feb 17, 2010 at 2:18 PM, Shai levys...@gmail.com wrote:

 HI,

 I encountered something strange when running queries in my application
 so I went to the Datastore Viewer and reproduced it in there, maybe
 someone can help me out:
 I have a table with a string column named 'owner' and + int column
 names 'seesionId' (+ some irrelevant columns)

 Everything is reproducing in datastore viewer:

 When I make the query

 SELECT * FROM table where owner = '[owner]'
 I can see a row with the owner and a sessionId with value 7

 So I tried:
 SELECT * FROM table where owner = '[owner]' and sessionId = 7

 And the row didn't return !
 So I open the row, didn't (!) change any thing and saved it.
 Now the same query did return the row

 I really don't understand it
 Can any one point me to what went wrong ? I have a lot of rows with
 the same problem and I really need to clean my datastore


 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] java.lang.RuntimeException: Version not ready.

2010-02-24 Thread Ikai L (Google)
I've seen this issue with certain deploys where we may not report the
correct error message, but I'm assuming you wrote a simple application that
wouldn't have had any of those issues. This likely coincided with a
maintenance period. You should be able to deploy. If you can't, please let
us know your application ID.

On Wed, Feb 17, 2010 at 6:56 PM, Swiki software.wikipe...@gmail.com wrote:

 Hi, I just signed up for google app engine and installed the Eclipse
 plugin. I did not add any other code to the default app and am able to
 run the app in my local eclipse env without any problem.

 I get error while deploying the app to google server

 my app id is : twittermutuality

 Here is console output when tried second time:
 
 Compiling module test.Test
   Compiling 6 permutations
  Compiling permutation 0...
  Compiling permutation 1...
  Compiling permutation 2...
  Compiling permutation 3...
  Compiling permutation 4...
  Compiling permutation 5...
   Compile of permutations succeeded
 Linking into C:\Workspaces\Personal\Test\war\test.
   Link succeeded
   Compilation succeeded -- 16.828s
 Creating staging directory
 Scanning for jsp files.
 Scanning files on local disk.
 Initiating update.
 Cloning 32 static files.
 Cloning 56 application files.
 Uploading 0 files.
 Initializing precompilation...
 Deploying new version.
 Will check again in 1 seconds
 Will check again in 2 seconds
 Will check again in 4 seconds
 Will check again in 8 seconds
 Will check again in 16 seconds
 Will check again in 32 seconds
 Will check again in 64 seconds
 Will check again in 128 seconds
 Rolling back the update.
 java.lang.RuntimeException: Version not ready.


 Below are the logs:
 ---
 Unable to update:
 java.lang.RuntimeException: Version not ready.
at

 com.google.appengine.tools.admin.AppVersionUpload.commit(AppVersionUpload.java:
 466)
at

 com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:
 127)
at
 com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:
 56)
at

 com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:
 271)
at

 com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:
 148)
at

 org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:
 38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

 Any help will be appreciated.

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] java.lang.RuntimeException: Version not ready.

2010-02-24 Thread Ikai L (Google)
Er, excuse me, the app-id is in the original email. In any case, please let
us know if this has worked for you.

On Wed, Feb 24, 2010 at 5:02 PM, Ikai L (Google) ika...@google.com wrote:

 I've seen this issue with certain deploys where we may not report the
 correct error message, but I'm assuming you wrote a simple application that
 wouldn't have had any of those issues. This likely coincided with a
 maintenance period. You should be able to deploy. If you can't, please let
 us know your application ID.


 On Wed, Feb 17, 2010 at 6:56 PM, Swiki software.wikipe...@gmail.comwrote:

 Hi, I just signed up for google app engine and installed the Eclipse
 plugin. I did not add any other code to the default app and am able to
 run the app in my local eclipse env without any problem.

 I get error while deploying the app to google server

 my app id is : twittermutuality

 Here is console output when tried second time:
 
 Compiling module test.Test
   Compiling 6 permutations
  Compiling permutation 0...
  Compiling permutation 1...
  Compiling permutation 2...
  Compiling permutation 3...
  Compiling permutation 4...
  Compiling permutation 5...
   Compile of permutations succeeded
 Linking into C:\Workspaces\Personal\Test\war\test.
   Link succeeded
   Compilation succeeded -- 16.828s
 Creating staging directory
 Scanning for jsp files.
 Scanning files on local disk.
 Initiating update.
 Cloning 32 static files.
 Cloning 56 application files.
 Uploading 0 files.
 Initializing precompilation...
 Deploying new version.
 Will check again in 1 seconds
 Will check again in 2 seconds
 Will check again in 4 seconds
 Will check again in 8 seconds
 Will check again in 16 seconds
 Will check again in 32 seconds
 Will check again in 64 seconds
 Will check again in 128 seconds
 Rolling back the update.
 java.lang.RuntimeException: Version not ready.


 Below are the logs:
 ---
 Unable to update:
 java.lang.RuntimeException: Version not ready.
at

 com.google.appengine.tools.admin.AppVersionUpload.commit(AppVersionUpload.java:
 466)
at

 com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:
 127)
at
 com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:
 56)
at

 com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:
 271)
at

 com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:
 148)
at

 org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:
 38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

 Any help will be appreciated.

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 http://googleappengine.blogspot.com | http://twitter.com/app_engine




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] NullPointerException while running a new app

2010-02-24 Thread Ikai L (Google)
What's your application ID?

On Fri, Feb 19, 2010 at 12:05 AM, Alberty Pascal
alberty.pas...@gmail.comwrote:

 Hi all,

 while updating my application, I got the following stack for all
 request made on it.
 I try to deploy a really simple new application (created with Eclipse
 and its plugin) and got the same stack.

 Any idea ?

 Thanks

 Pascal

 java.lang.NullPointerException
at
 com.google.appengine.runtime.Request.process-7d335e6a040b96cc(Request.java)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:44)
at
 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
 487)
at
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
 362)
at
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
 216)
at
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
 181)
at
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
 712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
 405)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
 487)
at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1093)
at

 com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:
 97)
at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1084)
at

 com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:
 35)
at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1084)
at

 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
 43)
at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1084)
at
 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
 360)
at
 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
 216)
at
 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
 181)
at
 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
 712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
 405)
at

 com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:
 238)
at
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
 139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at
 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
 506)
at org.mortbay.jetty.HttpConnection
 $RequestHandler.headerComplete(HttpConnection.java:830)
at

 com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:
 76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at

 com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:
 135)
at
 com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:
 235)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime
 $6.handleBlockingRequest(RuntimePb.java:5485)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime
 $6.handleBlockingRequest(RuntimePb.java:5483)
at

 com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:
 24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
 363)
at com.google.net.rpc.impl.Server$2.run(Server.java:837)
at
 com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:
 56)
at

 com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:
 536)
at com.google.net.rpc.impl.Server.startRpc(Server.java:792)
at com.google.net.rpc.impl.Server.processRequest(Server.java:367)
at

 com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:
 448)
at
 com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:
 319)
at
 com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:
 290)
at com.google.net.async.Connection.handleReadEvent(Connection.java:
 474)
at

 com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:
 774)
at
 com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:
 205)
  

Re: [appengine-java] Performance testing my App

2010-02-24 Thread Ikai L (Google)
You should fill out the following form:

http://code.google.com/support/bin/request.py?contact_type=AppEngineBillingSupport

On Fri, Feb 19, 2010 at 4:53 AM, Sandeep sandeep.ba...@gmail.com wrote:

 Hi,

 I wanted to know what is the procedure/notifications that need to be
 followed to communicate to Google App support team in case I want to
 run a performance test where I am going to be putting a load of 1000
 users with 50 concurrent users.

 Any inputs are appreciated!

 Thanks in advance,
 Sandeep

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Child objects not stored on GEA using JDO from Scala code

2010-02-24 Thread Ikai L (Google)
You might want to ask on the Scala groups because I don't see a lot of Scala
questions asked on this group.

That being said, I've fiddled with Scala on App Engine before with some
success. A few tips from what I've learned:

- You don't need to create a Key. JDO will acquire a unique key for you.
Even with nanotime, there is a chance of a collision. You're doing
unnecessary work.
- The Persistent Annotation on Criteria may require a MappedBy parameter:
http://code.google.com/appengine/docs/java/datastore/relationships.html

In general, I've found that it makes more sense to define the data models
using Java, since sometimes the class enhancement works unexpectedly with
Scala generated bytecode.

On Sat, Feb 20, 2010 at 5:47 AM, Gero Vermaas kivanot...@gmail.com wrote:

 Hi,

 I'm have a parent-child relation between 2 classes, but the child
 objects are never stored. I do get an warning:

 org.datanucleus.store.appengine.MetaDataValidator
 checkForIllegalChildField: Unable to validate relation
 net.vermaas.kivanotify.model.UserCriteria.internalCriteria

 but it is unclear to me why this occurs. Already tried several
 alternatives without luck.

 The parent class is UserCriteria which has a List of Criteria as
 children.

 The classes are defined as follows (Scala):

 class UserCriteria(tu: String, crit: Map[String, String]) extends
 LogHelper {
  @PrimaryKey
  @Persistent{val valueStrategy = IdGeneratorStrategy.IDENTITY}
  var id = KeyFactory.createKey(UserCriteria, System.nanoTime)

  @Persistent
  var twitterUser = tu

  @Persistent
  var internalCriteria: java.util.List[Criteria] = flatten(crit)

  def flatten(crits: Map[String, String]) : java.util.List[Criteria] =
 {
val list = new java.util.ArrayList[Criteria]
for (key - crits.keySet) {
  list.add(new Criteria(this, key, crits(key)))
}
list
  }

  def criteria: Map[String, String] = {
val crits = mutable.Map.empty[String, String]

for (i - 0 to internalCriteria.size-1) {
  crits(internalCriteria.get(i).name) =
 internalCriteria.get(i).value
}

Map.empty ++ crits
  }

  // Stripped the equals, canEquals, hashCode, toString code to keep
 the code snippet short...
 }

 @PersistenceCapable
 @EmbeddedOnly
 class Criteria(uc: UserCriteria, nm: String, vl: String) {

  @Persistent
  var userCriteria = uc

  @Persistent
  var name = nm

  @Persistent
  var value = vl

  override def toString = {
Criteria name:  + name +  value:  + value
  }
 }

 Any ideas why the childs are not stored? Or why I get the error
 message?

 Regards,
 Gero

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: problem with Unowned relationship beetwen a Root entity and a Entity of an EntityGroup

2010-02-24 Thread Ikai L (Google)
Can you post code and a stack trace? If you have a JUnit test case that'd be
helpful as well.

On Wed, Feb 24, 2010 at 2:30 PM, nicolas melendez nfmelen...@gmail.comwrote:

 Nobody helps :(
 NM

 El feb 23, 2010 11:08 a.m., nicolas melendez nfmelen...@gmail.com
 escribió:


 Hi, i have an Unowned  relationship beetwen a *Root entity* and a Entity
 of an EntityGroup.
 *Root entity *isn't part of the* *entity group.

 So, to the Entity of an EntityGroup i set the key of my *Root Entity* and
 I persist.
 Then when a do the getKey of the *Root Entity* to the  Entity of the
 EntityGroup, y get a null, and then when i use it a Null pointer
 exception.
 Anybody, knows why?
 I am missing something?
 Thanks
 NM

  --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Citical Security error in Accounts Java API: request.getUserPrincipal() gets wrong username/email

2010-02-24 Thread Ikai L (Google)
Probably OAuth, though I'm not sure how that will work with a gadget. In
most places gadgets will include a user ID with the makeRequest.

On Tue, Feb 23, 2010 at 12:23 PM, Thomas Schnocklake 
thomas.schnockl...@googlemail.com wrote:

 Thank you for your answer.

 So what would you suppose to use for authentication for a gadget that is
 places in google apps (e.g. gmail, google sites ) ?

 thanks

 thomas

 2010/2/18 Ikai L (Google) ika...@google.com

 Yes, this seems to make sense. Being logged into Google Apps is
 independent of being logged into an App Engine application. They don't use
 the same cookie. App Engine's User service allows you to use Google logins,
 but not the Google Apps session.

 On Tue, Feb 16, 2010 at 3:29 AM, tsschnoc 
 thomas.schnockl...@googlemail.com wrote:

 Hello,

 I use App Engine in my Google Apps domain and restricted the
 authentification of app
 engine to my apps domain. (see
 http://code.google.com/appengine/articles/auth.html
 )
 I developed a widget and use this in multiple accounts of my google
 apps domain.
 When i switch from one account (of my apps domain) to the other, the
 former account is displayed in the widget (Java:
 request.getUserPrincipal().getName() ).

 So the gadget placed on my Google Apps Inbox displays data of a user
 different to the user logged in to google apps.

 I noticed that the problems goes away when i wait some minutes
 ( session expiration ?? ).

 see picture:

 http://picasaweb.google.com/lh/photo/QDcR2Lgk2xI2-UQ77BoGXw?feat=directlink

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 http://googleappengine.blogspot.com | http://twitter.com/app_engine

 --
 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.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 group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: problem with Unowned relationship beetwen a Root entity and a Entity of an EntityGroup

2010-02-24 Thread nicolas melendez
Ok i will do one. Thanks. Nm

El feb 24, 2010 10:32 p.m., Ikai L (Google) ika...@google.com escribió:

Can you post code and a stack trace? If you have a JUnit test case that'd be
helpful as well.

On Wed, Feb 24, 2010 at 2:30 PM, nicolas melendez nfmelen...@gmail.com
wrote:

 
  Nobody helps :(
  NM
 
  El feb 23, 2010 11:08 a.m., nicolas melendez nfmelen...@gmail.com
 ...

 --
 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.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

-- 
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.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 group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.