Hi Oliver, Yes, the session object should be safe to read in multiple threads (the only caveat is if you are doing OAuth2 and it needs to refresh the token, that wouldn't be threadsafe). Technically, you can also update the credentials as well as partialFailure/validateOnly (and reportMoneyInMicros).
If you're using ClientLogin or OAuth1.0a, you should be fine in your scenario. Under certain edge conditions OAuth2 might be OK - you just run the risk of multiple threads all refreshing it at once. We wanted to recommend treating it as non-threadsafe because the caveats certainly complicate matters. - Kevin Winter AdWords API Team On Thursday, October 18, 2012 6:37:20 AM UTC-4, Oliver wrote: > > Thanks Kevin for such an excellent resource. > > I have a question about the nature of thread safety of the *session * > object. > > So, if we don't make changes to the session* *object at all, does this > mean we can use multi threads on the session object (together with the > other objects like *ReportDownloader *and the *service stubs *that they > hold a reference to the session)? > > The only thing that potentially can change on a session is the customer > ID, right? We have a model whereby we cache one session object per account > ID, hence we never need to change the customer ID on the session. Are we > safe to use multi threads in our case? > > Oliver > > On Wednesday, October 17, 2012 10:20:23 PM UTC+1, Kevin Winter wrote: >> >> Updated - thanks for pointing that out. >> >> - Kevin Winter >> AdWords API Team >> >> On Wednesday, October 17, 2012 4:20:05 PM UTC-4, j.e.frank wrote: >>> >>> That's useful. Can you also update the Migration Guide, because it >>> contains contradictory information about the AdWordsServices object? The >>> migration guide calls it heavyweight and non-threadsafe, and the wiki page >>> referenced below calls it lightweight and threadsafe. >>> >>> On Wednesday, October 17, 2012 4:10:57 PM UTC-4, Kevin Winter wrote: >>>> >>>> Hi Oliver, >>>> I just published a wiki page on thread safety in the new java >>>> library: >>>> https://code.google.com/p/google-api-ads-java/wiki/ThreadSafety >>>> >>>> - Kevin Winter >>>> AdWords API Team >>>> >>>> On Wednesday, October 3, 2012 3:34:04 PM UTC-4, Oliver wrote: >>>>> >>>>> Assume we have an MCC with 5 standard adwords accounts inside it. >>>>> >>>>> An application, using the Java client library, authenticates to access >>>>> the MCC account and gets the required token for the MCC. >>>>> >>>>> We now need to access the 5 accounts within the MCC, sometimes >>>>> simultaneously. Can you please confirm the following: >>>>> >>>>> 1) Since the AdwordsSession object is associated with one account ID, >>>>> I will need to create 5 AdwordsSession objects one for each account. All >>>>> AdwordsSessions are created using the same token (obtained when >>>>> authenticating for MCC). Is this correct? >>>>> >>>>> 2) Even though the AdwordsServies class can be used with multiple >>>>> sessions, it is not thread safe as documented here: >>>>> http://code.google.com/p/google-api-ads-java/wiki/MigrationGuide >>>>> >>>>> Since the 5 accounts might be accessed simultaneously, I should create >>>>> 5 different AdwordsServices object, one for each account. Is this >>>>> correct? >>>>> >>>>> >>>>> Thanks for your help. >>>>> >>>>> Oliver >>>>> >>>> -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API Forum" group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en