Hi,
I wrote a Java App to synchronize an internal list of about 2,000 high
school students with Gmail.
I am now in the process of volume testing and I am experiencing
intermittent errors in the provisoning API.
I have seen three error types: UnknownError(1000),
AuthenticationException, and ResourceNotFoundException. See examples
below.
In each case my program is able to continue and subsequent service
requests complete OK.
The program authenticates in its main UI thread creating a UserEntry
object which is declared static. It then farms out the remaining work
to a single background thread which is passed a list of Accounts to be
created or suspended. For ease of testing I have also added a bit of
code that alternately suspends and then restores a single well known
user 1000 times in the background thread. In each case I get errors
after the thread has run for 10 minutes or longer but then it coninues
OK.
Can anyone offer any insight or assistance in tracking down why this
is happening and what I can do to avoid it?
Thanks,
-Doug Piper
-----------------------------------------------------------------------------------------------------------
INFO: Creating user 'ZZZLIANG4970'. Given Name: 'TENGDAN '
Family Name: 'ZZZLIANG '.
Apr 29, 2008 6:08:17 PM Goosync.Goosync forceUserToChangePassword
INFO: Requiring ZZZLIANG4970 to change password at next login.
Apr 29, 2008 6:08:18 PM Goosync.Goosync createUser
INFO: Creating user 'ZZZLIANG5201'. Given Name: 'CINDY '
Family Name: 'ZZZLIANG '.
Apr 29, 2008 6:08:20 PM Goosync.Goosync$Worker doCreates
SEVERE: null
UnknownError(1000):
at
com.google.gdata.data.appsforyourdomain.AppsForYourDomainException.narrow(Unknown
Source)
at
com.google.gdata.client.appsforyourdomain.AppsForYourDomainService.insert(Unknown
Source)
at Goosync.Goosync.createUser(Goosync.java:1014)
at Goosync.Goosync$Worker.doCreates(Goosync.java:1305)
at Goosync.Goosync$Worker.doInBackground(Goosync.java:1229)
at Goosync.Goosync$Worker.doInBackground(Goosync.java:1217)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Apr 29, 2008 6:08:20 PM Goosync.Goosync createUser
INFO: Creating user 'ZZZLIANG7200'. Given Name: 'CARRIE '
Family Name: 'ZZZLIANG '.
Apr 29, 2008 6:08:24 PM Goosync.Goosync forceUserToChangePassword
INFO: Requiring ZZZLIANG7200 to change password at next login.
Apr 29, 2008 6:08:26 PM Goosync.Goosync createUser
INFO: Creating user 'ZZZLIANG7441'. Given Name: 'CAIJIAO '
Family Name: 'ZZZLIANG
---------------------------------------------------------------------------------------------------------------
Apr 30, 2008 10:10:29 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZENG3854'.
Apr 30, 2008 10:10:33 AM Goosync.Goosync$Worker doSuspends
SEVERE: null
com.google.gdata.util.ServiceForbiddenException: You are not
authorized to access this API.
<HTML>
<HEAD>
<TITLE>You are not authorized to access this API.</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>You are not authorized to access this API.</H1>
<H2>Error 403</H2>
</BODY>
</HTML>
at
com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(Unknown
Source)
at
com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(Unknown
Source)
at
com.google.gdata.client.http.HttpGDataRequest.checkResponse(Unknown
Source)
at com.google.gdata.client.http.HttpGDataRequest.execute(Unknown
Source)
at com.google.gdata.client.http.GoogleGDataRequest.execute(Unknown
Source)
at com.google.gdata.client.Service.getEntry(Unknown Source)
at com.google.gdata.client.GoogleService.getEntry(Unknown Source)
at
com.google.gdata.client.appsforyourdomain.AppsForYourDomainService.getEntry(Unknown
Source)
at com.google.gdata.client.Service.getEntry(Unknown Source)
at
com.google.gdata.client.appsforyourdomain.AppsForYourDomainService.getEntry(Unknown
Source)
at Goosync.Goosync.suspendUser(Goosync.java:1060)
at Goosync.Goosync$Worker.doSuspends(Goosync.java:1345)
at Goosync.Goosync$Worker.doInBackground(Goosync.java:1231)
at Goosync.Goosync$Worker.doInBackground(Goosync.java:1217)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Apr 30, 2008 10:10:33 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZENG4215'.
Apr 30, 2008 10:10:35 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZENG5457'.
Apr 30, 2008 10:10:37 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZENG6073'.
Apr 30, 2008 10:10:39 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZENG6844'.
Apr 30, 2008 10:10:42 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZENG8204'.
Apr 30, 2008 10:10:47 AM Goosync.Goosync$Worker doSuspends
SEVERE: null
com.google.gdata.util.AuthenticationException: Internal exception
<HTML>
<HEAD>
<TITLE>Internal exception</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Internal exception</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
at
com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(Unknown
Source)
at
com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(Unknown
Source)
at
com.google.gdata.client.http.HttpGDataRequest.checkResponse(Unknown
Source)
at com.google.gdata.client.http.HttpGDataRequest.execute(Unknown
Source)
at com.google.gdata.client.http.GoogleGDataRequest.execute(Unknown
Source)
at com.google.gdata.client.Service.update(Unknown Source)
at com.google.gdata.client.GoogleService.update(Unknown Source)
at
com.google.gdata.client.appsforyourdomain.AppsForYourDomainService.update(Unknown
Source)
at Goosync.Goosync.suspendUser(Goosync.java:1065)
at Goosync.Goosync$Worker.doSuspends(Goosync.java:1345)
at Goosync.Goosync$Worker.doInBackground(Goosync.java:1231)
at Goosync.Goosync$Worker.doInBackground(Goosync.java:1217)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Apr 30, 2008 10:10:47 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZENG9983'.
Apr 30, 2008 10:10:49 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZHANG1767'.
Apr 30, 2008 10:10:51 AM Goosync.Goosync suspendUser
INFO: Suspending user 'ZZZZHANG2515'.
------------------------------------------------------------------------------------------------------------------
INFO: Suspending user 'Zombie'.
May 1, 2008 5:19:48 PM Goosync.Goosync restoreUser
INFO: Restoring user 'Zombie'.
May 1, 2008 5:19:50 PM Goosync.Goosync suspendUser
INFO: Suspending user 'Zombie'.
May 1, 2008 5:19:54 PM Goosync.Goosync$Worker doDeletes
SEVERE: null
com.google.gdata.util.ResourceNotFoundException: Not Found
<HTML>
<HEAD>
<TITLE>Not Found</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Not Found</H1>
<H2>Error 404</H2>
</BODY>
</HTML>
at
com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(Unknown
Source)
at
com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(Unknown
Source)
at
com.google.gdata.client.http.HttpGDataRequest.checkResponse(Unknown
Source)
at
com.google.gdata.client.http.HttpGDataRequest.execute(Unknown Source)
at
com.google.gdata.client.http.GoogleGDataRequest.execute(Unknown
Source)
at com.google.gdata.client.Service.getEntry(Unknown Source)
at com.google.gdata.client.GoogleService.getEntry(Unknown
Source)
at
com.google.gdata.client.appsforyourdomain.AppsForYourDomainService.getEntry(Unknown
Source)
at com.google.gdata.client.Service.getEntry(Unknown Source)
at
com.google.gdata.client.appsforyourdomain.AppsForYourDomainService.getEntry(Unknown
Source)
at Goosync.Goosync.suspendUser(Goosync.java:1072)
at Goosync.Goosync$Worker.doDeletes(Goosync.java:1449)
at Goosync.Goosync$Worker.doInBackground(Goosync.java:1300)
at Goosync.Goosync$Worker.doInBackground(Goosync.java:1284)
at javax.swing.SwingWorker$1.call(SwingWorker.java:278)
at java.util.concurrent.FutureTask
$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at javax.swing.SwingWorker.run(SwingWorker.java:317)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
May 1, 2008 5:19:55 PM Goosync.Goosync suspendUser
INFO: Suspending user 'Zombie'.
May 1, 2008 5:19:57 PM Goosync.Goosync restoreUser
INFO: Restoring user 'Zombie'.
------------------------------------------------------
end of examples
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Apps APIs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/google-apps-apis?hl=en
-~----------~----~----~----~------~----~------~--~---