Hi, One other tip: if you're encountering this issue with reporting requests and using the Java client library, you can modify the api.adwords.reportDownloadTimeout <https://github.com/googleads/googleads-java-lib/blob/master/examples/adwords_axis/src/main/resources/ads.properties#L46> value as well in your ads.properties file.
Thanks, Josh, AdWords API Team On Thursday, September 8, 2016 at 5:06:55 PM UTC-4, Josh Radcliff (AdWords API Team) wrote: > > Hi, > > I'll look into the increased occurrences of timeouts, but in the meantime, > if you are using the Java client library, you can reduce the SOAP request > timeout from the default of 20 minutes (1200000 milliseconds) by setting > the api.adwords.soapRequestTimeout value in your ads.properties file > <https://github.com/googleads/googleads-java-lib/blob/master/examples/adwords_axis/src/main/resources/ads.properties#L52> > . > > Thanks, > Josh, AdWords API Team > > On Thursday, September 8, 2016 at 2:53:09 PM UTC-4, Christian wrote: >> >> Hi, >> >> we got similar problems starting September 6, 3pm UTC. Since then an >> increased number of API calls hang when reading from a socket (we read in >> blocking mode from sockets). For now the connections seem to be held open >> indefinitely. I would expect it to be closed by some Google server sooner >> or later -- that would at least make it easier on our side to deal with >> these problems. >> >> We had no application or infrastructure change on our side in the last >> days. Also, we do not see these problems on other network connections (to >> other services than AdWords). >> >> Could you please investigate if there possibly related network changes or >> issues at Google/AdWords? >> >> Thanks for your support! >> >> Best regards, >> Christian >> >> On Thursday, September 8, 2016 at 5:55:40 PM UTC+2, Stefan Kleine >> Stegemann wrote: >>> >>> >>> Hi, >>> >>> over the past days, we experienced an increasing number of read-timeouts >>> when making API calls. >>> The timeouts are not restricted to a specific service but we have >>> observed them for CampaignService, >>> TrafficEstimatorService, Reporting and some others . I seems that our >>> network is not the problem >>> because other (concurrent) calls are processed with out problems at the >>> same time. It just seems >>> that, once in a while, an API call gets "hit" by a timeout. Actually, it >>> looks like that making the request >>> is not the problem but rather reading the response. Most of the time, we >>> our retry mechanism >>> catches the timeout and re-runs the API call. As far we have examined >>> it, all calls got processed >>> without problems when retried. >>> >>> Our main problem is that the timeout occurs after an exceptionally long >>> time (ranging from minutes to >>> up to an hour). This slows down some of our backend processes >>> significantly because some calls >>> hang for an hour before the retry mechanism applies. We have not set any >>> explicit timeout on the >>> adwords session or the API in general. Also, we did not experience this >>> behavior before, it just >>> started to appear some days ago. >>> >>> We don't really know if we can do anything to improve the situation but >>> as a first step, we'd like to >>> decrease the timeout for the adwords session. However, we don't know how >>> to this and did not >>> manage to find instructions. So is there any way of explicitly setting a >>> timeout for an adwords session? >>> >>> I've attached an example request that failed with a timeout (to >>> CampaignService) and response (well, >>> the response is empty) as well as the stack trace of the root cause >>> exception. >>> >>> Cheers, >>> Stefan >>> >>> --------------------------- >>> Here is the exception (I cropped the stacktrace where the call "leaves" >>> our code): >>> >>> java.net.SocketTimeoutException: Read timed out >>> at java.net.SocketInputStream.socketRead0(Native Method) >>> ~[na:1.8.0_25] >>> at java.net.SocketInputStream.read(SocketInputStream.java:150) >>> ~[na:1.8.0_25] >>> at java.net.SocketInputStream.read(SocketInputStream.java:121) >>> ~[na:1.8.0_25] >>> at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) >>> ~[na:1.8.0_25] >>> at >>> sun.security.ssl.InputRecord.readV3Record(InputRecord.java:593) >>> ~[na:1.8.0_25] >>> at sun.security.ssl.InputRecord.read(InputRecord.java:532) >>> ~[na:1.8.0_25] >>> at >>> sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954) >>> ~[na:1.8.0_25] >>> at >>> sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:911) >>> ~[na:1.8.0_25] >>> at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) >>> ~[na:1.8.0_25] >>> at >>> java.io.BufferedInputStream.fill(BufferedInputStream.java:246) >>> ~[na:1.8.0_25] >>> at >>> java.io.BufferedInputStream.read1(BufferedInputStream.java:286) >>> ~[na:1.8.0_25] >>> at >>> java.io.BufferedInputStream.read(BufferedInputStream.java:345) >>> ~[na:1.8.0_25] >>> at java.io.FilterInputStream.read(FilterInputStream.java:133) >>> ~[na:1.8.0_25] >>> at org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:453) >>> [axis-1.4.jar:na] >>> at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:559) >>> [axis-1.4.jar:na] >>> at org.apache.axis.Message.getSOAPPartAsString(Message.java:412) >>> [axis-1.4.jar:na] >>> at >>> com.google.api.ads.common.lib.soap.axis.AxisHandler.invokeSoapCall(AxisHandler.java:281) >>> >>> [ads-lib-axis-2.17.0.jar:na] >>> at >>> com.google.api.ads.common.lib.soap.SoapServiceClient.callSoapClient(SoapServiceClient.java:62) >>> >>> [ads-lib-2.17.0.jar:na] >>> at >>> com.google.api.ads.common.lib.soap.SoapServiceClient.invoke(SoapServiceClient.java:92) >>> >>> [ads-lib-2.17.0.jar:na] >>> at com.sun.proxy.$Proxy122.get(Unknown Source) [na:na] >>> at >>> com.adference.connector.google.CampaignServiceGET.execute(CampaignServiceGET.java:23) >>> >>> [google-adwords-api-connector-v21_2.jar:na] >>> ... >>> >>> The SOAP request: >>> >>> --------------------------- >>> <?xml version="1.0" encoding="UTF-8" standalone="no"?> >>> <soapenv:Envelope xmlns:soapenv=" >>> http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=" >>> http://www.w3.org/2001/XMLSchema" xmlns:xsi=" >>> http://www.w3.org/2001/XMLSchema-instance"> >>> <soapenv:Header> >>> <ns1:RequestHeader xmlns:ns1=" >>> https://adwords.google.com/api/adwords/cm/v201607" >>> soapenv:mustUnderstand="0"> >>> <ns1:clientCustomerId>xxxxxxxxxxx</ns1:clientCustomerId> >>> <ns1:developerToken>REDACTED</ns1:developerToken> >>> <ns1:userAgent>xxxxxxxxxxx</ns1:userAgent> >>> <ns1:validateOnly>false</ns1:validateOnly> >>> <ns1:partialFailure>false</ns1:partialFailure> >>> </ns1:RequestHeader> >>> </soapenv:Header> >>> <soapenv:Body> >>> <get xmlns="https://adwords.google.com/api/adwords/cm/v201607"> >>> <serviceSelector> >>> <fields>Id</fields> >>> <fields>Name</fields> >>> <fields>Status</fields> >>> <fields>Amount</fields> >>> <fields>Settings</fields> >>> <fields>AdvertisingChannelType</fields> >>> <predicates> >>> <field>AdvertisingChannelType</field> >>> <operator>IN</operator> >>> <values>SEARCH</values> >>> <values>SHOPPING</values> >>> </predicates> >>> <predicates> >>> <field>Status</field> >>> <operator>IN</operator> >>> <values>PAUSED</values> >>> <values>ENABLED</values> >>> <values>REMOVED</values> >>> </predicates> >>> <paging> >>> <startIndex>0</startIndex> >>> <numberResults>9999</numberResults> >>> </paging> >>> </serviceSelector> >>> </get> >>> </soapenv:Body> >>> </soapenv:Envelope> >>> >>> >>> --------------------------- >>> And here the SOAP response >>> 2016-09-08 08:40:46,725 1366360824 [qtp1501587365-37324] WARN >>> soapXmlLogger SOAP Response: >>> null >>> >> -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 [email protected] To unsubscribe from this group, send email to [email protected] 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 [email protected]. 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/412d0bff-21c3-46c1-973a-21cdde686cfc%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
