[appengine-java] Re: raise limits for applications

2011-03-24 Thread Perun Katana
Hello,

Nice :)

The google storage seems to be the most viable option for my needs to
put aside the bigger content files (e.g. the third-party libraries)
and reference them from the jnlp file. Unfortunatelly it is available
only for U.S developers yet (which I am not). Anyway I've joined the
waiting list. Blobstore could work, but then I have to write a custom
jnlp-download servlet (what could be an interresting option too, I
will have a new toy for few days).

Thank you for your tip, it could solve the problem in future.

btw: so far I found a temporary way around - to place the big libs
into another could (Amazon S3) and reference them from my app, still
in testing, but this way has a limitation - to make the libraries
freely available on internet.

But thank you for your quick response and good tips :)

Regards
   Perun

On 24 mar, 01:32, Ikai Lan (Google) ika...@google.com wrote:
 You should explore:

 - Blobstore:http://code.google.com/appengine/docs/java/blobstore/overview.html
 - Google storage:http://code.google.com/apis/storage/

 There are other options for application distribution.

 Ikai Lan
 Developer Programs Engineer, Google App Engine
 Blog:http://googleappengine.blogspot.com
 Twitter:http://twitter.com/app_engine
 Reddit:http://www.reddit.com/r/appengine



 On Tue, Mar 22, 2011 at 7:17 AM, Perun Katana gabec@yahoo.com wrote:
  Hi all,

  I was thinking if there could be a way to raise the limits for
  applications. My contecern is, that I have a JNLP application with a nice
  bunch of libraries included (e.g. jasper reports, etc), which takes the
  application nicely over 10 MB. The application is built as a Netbeans RPC
  application, so there is a jnlp-servlet for downloading all necessary files.
  Unfortunatelly, such applications are rarely under 10 MB.

  The jnlp-servlet itself does not consume much memory (as far I know), so
  this is not a problem, To download all libraries may take a little
  processing time, traffic and request time (well, even for slow trafic I hope
  each library is downloaded in 30s), but that's why there is billing quota
  for I am willing to pay. I'd see the google apps as a nice platform to
  deploy web start applications too, but for bigger application there would be
  nice to raise request handler quotas too, even if it would be a payed
  service. I don't think a need a separate VPS instance running 24x7 just to
  download a jnlp application.

  The question is, if there is another solution or I'll have to work on
  getting the static libraries deployed somewhere else (not a bad ide too).

  Regards
           Perun

  --
  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-java@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.- Masquer le 
 texte des messages précédents -

 - Afficher le texte des messages précédents -

-- 
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-java@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: is it possible that repeated task executions happen in parallel ?

2011-03-24 Thread Colin Hawkett
I asked this question a while back and didn't really get a definitive 
response. 

https://groups.google.com/d/topic/google-appengine/YRAK6lHV1XQ/discussion 
(that's the link groups is giving me, but I'm having trouble with it - title 
of the thread is 'Idempotence  multiple task execution' if you want to 
search for it).

Ikai's response sounded definitive - '*The same task should not be executed 
multiple times concurrently*'. But the subsequent discussion seemed to cast 
doubt on that statement and it was never cleared up. I have never seen it 
happen.

The answer to this question makes a difference in how the idempotent 
contract is implemented - especially whether transactional semantics are 
required or not. That might sound trivial, but implementing a transaction 
has significant performance implications, and is not something you would do 
if you don't need to.

I disagree that 'make it idempotent' is a sufficient answer to this 
question. It is reasonable to want to understand the constraints of the task 
queue and make implementation decisions on that basis. Cheers,

Colin

*
*
*
*

-- 
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-java@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] NoResultException causes rollback transaction why?

2011-03-24 Thread lp
guys

in my JPA code a NoResultException causes the transaction to be rollback.

i am using the spring txn manger but all JPA methods are @Transactional( 
propagation=Propagation.NOT_SUPPORTED).


any help pls.


