tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Davidson" <stephen.david...@etcc.com>
Subject RE: Multiple HTTPConnections in parallel from EJB
Date Fri, 19 Feb 2010 21:28:06 GMT
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:koh@mms-dresden.de] 
Sent: Friday, February 19, 2010 3:17 PM
To: users@openejb.apache.org
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:koh@mms-dresden.de] 
> Sent: Friday, February 19, 2010 2:52 PM
> To: users@openejb.apache.org
> 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: karsten.ohme@t-systems.com 


Mime
View raw message