You must not access methods of a WebdavResource or any of its children obtained by calling getChildResources() from more than one thread concurrently, because these share a single HttpClient instance. And with the SimpleHttpConnectionManager there is only one physical connection available.
Ingo > So under what circumstances would we see a problem if we don't use the > MultiThreadedHttpConnectionManager in the WebDAV client? Anytime we try to > use a multithreaded client configuration?? > > Warwick > > > > -----Original Message----- > From: Ingo Brunberg [mailto:[EMAIL PROTECTED] > Sent: Wednesday, September 08, 2004 7:18 AM > To: [EMAIL PROTECTED] > Subject: Re: URLGetMethod.executeMethod is hanging under multi threaded en > vironment > > > No, Slide's WebDAV client library does not use the > MultiThreadedHttpConnectionManager, although changing this would be > straightforward. Perhaps we should make this configurable or simply use that > by default. > > This discussion already came up several times, but noone insisted on really > changing that. > > Ingo > > > Hi Ingo, > > > > Is this applicable for other Slide client applications too? Does the > > Slide WebDAV client make use of the MultiThreadedHttpConnectionManager > > or is there something that I need to do in my application to enable > > this? > > > > Thanks, > > Warwick > > > > > > > > -----Original Message----- > > From: Koundinya (Sudhakar Chavali) > > [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, September 07, 2004 1:03 PM > > To: Slide Users Mailing List > > Subject: Re: URLGetMethod.executeMethod is hanging under multi threaded > > environment > > > > > > Thankyou Ingo, > > > > this solved my problem. > > if (manager == null) { > > manager = new MultiThreadedHttpConnectionManager(); > > manager.setMaxTotalConnections(30); > > manager.setMaxConnectionsPerHost(10); > > } > > client = new HttpClient(manager); > > > > > > --- Ingo Brunberg <[EMAIL PROTECTED]> wrote: > > > > > > This is how I am getting the Client Instance. > > > > > > > > org.apache.commons.httpclient.HttpURL url = (org.apache.commons. > > > > httpclient.HttpURL) getURL(path + "/" + user); > > > > > > > > > > org.prithvi.docparser.microsoft.msexchange.apache.OwaWebdavResource > > > > webDavResourceFile = getWebResource( > > > > url); > > > > > > > > //get the client session > > > > client = webDavResourceFile.retrieveSessionInstance(); > > > > > > > > Is this instance comes from SimpleConnectionManager ?? > > > > > > Simple answer, yes. > > > > > > Two notes: > > > - Don't use UrlGetMethod. It's deprecated. Just use GetMethod. > > > - As a first solution try to surround the following two lines of your > > > code given below with a synchronized(client) {} block: > > > > > > int status = client.executeMethod(getMethod); > > > byte attachmentBytes[] = getMethod.getResponseBody(); > > > > > > Regards, > > > Ingo > > > > > > > > > > > > > > thanks for trying to helping me > > > > > > > > Sudhakar > > > > > > > > > > > > > > > > > > > > > > > > --- Ingo Brunberg <[EMAIL PROTECTED]> wrote: > > > > > > > > > First, this is not quite the right list for asking this > > > > > question. > > > > > It would have better been asked on the commons-httpclient-dev > > > > > list. > > > > > > > > > > But anyway, your code snippet does not show how you create the > > > > > HttpClient instance that you use. Be aware that by default you get > > > > > one that uses the so called SimpleConnectionManager. You cannot > > > > > use that one to access the same connection concurrently from more > > > > > than one thread. If you want HttpClient to manage the connections > > > > > for you in a multithreaded environment, you should use the > > > > > MutliThreadedConnectionManager. > > > > > > > > > > Ingo > > > > > > > > > > > Hello Guys, > > > > > > > > > > > > Subject: URLGetMethod.executeMethod is hanging under multi > > > > > > threaded environment > > > > > > > > > > > > Please see the folloiwng code. I am trying to download the > > > > > > mails > > > > > > of MS Exchange Server > > > using > > > > > > URLGetMethod.executeMethod. But when execution pointer comes > > > > > > to > > > > > > the thread area (URLGetMethod.executemethod), > > > > > > > > > > > > URLGetMethod.executemethod is not coming out of it's loop. > > > > > > Could > > > > > > you please explain what > > > is > > > > > the > > > > > > problem with this code?? > > > > > > > > > > > > > > > > > > class SaveAttachmentThread > > > > > > extends Thread > > > > > > implements Runnable { > > > > > > static int threadCount = 0; > > > > > > String uri = ""; > > > > > > String strAttachmentName = ""; > > > > > > private org.apache.commons.httpclient.HttpClient client = null; > > > > > > org.apache.commons.httpclient.methods.UrlGetMethod > > > > > > attachmentMethod = null; > > > > > > > > > > > > public SaveAttachmentThread(String uri, String > > > > > > strAttachmentName, > > > > > > > > org.apache.commons.httpclient.HttpClient client) { > > > > > > this.uri = uri; > > > > > > this.strAttachmentName = strAttachmentName; > > > > > > this.client = client; > > > > > > > > > > > > } > > > > > > > > > > > > public > SaveAttachmentThread(org.apache.commons.httpclient.methods. > > > > > > UrlGetMethod _getMethod, String > > attachment) { > > > > > > attachmentMethod = _getMethod; > > > > > > this.strAttachmentName = attachment; > > > > > > } > > > > > > > > > > > > public void run() { > > > > > > //strAttachmentName = URLDecoder.decode(strAttachmentName); > > > > > > System.err.println("Saved to " + strAttachmentName); > > > > > > System.err.println("URL :" + uri); > > > > > > try { > > > > > > > > > > > > > > > > > > System.err.println("Saving the URL :" + > strAttachmentName); > > > > > > org.apache.commons.httpclient.methods.UrlGetMethod > > > > > > getMethod > > = new org. > > > > > > apache.commons.httpclient.methods.UrlGetMethod(uri); > > > > > > int status = client.executeMethod(getMethod); > > > > > > > > > > > > > > > > > > byte attachmentBytes[] = getMethod.getResponseBody(); > > > > > > FileOutputStream fout = new > > FileOutputStream(strAttachmentName); > > > > > > fout.write(attachmentBytes); > > > > > > fout.close(); > > > > > > fout = null; > > > > > > > > > > > > threadCount++; > > > > > > System.err.println(threadCount); > > > > > > > > > > > > } > > > > > > catch (Throwable e) { > > > > > > System.err.println("Error raised while saving the URI : " + > > > > > > strAttachmentName); > > > > > > e.printStackTrace(); > > > > > > } > > > > > > } > > > > > > } > > > > > > > > > > > > > > > > > > Thanks > > > > > > Sudhakar > > > > > > > > > > > > > > > > > > > > > > > > ===== > > > > > > "No one can earn a million dollars honestly."- William > > > > > > Jennings > > > > > > Bryan (1860-1925) > > > > > > > > > > > > "Make everything as simple as possible, but not simpler."- > > > > > > Albert Einstein (1879-1955) > > > > > > > > > > > > "It is dangerous to be sincere unless you are also stupid."- > > > > > > George Bernard Shaw > > > (1856-1950) > > > > > > > > > > > > > > > > > > > > > > > > __________________________________ > > > > > > Do you Yahoo!? > > > > > > New and Improved Yahoo! Mail - Send 10MB messages! > > > > > > http://promotions.yahoo.com/new_mail > > > > > > > > > > > > > > > ---------------------------------------------------------------- > > > > > -- > > > > > --- > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > ===== > > > > "No one can earn a million dollars honestly."- William Jennings > > > > Bryan (1860-1925) > > > > > > > > "Make everything as simple as possible, but not simpler."- Albert > > > > Einstein (1879-1955) > > > > > > > > "It is dangerous to be sincere unless you are also stupid."- > > > > George > > > > Bernard Shaw (1856-1950) > > > > > > > > > > > > > > > > __________________________________ > > > > Do you Yahoo!? > > > > Yahoo! Mail - 50x more storage than other providers! > > > > http://promotions.yahoo.com/new_mail > > > > > > > > > -------------------------------------------------------------------- > > > - > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > ===== > > "No one can earn a million dollars honestly."- William Jennings Bryan > > (1860-1925) > > > > "Make everything as simple as possible, but not simpler."- Albert > > Einstein > > (1879-1955) > > > > "It is dangerous to be sincere unless you are also stupid."- George > > Bernard Shaw (1856-1950) > > > > > > > > _______________________________ > > Do you Yahoo!? > > Win 1 of 4,000 free domain names from Yahoo! Enter now. > > http://promotions.yahoo.com/goldrush --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