@Transactional( propagation=Propagation.NOT_SUPPORTED)
public void txnMethod( CollectionLong list) throws 
ApplicationExecption{

for (IteratorLong iterator = list.iterator(); iterator.hasNext();) 
{
Long fbId = iterator.next();
PositionUser user = null;
final Query query = 
em.createNamedQuery(PositionUser.FIND_BY_FB_ID);
query.setParameter(facebookId, fbId);
try {
user = (PositionUser) query.getSingleResult();
}
   catch (NoResultException e) {
log.info( error occured: + e.toString() );
}catch (NonUniqueResultException e) {
throw new ApplicationExecption(e);
}

if(user!= null) {
ListKey friends = user.getFriends();
PositionUser findUser = em.find(PositionUser.class, 
friends.get(0));
findUser.getFriends().remove(user.getKey());

em.merge(findUser);
}
em.remove(user);
}
}


-lp

-- 
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-java@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 gwt - to serve compressed java script

2011-03-24 Thread pac
It looks that app engine is not serving compressed contents.
Is there something I need to configure? though it says that it does
that automatically

http://code.google.com/appengine/kb/general.html#compression

I have application written in gwt and java scripts are served
uncompressed from app engine as per Page Speed plugin of Chrome and
FireFox. It suggests to enable compression.

From Page Speed:

Compressing ./4.cache.js could save 336.2KiB (77% reduction).



From Live HTTP Headers plugin of Firefox:


./4.cache.js

GET ./4.cache.js HTTP/1.1
Host: Website name
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:
1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/
*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Proxy-Connection: keep-alive
Referer: Website name
If-None-Match: X3ERbg
Cache-Control: max-age=0

HTTP/1.1 200 OK
Via: 1.1 SRV-IE-GATEWAY
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Transfer-Encoding: chunked
Age: 598
Expires: Thu, 22 Mar 2012 11:44:33 GMT
Date: Wed, 23 Mar 2011 11:44:33 GMT
Content-Type: application/x-javascript
Etag: X3ERbg
Server: Google Frontend
Cache-Control: public, max-age=31536000


May be I am wrong, but I am guessing that if app engine is serving
compressed contents then in its response it will say something like

Content-Encoding: gzip



May be I am missing something, any suggestions to fix it?

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-java@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 gwt - to serve compressed java script

2011-03-24 Thread Didier Durand
Hi,

It's depending on certain values in the header of the request: see
http://code.google.com/appengine/docs/java/runtime.html#Responses

regards

didier

On Mar 24, 11:46 am, pac parvez.chau...@gmail.com wrote:
 It looks that app engine is not serving compressed contents.
 Is there something I need to configure? though it says that it does
 that automatically

 http://code.google.com/appengine/kb/general.html#compression

 I have application written in gwt and java scripts are served
 uncompressed from app engine as per Page Speed plugin of Chrome and
 FireFox. It suggests to enable compression.

 From Page Speed:

 Compressing ./4.cache.js could save 336.2KiB (77% reduction).

 From Live HTTP Headers plugin of Firefox:

 ./4.cache.js

 GET ./4.cache.js HTTP/1.1
 Host: Website name
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:
 1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729)
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/
 *;q=0.8
 Accept-Language: en-gb,en;q=0.5
 Accept-Encoding: gzip,deflate
 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
 Keep-Alive: 115
 Proxy-Connection: keep-alive
 Referer: Website name
 If-None-Match: X3ERbg
 Cache-Control: max-age=0

 HTTP/1.1 200 OK
 Via: 1.1 SRV-IE-GATEWAY
 Connection: Keep-Alive
 Proxy-Connection: Keep-Alive
 Transfer-Encoding: chunked
 Age: 598
 Expires: Thu, 22 Mar 2012 11:44:33 GMT
 Date: Wed, 23 Mar 2011 11:44:33 GMT
 Content-Type: application/x-javascript
 Etag: X3ERbg
 Server: Google Frontend
 Cache-Control: public, max-age=31536000

 May be I am wrong, but I am guessing that if app engine is serving
 compressed contents then in its response it will say something like

 Content-Encoding: gzip

 May be I am missing something, any suggestions to fix it?

 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-java@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 gwt - to serve compressed java script

2011-03-24 Thread pac
Hi Didier,

Yes, I have looked into this.
It says if request has gzip then app engine will supply compressed
contents.

So in this case request does have gzip i.e.

Accept-Encoding: gzip,deflate


