Tuesday, January 31, 2012

Re: Performance for a big application

The 5Qps limit is for connecting to the instance from an external connection, e.g. if you connect to the MySQL instance using a MySQL admin software. The idea here is that you can manage your data using a external connection This feature is not really intended to allow you run the application on an external server and just use GoogleSQL as data store.

When you connect from Appengine to the mysql instance, technically there's no limit QPS-wise, but I did see a limit of 100 concurrent connections. If you close the connections fast enough, or use a connection pool, you should have no problem handling that small load of 200qps.


Performance for a big application

Hi

Our company are looking to app engine and cloud SQL for the future

For now we have 3 car industry applications with about 150/200 QPS.

It is possible to move the applications to Google Cloud SQL or is it limited to 5QPS like I heard one of this days in my work??

Congratulations for the service =)

Ps-> another question, the 10GB limit will desapear in the future, right? Thanks agian =)

Re: Postgres

Hi Markus

glad you're getting good use out of it!
There's no plans at the moment to make Postgres available through Cloud SQL: was there a particular bit of functionality that you'd like to see that postgres currently supports, or was it just a general preference?

j

Re: Terrible performance when deployed to GAE

Joe,

  Oddly enough, this seems to have resolved itself today! 

I think there was a problem on the App Engine side of things.  I noticed that others were complaining of slow startups (in general) over the past few days.

I was focusing so much on the page using the full text query that I failed to notice that most every request was slow.

I am using MyISAM full text indexing, correct.  I also ensured that all my indexes has been properly created, and they had. 

Thanks again,
  Derrick

Monday, January 30, 2012

Postgres

Hello and thanks for the Google Cloud Service! This service is the
reason why I use the GAE ;)

But it is possible to integrate Postgres as Cloud SQL Database with
MySQL or are there no plans for other Database-Systems?

Regards,

Markus

Re: Desarrollo

Appengine no soporta php, solo: Python, Java, y Go (experimental):

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

Si vas a re-escribir la aplicación de todas formas quizas valga la pena probar en Go. Te dejo un articulo que escribí hace poco sobre Go/Appengine, quizás te sirva:




Re: Desarrollo

Muchas gracias por tu tiempo Reinaldo...tengo una duda, ya mire lo que
me mandaste, pero entonces no podre implementar tal cual mi archivo de
conexion en formato .php
tengo que cargar toda una clase ya sea de java o phyton para lograr
una conexion?

Re: Desarrollo

Aqui esta todo lo que necesitas:

Desarrollo

Hola a todos estoy desarrollando en php, y empiezo a utilizar
appengine y cloud sql.

Resulta que cuando me conectaba a mysql de forma local no tenia ningun
problema, para esto yo contaba con un archivo .php para realizar la
conexion.

Ahora que tengo todo en appengine y google cloud sql necesito que
alguien me guie de como conectar mi aplicacion con la nube sql para
que funcione con la base de datos...

les agradesco mucho la ayuda!

Re: upgrade - broken stored proc

Please help me to resolve 

upgrade - broken stored proc

> show procedure status;

Cannot load from mysql.proc. The table is probably corrupted

Re: Not Able to connect Google cloud sql from local system

what do you mean by from a local system?


Re: Terrible performance when deployed to GAE

Hi Derrick

Could you supply the query and the instance; and I'm assuming you're using MyISAM full text indexing?

You also suggest that the problem only occurs via GAE, and that it was OK from the console. Is this correct?

J

Terrible performance when deployed to GAE

I'm using a full text search against a table with only 20k records.  On my home MySQL 5.x instance, it takes 12 to 20 ms.  In the cloud SQL console, roughly the same time.   

When I issue the query from GAE, the method call which wrapps the pooled connection takes 1.1 to 1.5 seconds, which eats My GAE cpu hours at an alarming rate. I'm 25% used with only ~80 requests for the day.    Once me site goes live, I'm looking at 4000 to 8000 requests per day.  

What steps do I need to take to get this looked into?  I can provide the query, as well as the isntance name.

Thanks!

Not Able to connect Google cloud sql from local system

Hi Dear
I tried to connect from Google cloud sql from local system with
bellow URL but i am getting the error
can anyone help me for the same.
connection string is

