Hello, Wow! You weren't kidding when you described this as complex. Let me run this by one of my teammates. There are a few possibilities, and I need to narrow it down.
In order to dig into your secondary problem, I would need your customer ID. Could you please click *Reply privately to author* in the forum and send me the customer ID of one of the accounts where you noticed that you sent more operations than were executed? Is it that the items are just missing from the mutate result that comes back, or are they missing from the AdWords account as well? Thanks, Nadine, AdWords API Team On Friday, January 8, 2016 at 9:49:00 PM UTC-5, lz...@marinsoftware.com wrote: > > Here is testing result we have: > 1) If the total number of operations is less than or equal to 100k(which > means there will be less than or equal to10 threads, because one thread > handle 10k operations), everything works fine, all objects are successfully > be pushed to Adwords. > 2) If the total number of operations is larger than 100k(for example, 150k > or 1m), there will always be some errors from Adwords. > > For your last question: > Yes, we do use different instance of BatchJobHelper for each thread, not > just for each thread, we create a new BatchJobHelper even for each > incremental upload inside a thread. Because we notice that it is a utility > class & we have to make sure our session will not be expired. > > Apart from FILE_FORMAT_ERROR, we also have another issue, but we are not > sure what's going on. Sometimes, in our application, when we upload 10011 > objects in one thread, only 9012 objects will be pushed to Adwords, the > other 999 objects are missing from the mutate result. This issue only > happens when we have operations more than 100k. > > Thanks > > On Saturday, January 9, 2016 at 12:04:42 AM UTC+8, Nadine Sundquist > (AdWords API Team) wrote: >> >> Greetings! >> >> Thanks for the explanation and the update. It does sound complex enough >> that it wouldn't be easy to decouple that code from existing code. So, when >> you run just one thread everything works fine? Based on what you said, it >> sounds like it's sometimes happening, but not always. If so, it sounds like >> there may be a threading issue somewhere in the process. I'm asking >> questions to narrow down the scope of the issue. Are you using a different >> instance of *BatchJobHelper* for each thread? >> >> Regards, >> Nadine, AdWords API Team >> >> On Friday, January 8, 2016 at 10:21:32 AM UTC-5, lz...@marinsoftware.com >> wrote: >>> >>> Things are even getting worser when I have more than 10 such threads, >>> most of batch jobs created by a thread will fail to upload operations due >>> to the same error: FILE_FORMAT_ERROR. >>> >>> On Friday, January 8, 2016 at 8:39:24 AM UTC+8, lz...@marinsoftware.com >>> wrote: >>>> >>>> The code involves a lot of context to make it understandable, so I am >>>> not going to send to you now. However, I could explain to you what the >>>> code >>>> really does: >>>> 1) There are some threads, let's say 10 >>>> 2) For each threads, it will create one batch job using BatchJobService >>>> 3) For each threads, with the batch job upload url created above, we >>>> upload operations(1campaign which contains 10 groups, and each group >>>> contains 1000keywords, so that will be 10011 objects) incrementally, 1000 >>>> operations per incremental upload, and the parent operations goes before >>>> child operations. >>>> 4) All the thread will be run simultaneously. >>>> 5) When one thread finishes uploading its operations, it will send its >>>> batch job id to another dedicated thread(let's say BatchJobStatusQuery >>>> thread). >>>> 6) The BatchJobStatusQuery thread will periodically poll the status of >>>> the batch job. >>>> >>>> If you are sill confusing what I am really doing, I will try to send a >>>> revised code to you. >>>> >>>> Thanks >>>> >>>> On Friday, January 8, 2016 at 2:25:32 AM UTC+8, Nadine Sundquist >>>> (AdWords API Team) wrote: >>>>> >>>>> Hi, >>>>> >>>>> That is odd. In order to triage it, I would need to take a look at >>>>> your code. Could you please click *Reply privately to author* in the >>>>> forum, and send me what your code looks like? That way I can reproduce >>>>> what >>>>> you're trying to send. >>>>> >>>>> Thanks, >>>>> Nadine, AdWords API Team >>>>> >>>>> On Thursday, January 7, 2016 at 11:33:48 AM UTC-5, >>>>> lz...@marinsoftware.com wrote: >>>>>> >>>>>> Hi Yin, >>>>>> >>>>>> I am using BatchJobHelper(a utility exists in Google ads Java >>>>>> library) to upload operations, so there will be no chance for me to >>>>>> encounter a error related to file, but unfortunately there was. >>>>>> >>>>>> The Java client I am using: >>>>>> <dependency> >>>>>> <groupId>com.google.api-ads</groupId> >>>>>> <artifactId>adwords-axis</artifactId> >>>>>> <version>2.8.0</version> >>>>>> </dependency> >>>>>> >>>>>> Thanks a lot! >>>>>> >>>>>> On Thursday, January 7, 2016 at 11:50:07 PM UTC+8, Yin Niu wrote: >>>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> The FILE_FORMAT_ERROR >>>>>>> <https://developers.google.com/adwords/api/docs/reference/v201509/BatchJobService.BatchJobProcessingError.Reason> >>>>>>> indicates >>>>>>> there's a format error in the input file. To upload file >>>>>>> <https://developers.google.com/adwords/api/docs/guides/batch-jobs#upload_operations_to_the_upload_url>, >>>>>>> >>>>>>> the input xml file should have a format as specified in >>>>>>> BatchJobOps.xsd. >>>>>>> For incremental upload >>>>>>> <https://developers.google.com/adwords/api/docs/guides/batch-jobs#request_body_for_incremental_uploads>s, >>>>>>> >>>>>>> the first request will have the start of <mutate> element and the last >>>>>>> request will have the end of </mutate> element. >>>>>>> >>>>>>> Thanks, >>>>>>> Yin, AdWords API Team. >>>>>>> >>>>>> -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and Google+: https://googleadsdeveloper.blogspot.com/ https://plus.google.com/+GoogleAdsDevelopers/posts =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 --- You received this message because you are subscribed to the Google Groups "AdWords API Forum" group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. Visit this group at https://groups.google.com/group/adwords-api. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/e51bd8cb-65d4-43bf-a026-5599d4c854b7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.