But it looks that it still does not send compressed data.

I am not sure what can I do to fix it.

Thanks.

On Mar 24, 11:56 am, Didier Durand durand.did...@gmail.com wrote:
 Hi,

 It's depending on certain values in the header of the request: 
 seehttp://code.google.com/appengine/docs/java/runtime.html#Responses

 regards

 didier

 On Mar 24, 11:46 am, pac parvez.chau...@gmail.com wrote:

  It looks that app engine is not serving compressed contents.
  Is there something I need to configure? though it says that it does
  that automatically

 http://code.google.com/appengine/kb/general.html#compression

  I have application written in gwt and java scripts are served
  uncompressed from app engine as per Page Speed plugin of Chrome and
  FireFox. It suggests to enable compression.

  From Page Speed:

  Compressing ./4.cache.js could save 336.2KiB (77% reduction).

  From Live HTTP Headers plugin of Firefox:

  ./4.cache.js

  GET ./4.cache.js HTTP/1.1
  Host: Website name
  User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:
  1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729)
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/
  *;q=0.8
  Accept-Language: en-gb,en;q=0.5
  Accept-Encoding: gzip,deflate
  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  Keep-Alive: 115
  Proxy-Connection: keep-alive
  Referer: Website name
  If-None-Match: X3ERbg
  Cache-Control: max-age=0

  HTTP/1.1 200 OK
  Via: 1.1 SRV-IE-GATEWAY
  Connection: Keep-Alive
  Proxy-Connection: Keep-Alive
  Transfer-Encoding: chunked
  Age: 598
  Expires: Thu, 22 Mar 2012 11:44:33 GMT
  Date: Wed, 23 Mar 2011 11:44:33 GMT
  Content-Type: application/x-javascript
  Etag: X3ERbg
  Server: Google Frontend
  Cache-Control: public, max-age=31536000

  May be I am wrong, but I am guessing that if app engine is serving
  compressed contents then in its response it will say something like

  Content-Encoding: gzip

  May be I am missing something, any suggestions to fix it?

  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-java@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: raise limits for applications

2011-03-24 Thread Yegor
Hi, Ikai,

Interactions between GAE apps and Blobstore are billed for storage +
CPU. Google Storage is billed for storage + network + request count.

How do the two compare in a real-world scenario from price/performance
standpoint? It seems that Blobstore, being a core part of GAE, is
regarded as local to your application, while Google Storage will be
external and is therefore no different from Amazon S3 or Rackspace
CloudFiles.

There are also these URL Fetch 1mb-out/32mb-in limits, which seem to
apply to everything. It's like we have a Titan 4 class rocket but
we're only allowed to use a car engine to fly it.

Cheers,

Yegor

On Mar 23, 6:32 pm, Ikai Lan (Google) ika...@google.com wrote:
 You should explore:

 - Blobstore:http://code.google.com/appengine/docs/java/blobstore/overview.html
 - Google storage:http://code.google.com/apis/storage/

 There are other options for application distribution.

 Ikai Lan
 Developer Programs Engineer, Google App Engine
 Blog:http://googleappengine.blogspot.com
 Twitter:http://twitter.com/app_engine
 Reddit:http://www.reddit.com/r/appengine







 On Tue, Mar 22, 2011 at 7:17 AM, Perun Katana gabec@yahoo.com wrote:
  Hi all,

  I was thinking if there could be a way to raise the limits for
  applications. My contecern is, that I have a JNLP application with a nice
  bunch of libraries included (e.g. jasper reports, etc), which takes the
  application nicely over 10 MB. The application is built as a Netbeans RPC
  application, so there is a jnlp-servlet for downloading all necessary files.
  Unfortunatelly, such applications are rarely under 10 MB.

  The jnlp-servlet itself does not consume much memory (as far I know), so
  this is not a problem, To download all libraries may take a little
  processing time, traffic and request time (well, even for slow trafic I hope
  each library is downloaded in 30s), but that's why there is billing quota
  for I am willing to pay. I'd see the google apps as a nice platform to
  deploy web start applications too, but for bigger application there would be
  nice to raise request handler quotas too, even if it would be a payed
  service. I don't think a need a separate VPS instance running 24x7 just to
  download a jnlp application.

  The question is, if there is another solution or I'll have to work on
  getting the static libraries deployed somewhere else (not a bad ide too).

  Regards
           Perun

  --
  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-java@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-java@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] any where i can hire people to do development on app engine in singapore?