DriverManager.registerDriver(new AppEngineDriver());
con = DriverManager.getConnection("jdbc:google:rdbms://
xyz.com:teamgapputility:teammysql/gapp","userid","password");

error details:


he API package 'rdbms' or call 'OpenConnection()' was not found.
com.google.apphosting.api.ApiProxy$CallNotFoundException: The API
package 'rdbms' or call 'OpenConnection()' was not found.
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98)
at com.google.appengine.api.rdbms.RdbmsApiProxyClient
$ApiProxyBlockingInterface.makeSyncCall(RdbmsApiProxyClient.java:89)
at com.google.appengine.api.rdbms.RdbmsApiProxyClient
$ApiProxyBlockingInterface.openConnection(RdbmsApiProxyClient.java:75)
at
com.google.cloud.sql.jdbc.internal.SqlProtoClient.openConnection(SqlProtoClient.java:
58)
at com.google.cloud.sql.jdbc.Driver.connect(Driver.java:59)
at com.google.cloud.sql.jdbc.Driver.connect(Driver.java:26)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at
com.gapp.utility.util.connectionMGR.getConnection(connectionMGR.java:
14)
at com.gapp.utility.util.connectionMGR.main(connectionMGR.java:29)

Re: LOG_FATAL_DEATH

the issue is about truncating the files themselves, which may happen for different reasons.
I don't know if delete from would trigger that or not; you'll have to try.

jm.


Re: LOG_FATAL_DEATH

Drop database work fine.
It error only for truncate table? - Can I use DELETE FROM email for clear table?

Sunday, January 29, 2012

Re: LOG_FATAL_DEATH


You are unfortunately hitting an internal bug related to the truncation of myisam tables.
I can't think of a workaround to do these operation until we fix it.
In the meantime, you may be able to do a 'drop database' (though I suspect they'll use the same code path and crash as well).

jm.


Re: LOG_FATAL_DEATH

instance: gbsupportemails:rekby-test-0
database: gb_support2
steps: execute DELETE FROM email;
schema:
CREATE TABLE IF NOT EXISTS `email` (
  `id` char(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `time` datetime NOT NULL,
  `from` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `to` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `subject` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `text` text COLLATE utf8_unicode_ci,
  PRIMARY KEY (`id`),
  KEY `time` (`time`),
  FULLTEXT KEY `email_full_text` (`text`,`from`,`to`,`subject`,`comment`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Table have 76514 items.
Size of instance  662 MB.
Instance have only one database with one table.


Re: migrating to 5.5

https://developers.google.com/cloud-sql/docs/upgrade

jm.


Re: migrating to 5.5

hey jean-michel,
thanks' for reply.
i didn't do it. do you know where can i get a step-by-step description
of the migration?
thanx again

Re: LOG_FATAL_DEATH

Hi Timofey,

Thanks for reporting this.

Could you provide:

- The full name of your instance
- Exact steps, including a sample schema to reproduce this.

Thanks.

jm.

Re: migrating to 5.5

Have you created ' /bucketabc' in google storage and does you user account for Cloud SQL has access to it?

jm.


LOG_FATAL_DEATH

I try:
I use fulltext index for table email.

Now I try:
TRUNCATE email;
DELETE FROM email;

For both query I have:
LOG_FATAL_DEATH 

--
Blog: www.rekby.ru

migrating to 5.5

hi all,

i tried to migrate my 5.1 instance to 5.5 as asked by google.
i created a cloud storage api account and tried to export the existing
data in my mysql project by means of actions->export data commands in
the gui. unfortunately i get an error in the logs:

Failed to back up to gs://bucketabc/fileabc.gz: Does not exist

plz help.

Re: No api proxy found for service "rdbms"

Hi Shaun,

Sorry, but no. This is my first go at developing on App Engine, and since I'm not very familiar with Django, developing with django-nonrel was getting overly complex, so I decided to switch to webapp2 for now.

Cheers,
Leo


Leonardo Trabuco, Postdoctoral fellow (Russell group)
CellNetworks, University of Heidelberg, Germany
http://www.russelllab.org/people/leo/

Saturday, January 28, 2012

Re: No api proxy found for service "rdbms"

Leo,

I'm running into the exact same issue and am also on OS X 10.7.2 and MySQL 5.5.18. Did you find a solution?

Thanks,
Shaun

Tuesday, January 24, 2012

Support Kanji Characters

I confirmed CRUD operation is no problem even using Japanese Kanji
Characters on uploaded site by Cloud SQL with Java.
But on Development stage which use local MySQL Instance, it occures
bafflegab on all Japanese Kanji Characters, even CRUD operation is
also no broblem.
I want to know how to avoid bafflegab of Japanese Kanji Characters.
And also want to know current Cloud SQL support UTF-8 Kanji
Characters or not on Eclipse Development stage.

Monday, January 23, 2012

Re: Error while deployment in Google Cloud SQL

Hi.

You will need to compile your Java clases with JDK 1.6, not Java7 yet.

Thanks,

Rob


Error while deployment in Google Cloud SQL

I have been trying to use cloud SQL in the Google app, but with no
success.
I have enabled Google Cloud SQL in the project properties and
configured them.

Also I haven't disabled "local HRD support" and "Use datanucleus JDO/
JPA to access datastore"

This is the error I'm getting:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Error: Server Error

The server encountered an error and could not complete your request.
If the problem persists, please report your problem and mention this
error message and the query that caused it.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

This is the log from the server:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2012-01-23 23:20:27.466 /wooosbee.jsp 500 260ms 0kb Mozilla/5.0
(Windows NT 6.1; WOW64) AppleWebKit/534.35 (KHTML, like Gecko) Chrome/
13.0.763.0 Safari/534.35
117.214.19.247 - - [23/Jan/2012:23:20:27 -0800] "GET /wooosbee.jsp
HTTP/1.1" 500 0 - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/
534.35 (KHTML, like Gecko) Chrome/13.0.763.0 Safari/534.35"
"wooosbee.appspot.com" ms=261 cpu_ms=187 api_cpu_ms=0 cpm_usd=0.005225
instance=00c61b117ccf89f6820a1624a2d80af812e1
C 2012-01-23 23:20:27.464
Uncaught exception from servlet
java.lang.UnsupportedClassVersionError: wooosbee/WooosbeeServlet :
Unsupported major.minor version 51.0
at com.google.appengine.runtime.Request.process-
abdb151eb4bc6421(Request.java)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
43)
at java.lang.reflect.Method.invoke(Method.java:616)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.mortbay.util.Loader.loadClass(Loader.java:91)
at org.mortbay.util.Loader.loadClass(Loader.java:71)
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:
242)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:
685)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
1250)
at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:
467)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
50)
at com.google.tracing.TraceContext
$TraceContextRunnable.runInContext(TraceContext.java:449)
at com.google.tracing.TraceContext$TraceContextRunnable
$1.run(TraceContext.java:455)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:
695)
at com.google.tracing.TraceContext
$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:
333)
at com.google.tracing.TraceContext
$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:
325)
at com.google.tracing.TraceContext
$TraceContextRunnable.run(TraceContext.java:453)
at java.lang.Thread.run(Thread.java:679)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Thursday, January 19, 2012

