Hi Karsten. Why I said two Queues. Transmit everything on one (or one set, depending), then listen on the response queue. More than just an MDB can listen on a Queue, btw, including Stateless EJBs, or even POJOs. MDBs normally "auto-register" as a listener on a Queue (depending on the AppServer). Everything else has to programmatically connect (to a sometimes pre-existing Queue).
So, as the requests are processed (or timeout!), the MDBs post to the Response Queue, where the sender is listening. Note that you might want to dynamically create a response queue for each set of requests you are handling, and transmit what that queue is as part of the original message. Once the sender has received responses from all the MDBs, it can continue processing. Going this route, you don't even need everything on the same machine, although doing so will make configuration simpler. Regards, Steve -----Original Message----- From: Karsten Ohme [mailto:[email protected]] Sent: Friday, February 19, 2010 3:17 PM To: [email protected] Subject: Re: Multiple HTTPConnections in parallel from EJB Thanks for the quick reply. the second possibility seems to be a problem: I have to wait until all results are collected. This seems to be impossible with MDB. Or how can I wait in an EJB until all MDBs have collected all results for a specific request? Karsten Am 19.02.2010 21:57, schrieb Stephen Davidson: > <quickie answer> > Two technologies that come to mind for this; > MBeans aka JMX Beans (multi-threading IS allowed here) > MDB with channels/subqueues - one queue for transmitting requests, > another queue for picking up responses. Then X number of MDBs listening > for requests, with each doing its own HTTP Processing. > </quickie answer> > > Regards, > Steve > > -----Original Message----- > From: Karsten Ohme [mailto:[email protected]] > Sent: Friday, February 19, 2010 2:52 PM > To: [email protected] > Subject: Multiple HTTPConnections in parallel from EJB > > Hi Java Gurus, > > We have the following problem: > > We are using the HTTPClient library and must open multiple connections > simultaneously. i.e. we have to make several calls in parallel, > otherwise the performance is very bad. If we have 50 requests per user > and are doing these 50 requests in order we have to wait 50 times the > time of one request. For multiple user this is not an option. > So, the question is how can 50 parallel connection be opened in EJB? > Threads are not allowed, so how can we accomplish this? > > It should be a service like this: > > - Send x methods in parallel > - Collects the results > > Thanks, > Karsten > > -- Karsten Ohme T-Systems Multimedia Solutions GmbH Portal Technologies, Applications & Appliances Hausanschrift: Riesaer Strasse 5, 01129 Dresden Postanschrift: Postfach 10 02 24, 01072 Dresden Telefon: +49 351 28 20 - 2123 Fax: +49 171 351 28 20 - 5116 E-Mail: [email protected]
