Hi Oleg,

I am using Windows XP 32bit. I turned on context logging but I didn't see anything interesting. How to check if the connections get really reused? The only thing I see are the 'Invalid Cookies' (expired) warns.

This is the exception stack I get:

java.net.BindException: Address already in use: connect
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
   at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
   at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
   at java.net.Socket.connect(Socket.java:519)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:106) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:129) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) at org.apache.http.impl.client.DefaultClientRequestDirector.execute(DefaultClientRequestDirector.java:309) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:501) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:456) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:422) at ca.uottawa.met3.crawler.http.HttpEngine.getSiteAsStream(HttpEngine.java:96) at ca.uottawa.met3.crawler.engine.AbstractParser.readSite(AbstractParser.java:60) at ca.uottawa.met3.crawler.engine.AbstractParser.parseSite(AbstractParser.java:40) at ca.uottawa.met3.crawler.parsers.PaperParser.fillLink(PaperParser.java:36) at ca.uottawa.met3.crawler.MultiThreadedCrawlerController$PaperParsingTask.run(MultiThreadedCrawlerController.java:184) 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)


Tomek

Oleg Kalnichevski wrote:
On Sat, 2008-08-30 at 20:50 -0400, Tomek Maciejewski wrote:
Hi,
I am trying to write a multithreaded crawler. I would like to execute
http requests simultaneously.

...

I use a one instance of this client. The instance is marked as static
and final. But after executing some number of requests I start to get
a java.net.BindException with message "Address already in use" almost
every time I want to execute request. The code responsible for
executing requests is below (HTTP_CLIENT is a instance of the class I
mentioned above):


...


Could you tell me what am I doing wrong? I thought that maybe I don't
release the connection and I don't unbind sockets, but in finally
section I use consumeContent() method which should do that.


Tomek,

(1) What platform (OS) are you using? Quite often BindException are
caused by platform specific TCP/IP settings.
(2) You can turn on context logging in order to see if connections get
really reused or not. If they do, this would suggest a TCP/IP stack
configuration issue.
Oleg


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to