Change of plans for tomorrow

I just sent this as a text message but just in case some of you don't get it:

I'm afraid I can't go to our session tomorrow morning, because I completely forgot that I'm going out of town with Iris and a colleague of hers, to help them with a project they're working on, and I don't even know when we'll get back. I'm very sorry :(

The room is booked, though, so you should still go if you can. Check with each other to see who's going and maybe you can work in pairs and practise the little dance we learned today :)
Or review the Qin Na techniques, or Shang Xia Zhi, or Lian Bu Quan, or the takedowns, or fighting forms, or.... you get the idea... :)

Again, I'm sorry about the mix up. I have to try harder to remember these things.

Cheers,
Raúl

Re: Access with "multiaccount function" on problem

Hi,

Thanks for reporting this.
It seems to be a bug with the black bar, where only the primary (default) account works.

As a work around, you can sign out from both accounts and sign in first with the account that needs to access Cloud SQL.

Thanks,

jm.

Re: Issues making JDO work with MySQL

Hi,

The Socket class is a restricted class in appengine, thats why you are getting this error.
The classes that are allowed in appengine are listed in this white list:
http://code.google.com/appengine/docs/java/jrewhitelist.html

How are you making connection to the cloud sql database?


---Abhishek

Wednesday, January 18, 2012

Re: System property rdbms.driver must be set

Thanks. I'm not sure.  Somehow the system property isn't set when it reaches code.  Does this work from the commandline?  I know in Eclipse there's a spot for system properties and one for app properties, is it possible NB is putting these as application command line arguments, and not in the right spot for the JVM to interpret them as system properties?

Rob


Re: Dev environment returning String for generated key Object type

Sorry, but I don't understand the issue and am not familiar with Spring jdbcTemplate.

What jdbc method is returning what unexpected value?  What should it return?

Thanks,

Rob


Re: System property rdbms.driver must be set

You have to copy the mysql driver (in your case: mysql-connector-java-5.1.18- bin) into the Google AppEngine lib folder such as:  appengine-java-sdk-1.5.5\lib\impl
and then add the driver jar to your eclipse project as external jar.
I think this is the only problem you have.  Otherwise,
then make sure all DB connection data such as database instance, user/password etc all correct.

Google is great!

Xiping


Re: Dev environment returning String for generated key Object type

I have the same problems by using the ORMLite with the App Engine version 1.5.5.
I'm not search more for the problem, but I'm interested for the solution.

Patrice

Tuesday, January 17, 2012

Re: System property rdbms.driver must be set