2011-03-24 Thread Elvin Li
looking for competent 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-java@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] Prepared Query reuse ?

2011-03-24 Thread mandubian
Hello,
I'm developing the new version of Siena API (v1.0.0) and I'm
integrating lots of new features coming from GAE.
I have a stupid question: is a PreparedQuery reusable several times as
its name could let it believe?
Can I prepare a query and keep it and reuse it?
Is it threadsafe?

Thanks
Pascal Voitot

-- 
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-java@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: raise limits for applications

2011-03-24 Thread Perun Katana
Hello Yegor,

for my case the requests for large data are done from the client side,
the application only refers them. In that point an external storage,
objects with fixed URI are more feasible than passing data from
blobstorage consuming CPU cycles, blobstorage api calls. Thank you for
clearing it up.

btw: the google storage is provided in U.S. datacenters only, what
limits other developers to use the storage. But until it's an
external storage it's doesn't matter who provides the space.

Carpe diem
 Perun

On 24. Mar., 15:51 h., Yegor yegor.jba...@gmail.com wrote:
 Hi, Ikai,

 Interactions between GAE apps and Blobstore are billed for storage +
 CPU. Google Storage is billed for storage + network + request count.

 How do the two compare in a real-world scenario from price/performance
 standpoint? It seems that Blobstore, being a core part of GAE, is
 regarded as local to your application, while Google Storage will be
 external and is therefore no different from Amazon S3 or Rackspace
 CloudFiles.

 There are also these URL Fetch 1mb-out/32mb-in limits, which seem to
 apply to everything. It's like we have a Titan 4 class rocket but
 we're only allowed to use a car engine to fly it.

 Cheers,

 Yegor

-- 
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-java@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] Get User instance by email

2011-03-24 Thread Ikai Lan (Google)
If you have a property type User, I am pretty sure the property value is
just the email address.

It's actually better to store the userId you get via user.getUserId() since
this is unique and does not change:

http://code.google.com/appengine/docs/java/javadoc/

The email address is used because at the time we released the API, that's
all we had, and now we can't make the change since we would break backwards
compatibility.

Ikai Lan
Developer Programs Engineer, Google App Engine
Blog: http://googleappengine.blogspot.com
Twitter: http://twitter.com/app_engine
Reddit: http://www.reddit.com/r/appengine



On Mon, Mar 21, 2011 at 12:29 PM, Ido Ran ido@gmail.com wrote:

 Hi, I'm new to GAE so please be kind.
 I have an entity with persisted field of type User.
 I would like to have a registration page in which authenticated user can
 register, on that page I can get the User instance without problem from
 UserService.

 I also like to have an admin page from which I can manually register other
 users, the current user on those pages will be the admin:

 Is it possible to get a User instance based on email address?

 Thank you,
 Ido

 --
 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-java@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-java@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: NoResultException causes rollback transaction why?

2011-03-24 Thread lp
that previous example code was too complex... phew it was a late night

this a simpler example of the a method that does a rollback when a 
NoResultException is thrown.

even if the exception is handled it doesnt matter the txn is rollback and no 
commits are done.

if the NoResultException is NOT thrown the method commits correctly.

is this voodoo or something?


@Transactional( propagation=Propagation.NOT_SUPPORTED)
public void txnMethod( CollectionLong list) throws 
ApplicationExecption{

for (IteratorLong iterator = list.iterator(); iterator.hasNext();) 
{
Long fbId = iterator.next();
PositionUser user = null;
final Query query = 
em.createNamedQuery(PositionUser.FIND_BY_FB_ID);
query.setParameter(facebookId, fbId);
try {
user = (PositionUser) query.getSingleResult();
}
   catch (NoResultException e) {
log.info( error occured: + e.toString() );
}catch (NonUniqueResultException e) {
throw new ApplicationExecption(e);
}

if(user!= null) {
user.setAccuracy(5000);
em.merge(user);
}
}

}

-- 
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-java@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.