appengine-java-sdk-1.6.1.1
Windows 7
Netbeans 7.0.1

We have been running an app for about 6 months now and wish to add SQL for stats, etc,..
Netbeans is used to launch and debug.  Not sure the exact command line.

Tom

Re: System property rdbms.driver must be set

Ok, let's dig deeper.

What version of the AppEngine SDK are you using?
Are you doing this through Eclipse or from the command line?
What OS are you on?
What is the full commandline you are using to launch the devapp server.


Thanks,
Rob

Re: System property rdbms.driver must be set

You also need to add the flag "-Drdbms.server=local"


Rob

System property rdbms.driver must be set

I'm trying to run Cloud SQL on the local dev server and I get this
exception.

I've set these system properties from the command line and verified
that they are set before I try and get a connection:

-Drdbms.server=local -Drdbms.driver=com.mysql.jdbc.Driver -
Drdbms.url=jdbc:mysql://localhost:3306/admindb?user=xxx;password=yyy

I've also downloaded the mysql-connector-java-5.1.18-bin jar and added
it to my application and classpath.

Also, I'm not using Eclipse.

Can anyone tell me how to get rid of this exception?

Thanks,

Tom

[java] java.lang.IllegalStateException: System property rdbms.driver
must be set.
[java] at
com.google.appengine.api.rdbms.dev.LocalRdbmsServiceLocalDriver.registerDriver(LocalRdbmsServiceLocalDriver.java:
80)
[java] at
com.google.appengine.api.rdbms.dev.LocalRdbmsServiceLocalDriver.init(LocalRdbmsServiceLocalDriver.java:
73)
[java] at
com.google.appengine.api.rdbms.dev.LocalRdbmsService.init(LocalRdbmsService.java:
85)
[java] at
com.google.appengine.tools.development.ApiProxyLocalImpl.startServices(ApiProxyLocalImpl.java:
581)
[java] at
com.google.appengine.tools.development.ApiProxyLocalImpl.access
$700(ApiProxyLocalImpl.java:46)
[java] at
com.google.appengine.tools.development.ApiProxyLocalImpl
$2.run(ApiProxyLocalImpl.java:564)
[java] at
com.google.appengine.tools.development.ApiProxyLocalImpl
$2.run(ApiProxyLocalImpl.java:562)
[java] at java.security.AccessController.doPrivileged(Native
Method)
[java] at
com.google.appengine.tools.development.ApiProxyLocalImpl.getService(ApiProxyLocalImpl.java:
561)
[java] at
com.google.appengine.tools.development.ApiProxyLocalImpl.resolveDeadline(ApiProxyLocalImpl.java:
233)
[java] at
com.google.appengine.tools.development.ApiProxyLocalImpl.doAsyncCall(ApiProxyLocalImpl.java:
214)
[java] at
com.google.appengine.tools.development.ApiProxyLocalImpl.makeSyncCall(ApiProxyLocalImpl.java:
147)
[java] at
com.googlecode.objectify.cache.ListenableHook.makeSyncCall(ListenableHook.java:
116)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at
com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
104)
[java] at com.googlecode.objectify.cache.ListenableHook
$1.invoke(ListenableHook.java:172)
[java] at $Proxy38.makeSyncCall(Unknown Source)
[java] at
com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:101)
[java] at com.google.appengine.api.rdbms.RdbmsApiProxyClient
$ApiProxyBlockingInterface.makeSyncCall(RdbmsApiProxyClient.java:89)
[java] at com.google.appengine.api.rdbms.RdbmsApiProxyClient
$ApiProxyBlockingInterface.openConnection(RdbmsApiProxyClient.java:75)
[java] at
com.google.cloud.sql.jdbc.internal.SqlProtoClient.openConnection(SqlProtoClient.java:
58)
[java] at com.google.cloud.sql.jdbc.Driver.connect(Driver.java:
59)
[java] at com.google.cloud.sql.jdbc.Driver.connect(Driver.java:
26)
[java] at
java.sql.DriverManager.getConnection(DriverManager.java:582)
[java] at
java.sql.DriverManager.getConnection(DriverManager.java:207)
[java] at com.kintris.kiim.entity.IS
$Stat.getDBConnection(IS.java:550)
[java] at com.kintris.kiim.entity.IS$Stat.getDbItemCount(IS.java:
841)
[java] at
com.kintris.kiim.rest.resources.StatsResource.getStats(StatsResource.java:
55)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at
com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
104)
[java] at com.sun.jersey.spi.container.JavaMethodInvokerFactory
$1.invoke(JavaMethodInvokerFactory.java:60)
[java] at
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider
$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:
185)
[java] at
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:
75)
[java] at
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:
288)
[java] at
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:
108)
[java] at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:
147)
[java] at
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:
84)
[java] at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:
1469)
[java] at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:
1400)
[java] at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:
1349)
[java] at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:
1339)
[java] at
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:
416)
[java] at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:
537)
[java] at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:
699)
[java] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[java] at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
[java] at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1166)
[java] at
com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:
35)
[java] at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
[java] at
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
60)
[java] at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
[java] at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
43)
[java] at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
[java] at
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
122)
[java] at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
[java] at
com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:
97)
[java] at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
[java] at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
388)
[java] at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
[java] at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
182)
[java] at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
765)
[java] at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
[java] at
com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
78)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
[java] at
com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:362)
[java] at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
[java] at org.mortbay.jetty.Server.handle(Server.java:326)
[java] at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
542)
[java] at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:923)
[java] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:
547)
[java] at
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
[java] at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
[java] at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
409)
[java] at org.mortbay.thread.QueuedThreadPool
$PoolThread.run(QueuedThreadPool.java:582)

Dev environment returning String for generated key Object type

I have a bit of strange issue when using Spring JdbcTemplate with the development environment. When using the mysql driver directly, the auto-generated key returned on an insert passes this test (from GeneratedKeyHolder:73):

Object key = keyIter.next();

if (!(key instanceof Number)) {
    throw new DataRetrievalFailureException(
    "The generated key is not of a supported numeric type. " +
    "Unable to cast [" + (key != null ? key.getClass().getName() : null) +
    "] to [" + Number.class.getName() + "]");
}

but, when using the AppEngineDriver (1.6.1) it is returned as a string, so this check fails. I tried setting useInformationSchema=true in the rdms.url, but it seems to have no affect. The google version of ResultSetMetaData is responsible for setting the type, so I am curious why this functions differently then the standard mysql implementation, and how I can fix it without having to override Spring's GeneratedKeyHolder?

I have not tried this in production.

Regards,
Mark

Access with "multiaccount function" on problem

Hi,

I have activated the multiaccount function in my Google account, i am
logged with my personal account and with my company's google apps
account, but i can't access to Google Cloud SQL menu in the Google
APIs Console. When i try to acces, I receive the message "An
unexpected error has occurred. We're looking into it.".

If I turn off the multiaccount function then i can access. I think
that it is a bug in Google APIs Console.ole.

Re: Google Cloud SQL Service equested

Hi Daniel

I believe an invite went out to you this morning.

Spaces on the preview program are currently limited, with a wait time of about 2 weeks.
We are currently prioritizing providing instances for existing GAE projects

J

Re: How to change the project ID of cloud SQL?

no, this is not supported.

jm.


How to change the project ID of cloud SQL?

Hello,

I would like to change my cloud SQL' project ID,
cause my current ID was same with instance'

Could I reset the project ID?

Issues making JDO work with MySQL

Hi,

I am trying to migrate a very simple JDO application on appengine
using google sql. I am having issues making Google SQL work with JDO.
When I tried with datanucleus-rdbms-1.1.5.jar & datanucleus-
rdbms-3.0.5.jar, but I get the error message:

Jan 17, 2012 2:35:20 PM org.datanucleus.store.rdbms.RDBMSManager
<init>
SEVERE: Failed initialising database.
java.lang.NoClassDefFoundError: java.net.Socket is a restricted class.
Please see the Google App Engine developer's guide for more details.
org.datanucleus.exceptions.NucleusDataStoreException:
java.lang.NoClassDefFoundError: java.net.Socket is a restricted class.
Please see the Google App Engine developer's guide for more details.
at org.datanucleus.store.rdbms.ConnectionFactoryImpl
$ManagedConnectionImpl.getConnection(ConnectionFactoryImpl.java:554)
at org.datanucleus.store.rdbms.RDBMSManager.<init>(RDBMSManager.java:
297)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:
27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:
116)
at
com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:
124)
at
org.datanucleus.plugin.NonManagedPluginRegistry.createExecutableExtension(NonManagedPluginRegistry.java:
572)
at
org.datanucleus.plugin.PluginManager.createExecutableExtension(PluginManager.java:
300)
at
org.datanucleus.store.FederationManager.initialiseStoreManager(FederationManager.java:
168)
at
org.datanucleus.store.FederationManager.<init>(FederationManager.java:
70)
at
org.datanucleus.ObjectManagerFactoryImpl.initialiseStoreManager(ObjectManagerFactoryImpl.java:
153)
at
org.datanucleus.jdo.JDOPersistenceManagerFactory.freezeConfiguration(JDOPersistenceManagerFactory.java:
526)
at
org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory.getPersistenceManagerFactory(DatastoreJDOPersistenceManagerFactory.java:
127)
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.development.agent.runtime.Runtime.invoke(Runtime.java:
104)
at javax.jdo.JDOHelper$16.run(JDOHelper.java:1956)
at java.security.AccessController.doPrivileged(Native Method)
at javax.jdo.JDOHelper.invoke(JDOHelper.java:1951)
at
javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:
1159)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
803)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
1086)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
914)
at dao1.PMF.getPersistenceManagerFactory(PMF.java:35)
at dao1.BaseDAO.saveOrUpdate(BaseDAO.java:38)

or Bundle "org.datanucleus.store.rdbms" requires "org.datanucleus"
version "3.0.5" but the resolved bundle has version "3.0.5" which is
outside the expected range while using rdbms3.0.5.jar.

Wonder if someone in google can write clear instruction on how to make
JDO work with Google SQL.

Thanks,
Shweta

Monday, January 16, 2012

Re: No Response

It's a trial program, by invite only. There's no "expected" response time.

They allocate the invites depending on: a) the characteristics of your application (it has to bee interesting  in terms of number of records and qps, for them to be able to test the system and collect metrics), and b) resources available, e.g. since it is on a trial period they may have limited number of resources available for the trial, thus they will send more invites as more resources become available.



No Response

I have signed up twice for Google Cloud SQL and I have not received
any response.

What is going on and what is the expected response time?

Thanks

Narayanan

Google Cloud SQL Service equested

Hi everyone,
I've requested a new instance for my web application, the features of my instance were:
- 5 GB Size.
- Up to 2KB record size.
 
I've requested two weeks ago, but now I don't have response about it.
 
Could you tell me what is the time that Google takes to reserve and serve me this instance?
 
Thank you in advance?

Sunday, January 15, 2012

Re: Accessing with JPA

I'm only using the rdbms on a limited basis, for an index that supports filtering and therefore needs joins, but most of my app still uses the datastore.  So I decided to just use plain jdbc.  Spring's JdbcTemplate and RowMapper facilities make it a lot easier than it used to be, and you can still use annotations for transaction demarcation.  

Actually my main requirement was a connection pool and you can use Commons DBCP easily for that.  Lastly, I intend to partition my data so it can scale linearly to N rdbms instances, so I've setup 2 datasources to start off for my dao to use (there is of course no JTA-type cross-datasource transactions but I don't need that).  Here's the config:


    <bean id="dsSearchIndex1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.google.appengine.api.rdbms.AppEngineDriver"/>
        <property name="url" value="jdbc:google:rdbms://xxxx.com:web-prod:searchindex-1/ctssearchidx?allowMultiQueries=true"/>
        <property name="username" value="xxxx"/>
        <property name="password" value="xxxx"/>
    </bean>
    <bean id="tmSearchIndex1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   <property name="dataSource" ref="dsSearchIndex1"></property>
    </bean>
    <tx:annotation-driven mode="aspectj" transaction-manager="dsSearchIndex1" />


    <bean id="dsSearchIndex2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.google.appengine.api.rdbms.AppEngineDriver"/>
        <property name="url" value="jdbc:google:rdbms://xxxx.com:web-prod:searchindex-2/ctssearchidx"/>
        <property name="username" value="xxxx"/>
        <property name="password" value="xxxx"/>
    </bean>
    <bean id="tmSearchIndex2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   <property name="dataSource" ref="dsSearchIndex2"></property>
    </bean>
    <tx:annotation-driven mode="aspectj" transaction-manager="dsSearchIndex2" />

    <bean id="daoSearchIndex" class="com.xxxx.searchindex.SearchIndexDaoImpl">
        <property name="dsSearchIndex1" ref="dsSearchIndex1"/>
        <property name="dsSearchIndex2" ref="dsSearchIndex2"/>
    </bean>
    

(However the SDK only supports 1 db locally, accessing any of these datasources in your dev environment will connect you to the one mysql db you've specified in your plugin config)

Thursday, January 12, 2012

MySQL 5.1

Dear All

A reminder that we will be removing support for Cloud SQL instances
running MySQL version 5.1 from February this year, at which point
those instances will stop running. We encourage users currently
running older instances (version 5.1) to upgrade; a step-by-step guide
is available here:

http://code.google.com/apis/sql/docs/upgrade.html

Let us know if you have any questions

J

--
Joe Faith | Product Manager | Google Cloud SQL

Re: SQuirreL Client Error

ok, dumb myself ! :) thank you

Re: SQuirreL Client Error

The username/password in squirrel would be for any users created using mysql grants.  Unless you did this, Leave the Username and Password fields blank.

Rob

SQuirreL Client Error

I'd like very much using a management tool with my brand new DB instance, so you can imagine my expectations reading this walkthrough:


My GMail is fabio.bozzo[at]gmail.com.... is the google cloud sql's username the same? Or only "fabio.bozzo" is?

My instance name is "fabiobozzo:testmysql" I suppose...

However i get this error while trying to connect with SQuirrel (the driver was added succesfully, indeed):

Google Cloud SQL: Access denied for user 'fabio.bozzo@gmail.com'@'localhost' (using password: YES)

I wonder what @localhost means... maybe the problem is there but... I just followed step by step the tutorial! :-(((
Can you help me?

Accessing with JPA

Has anyone successfully setup persistence with JPA?  Someone posted configuration for JDO (thanks!):

http://code.google.com/apis/sql/docs/google-cloud-sql-discuss.html?place=topic%2Fgoogle-cloud-sql-discuss%2FaUL1N-ASr6k%2Fdiscussion

But I've tried to do the same for JPA and am getting this error:

org.datanucleus.exceptions.NucleusUserException: There is no available StoreManager of type "rdbms". Please make sure you have specified "datanucleus.storeManagerType" correctly and that all relevant plugins are in the CLASSPATH

I'm using these DataNucleus references:

http://www.datanucleus.org/products/accessplatform/jpa/emf.html

http://www.datanucleus.org/products/accessplatform/persistence_properties.html


And here's the relevant part of my persistence.xml:


<persistence-unit name="pu-searchindex-1">

<provider>org.datanucleus.api.jpa.PersistenceProviderImpl</provider>

<properties>

<property name="javax.persistence.jdbc.driver" value="com.google.appengine.api.rdbms.AppEngineDriver"/>

<property name="datanucleus.ConnectionURL" value="jdbc:google:rdbms://commentous.com:web-prod:searchindex-1/ctssearchidx"/>

<property name="datanucleus.autoCreateTables" value="true"/>

<property name="datanucleus.storeManagerType" value="rdbms"/>

<property name="datanucleus.jpa.level" value="JPA1"/>

<property name="datanucleus.jpa.addClassTransformer" value="false"/>

</properties>

</persistence-unit>

Tuesday, January 10, 2012

Monday, January 9, 2012

You need permission to access this project.

Hello,

I am getting the following message when I click on the link provided
"You need permission to access this project.". Can someone help me
with this?

Thanks,
Buddha

Re: Unexpected Error.... what?

Hi,

The signup link is:


Let me know if you run into further problems. FWIW, the fix for the bug mentioned in this thread should be released sometime later this week (~Thu).

Brian

Re: disk usage by new instance


innodb uses 2 log files currently configured at 128mb each and creates initial data files.
there's also some admin mysql tables that are created.

jm.


disk usage by new instance

I create new instance, it is empty.

Dashboard for Instance gbsupportemails:rekby-test-0

Properties

Status: Running
Version: MySQL 5.5
Replication Type: Synchronous
Disk Usage: 274 MB / 1.0 GB

--
Blog: www.rekby.ru

Re: Crash table.

Now:
sql> select count(*) from email;
Table '/sfs/gbsupportemails/gbsupport-mysql5-5/data/gb_gbsupport2/email' is mark
ed as crashed and should be repaired
sql> repair table email;
LOG_FATAL_DEATH:
sql> repair table email;
Invalid connection id.


Re: Unexpected Error.... what?

So I will use fabio.bozzo@gmail.com for trial purpose, until f.bozzo@3-
w.it will be available for heavier usage.

Re: Unexpected Error.... what?

Ok I created with this email address another request for Google Cloud
SQL.

The project ID was 23654910366 I think.

Waiting for news...

Sunday, January 8, 2012

Crash table.

I use MySQL for fulltext search.

About 3 days ago I have error in my appengine mapreduce code (library
out of memory limit) and I have very high rate of "REPLACE ..." query
for MyISAM table with fulltext index.

Now I find error in my appengine applicatin:

DatabaseError: 145: Table
'/sfs/gbsupportemails/gbsupport-mysql5-5/data/gb_gbsupport2/email' is
marked as crashed and should be repaired.


I try repair table from command line sql tool.
sql> repair table email;
Missing cached payload in retry response.
sql>
->
-> select count(*) from email;
Instance has too many concurrent requests: 100
sql> select count(*) from email;
Instance has too many concurrent requests: 100
sql> select count(*) from email;
Instance has too many concurrent requests: 100

I can't export sql dump and restart MySQL-instance now

Instance gbsupportemails:gbsupport-mysql5-5.

--
Blog: www.rekby.ru

Saturday, January 7, 2012

Re: Stored procs disappearing on site version num change

I had a chance to run some proper tests this morning and you're right,
it's not due to version num changes.

I'll keep an eye on it, but there's some reason out there to explain
why the stored proc has disappeared on me twice now.

The first time it disappeared (a few days ago) I thought I was just
going crazy and/or getting sloppy and assumed I'd forgotten to load it
into production and never tested the code. But I didn't think that was
likely. When it disappeared again yesterday I knew I wasn't crazy.

Theory #1 shot down. I'll post an update if it happens again.

Friday, January 6, 2012

Re: Stored procs disappearing on site version num change

Hi Keith,
Changing your GAE application version should have no effect on your
cloud sql instance. Are you able to reproduce this consistently?

Stored procs disappearing on site version num change

This has happened to me twice now and I *think* the version num change
is to blame:

- Did a CREATE PROCEDURE call via the google_sql_tool and code on GAE
was able to access it just fine.

- Pushed updated code to GAE along with a version num increment for my
site. Switched GAE to make the new version the default.

- The stored proc was no longer accessible ("PROCEDURE myProcedure
does not exist").


I'm not much of a mySQL expert so this might not be a Cloud SQL issue
at all. Is it possible that my stored proc is only living within a
shared GAE connection and maybe somehow isn't fully committed into the
DB? That's NOT the case on my local mySQL dev instance, but it would
explain why a new version in GAE would lose the stored proc.

Thursday, January 5, 2012

Re: Unexpected Error.... what?

Hi,

We currently have a bug where we're not able to create new instances in projects created by google apps domain accounts where the domain starts with a number. It looks like this is what's happening in your case.

A fix for this bug is on the way. I'll let you know when the fix is live. In the meantime, if you are just trying to evaluate Cloud SQL, you could create a project using your gmail.com account instead of your google apps domain account. I'd be glad to send you an invite key for a new project if you'd like to do this.

Thanks,
Brian

Re: ER Modelling Plugin

Thanks for your Answers!

I will use http://ermaster.sourceforge.net/ cause it is a Eclipse
Plugin and seems to be very comfortable.

Regards,

Markus

Re: Unexpected Error.... what?

Here it is: #project:962051338611

Can you help us? :-\

Wednesday, January 4, 2012

Re: ER Modelling Plugin

Yeah, I use DBDesigner to do the ER modeling and script generating for my GAE applications.  It is a pretty nice free tool。 You can download here: http://fabforce.net/dbdesigner4/downloads.php

Best wishes!

Xiping



Re: Google Cloud SQL - Security Hole ????

Hi

As for GPE, you also need access to a valid Oauth access token (which has only one hour validity), which can be fetched only if the correct user (who owns the DB) logs in to GPE. You can think of the access token as a valid session ID. After the user logs out, the access token will expire in a hour.

j


Re: ER Modelling Plugin

Hi Marcus

GPE does not include a ER modeling tool by itself. But any ER modeling tool that works with MySQL would be able to generate SQL schema for Cloud SQL as well.

j

Re: Unexpected Error.... what?

What is your project id (the numeric one in the URL in console)?
On Jan 3, 2
Ok guys, I just started trying out Google Cloud SQL, following the first step of the introduction tutorial. I came up with the error you can see in the picture. 
"An unexpected error has occurred" while creating a simple small istance, my first one. 
Even if I add a GAE authorized applications I get the same, awful red error message.

What's up?

Re: Unexpected Error.... what?

Still you are facing the same?

 Thank you.

Regards,
Bhargava Sriram A.



Tuesday, January 3, 2012

Unexpected Error.... what?

Ok guys, I just started trying out Google Cloud SQL, following the first step of the introduction tutorial. I came up with the error you can see in the picture. 

"An unexpected error has occurred" while creating a simple small istance, my first one. 

Even if I add a GAE authorized applications I get the same, awful red error message.


What's up?


ER Modelling Plugin

Hey!

Is there a ER Modelling Tool integrated in the Google Eclipse Plugin
or another way to design a mysql database into the Cloud SQL?

Regards,

Markus

Monday, January 2, 2012

Is it even possible to run Wordpress on GAE?

Hello,

I've been looking on all sorts of tutorials and forums to find out how to run Wordpress on Tomcast and stuff so I can set up the damn database on GAE - none of it worked so far.. It seems that the way you register the driver is a bit different with GQL/GAE then elswere... they set up a database on tomcast in web.xml where they use jndi

So at this point I'm even asking whether it is even possible with GQL... seems not.

So the option I've got in mind is that I would have to rewrite all of the wordpress files to include in them the following to get it workin':

import com.google.appengine.api.rdbms.AppEngineDriver;

import java.io.IOException;
import java.sql.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
or...? And would quercus handle/translate all the rest? Thanks for your help!! : )