Design on handling servlet request

Hi,
I have a servlet which will get request to execute a service.
What is the best way to design this component to cater for high transactions?
Once the servlet gets request, it needs to store the data to the database first and then execute the service.
Shall I create a new thread for each of the request? Beside this way, what other better ways which I can follow?
If I do everthing in that particular servlet, will it be a bad design?
Are there any design pattern which I can apply?
Thank you.
Any sharing will be appreciated.

Hi,
I have a servlet which will get request to execute a
service.
What is the best way to design this component to cater
for high transactions?IMHO it's difficult to say, but for instance you should use object pooling, in your case connection pooling. Depending on your business classes, for persistence I would have a look at O/R tools like Hibernate. Hibernate does internal caching as well.
>
Once the servlet gets request, it needs to store the
data to the database first and then execute the
service.
Shall I create a new thread for each of the request?
Beside this way, what other better ways which I can
follow?As far as I know and I do it, each request is handled by its own thread, so there is no need to start a thread on each request. The only problem is if you have class member variables or static variables because different requests change those variables depending on your business logic. So either make those variables synchronized (which makes each access to those variables even slower) or better do not use member variables whenever possible. Handle the business within a method.
>
If I do everthing in that particular servlet, will it
be a bad design?Yes, I'd say so.
>
Are there any design pattern which I can apply?Have a look at the FrontController Pattern for the servlet. And the Facade Pattern for the business logic. You'll find these patterns online too, google for "J2EE patterns FrontController". You should end up at a SUN Site.
Other relevant patterns are explained too.
>
Thank you.
Any sharing will be appreciated.

Similar Messages

  • How to handle multiple request in the servlet

    how to handle multiple request in the servlet...
    Example:
    java forum...
    i'm login in the java forum at this time 1000 members make login in this....how happended in servlet?
    if we use thread how to implement in servlet ?

    Serlets are already threaded. The application container instantiates the servlet, then uses this instance in a new thread for every use.
    This is the reason that you should use (almost) no instance variables in a Servlet, but rather that (almost) everything should be local to the method.

  • How to handle FTP request in Servlet

    Hi,
    can anyone tell me how to handle FTP operations in Servlet? I mean to ask whether we can handle FTP request in Servlet.
    Thanks
    Subs

    Your servlet should extend from GenericServlet and not HttpServlet to handle ftp requests.

  • How to handle multiple requests to the same servlet at one time?

    Hi,
    I am new to Servlets. I have doubt regarding ... Handling multiple requests to a servlet at a time.
    If we send a single request to a servlet, as know that group of objects such as servlet, servletContext, servletConfig, request, response and etc are created in the server, And if 1000's of requests are sent to a same servlet at a time, and if server memory capacity is less, then 1000's of objects are created in a server which would be heavy burden to Server. How to handle the application and development in such situation?
    Kind regards,
    veerendra

    Hi veerendra reddy ,
    By default any web server can will have a thread pool to handle client req's.
    In your point also heavy burden to server you are telling that depends on this.
    we can configure this min & max size of this thread pool.
    by default it will be 0-1000 for tomcat server.
    I am not sure in which file this configuration will be.
    But I hope in server.xml or some xml file consists this info.
    If You what you can edit accordingly. to overcome your heavy burden to server.
    Thanks & Regards
    Nagendra

  • Tomcat 4.1.2 default servlet request handling

    I have a problem which seems to be pretty common. I have a servlet that I would like to make the default servlet in my webapp. I have mapped the servlet to <url-pattern>/</url-pattern>. I would like this servlet to handle all requests, EXCEPT, for those with static content (images, .html files, etc.). The problem it seems is this: The Tomcat default servlet, which is also mapped to "/", in the /conf/web.xml file handles all static content. When I make my servlet the default servlet in my app, it overrides the tomcat default servlet, thus no static content is served. There must be a soulution to this problem other than writing a jsp redirect file??????
    Thanks,
    Kevin

    You can write a servlet which extends the default FileServlet of the tomcat.
    and in the service method check if the reques is for *.jpg or *.html
    If YES call super.service(); and return;
    If NO continue your work..
    There must be a soulution to this problem other than
    writing a jsp redirect file??????Redirect !!! I guess it won't work. Redirect will again hit the servlet mapped with "/" .. and it goes on in a contnious loop.
    Hope this helps.

  • Converting emails to servlet requests; servlet responses to emails

    Hello,
    I had asked this question in the Servlet forum. They directed me to here.
    I've some servlet applications that posted by HTML forms with file attachements and other HTML fields.
    I want to add email support to my servlets. So, users should be able post and recieve their data by emails.
    But, I don't want to add email handling tasks to the current servlet applications. I need a middleware application between end users and my servlets that converts emails to servlet requests, and servlet responses to emails.
    Here are the steps:
    1- End user sends email with attachments.
    2- Emailed data is converted to servlet request by a middleware application.
    3- Servlet request is processed by my current servlets.
    4- Servlet response is sent to middleware application.
    5- Middleware application emails servlet reponse to end user as email.
    If I can do that, I will not have to add emailing codes to my current servlets. do you know a product doing that ? Or, can you give me a direction ?
    thanks...

    Have you looked into JMS?

  • Xml forms - Error handling HTTP request

    Hello,
    We have installed portal 6.0
    I've made some forms with the xml form builder, imported them into IViews (KM navigation IView) and assigned the IViews to a role
    The Iview shows the RenderListItem form
    Every Iview (RenderListItem form) has a "new item" button
    Every record of the iview has a edit-delete action
    When I press the "new item" button or the edit button (or save button) I get the following error:
    Error handling HTTP request. Check the log file for more information.
    java.lang.RuntimeException: Context is unavailable!
         at com.sap.pct.plm.dmsrmconnectorforkm.DMSRMConnection.(DMSRMConnection.java:83)
         at com.sap.pct.plm.dmsrmconnectorforkm.DMSRMR3FunctionCalls.getGenericValueList(DMSRMR3FunctionCalls.java:6532)
         at com.sap.pct.plm.dmsrmconnectorforkm.DMSRMR3FunctionCalls.getLaboratoryList(DMSRMR3FunctionCalls.java:6360)
         at com.sap.pct.plm.dmsrmconnectorforkm.DMSRMLaboratoryValueProvider.getAllowedValues(DMSRMLaboratoryValueProvider.java:79)
         at com.sapportals.wcm.service.propertyconfig.config.MetaName.getAllowedValues(MetaName.java:781)
         at com.sapportals.wcm.service.propertyconfig.config.MetaName.allowedValueIterator(MetaName.java:472)
         at com.sapportals.wcm.service.xmlforms.ResourceProperties.appendAllowedValues(ResourceProperties.java:713)
         at com.sapportals.wcm.service.xmlforms.ResourceProperties.mergeProperty(ResourceProperties.java:682)
         at com.sapportals.wcm.service.xmlforms.ResourceProperties.mergePropertiesIntoDom(ResourceProperties.java:611)
         at com.sapportals.wcm.service.xmlforms.transformation.HtmlGenerator.getHtmlStream(HtmlGenerator.java:116)
         at com.sapportals.wcm.service.xmlforms.transformation.Transformation.render(Transformation.java:391)
         at com.sapportals.wcm.service.xmlforms.transformation.Transformation.render(Transformation.java:336)
         at com.sapportals.wcm.service.xmlforms.transformation.Transformation.render(Transformation.java:188)
         at com.sapportals.wcm.app.xmlforms.EditServlet.doGetAction(EditServlet.java:165)
         at com.sapportals.wcm.app.xmlforms.XFBaseServlet.doGet(XFBaseServlet.java:241)
         at com.sapportals.wcm.app.xmlforms.XFBaseServlet.doPost(XFBaseServlet.java:261)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sapportals.wcm.app.xmlforms.XFBaseServlet.service(XFBaseServlet.java:134)
         at com.sapportals.wcm.portal.proxy.PCProxyServlet.service(PCProxyServlet.java:331)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sapportals.portal.prt.core.broker.ServletComponentItem$ServletWrapperComponent.doContent(ServletComponentItem.java:110)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
         at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:646)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
         at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:545)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    This error doesn't always appear, there are times that the portal works correct and when I can add items, edit them and save my changes
    Does anyone have an idea where the error comes from? In what direction I have to search? How I can solve this problem?
    Thanks in advance, points will be distributed for helpfull answers

    Hi,
    I didn't place a save button on the RenderListItem but on the Edit form so this couldn't be the issue...
    I solved the error I got when I wanted to save my form
    The edit and delete buttons also work correct...
    I only get the error mentioned above when I press the "new form" button, I created that button with the CreateXMLForms action group that I added in my Collection Grid renderer settings (option collection command group)
    Then I changed my form availibility (System administration ->system configuration ->KM->CM->form based publishing->form availibility->folder settings)
    I created the following folder settings:
    foldername//priority//path//forms to exclude//forms to include
    library//10 //documents/testlibrary//Smarties, QnA,SAP_APP_News//library
    News //10 //documents/News//smarties, library, QnA// SAP_APP_News
    QnA //10 //documents/testQuestionAnswer// SAP_APP_News, smarties, library //QnA
    Smarties //10 /documents/testSmarties
    Did I do something wrong here? What can cause this error? In what direction should I search?

  • Limit of Weblogic for servlet requests

              Hi,
              Could someone tell me what is the limit on the number of servlet requests per
              second a weblogic server
              can handle.. We are facing some performance issue.. Would like to know the limit
              that WLS server can process
              at a time.
              Thanks in advance,
              rgds, rams
              

    Thanks Robert - I had the same results on 4-way E420 (and slightly less for
              session-less JSP). Don't you think it can be potentially useful to have some
              'baseline' results to be available for some most popular hardware/JVM configurations ?
              (Of course, these numbers have nothing to do with an actual application performance, but
              they are useful in establishing the 'upper limit' - something like HelloWorld servlet,
              HelloWorld JSP with session=false, HelloWorld JSP with sessions enabled).
              Robert Patrick <[email protected]> wrote:
              > Hmm... This is a loaded question. It comes down to what type of hardware is the
              > server running on, what is the servlet doing, what does your network look like, and
              > on and on. I can tell you that with a version of WLS 5.1, I was able to get approx.
              > 1100 to 1200 "page views per second" from a HelloWorld servlet running on a 4-way
              > Sun E420 using Mercury's LoadRunner software running on multiple NT machines. For
              > this hardware configuration and server version, I would use this as the upper limit
              > for a single instance...
              > Rams wrote:
              >> Hi,
              >>
              >> Could someone tell me what is the limit on the number of servlet requests per
              >> second a weblogic server
              >> can handle.. We are facing some performance issue.. Would like to know the limit
              >> that WLS server can process
              >> at a time.
              >>
              >> Thanks in advance,
              >>
              >> rgds, rams
              Dimitri
              

  • Cannot handle the request because a modal dialog or alert is active in indesign CS6, C#

    Hello,
    I'm having bunch of indesign CS6 files. I have written piece of code in C# which opens indesign files & exports those files to xml & pdf. If I run the exe, it works properly. But when I schedule it via task scheduler (runs at point of time without
    human intervention), it throws an error "Cannot handle the request because a modal dialog or alert is active" which results in failure of my process. This error keeps me annoying. So how to over come this error?
    Any help would be grateful. Thanks in advance.

    Hello,
    Thank you for your post.
    But your issue is out of support range of VS General Question forum which mainly discusses the usage issue of Visual Studio IDE such as
    WPF & SL designer, Visual Studio Guidance Automation Toolkit, Developer Documentation and Help System
    and Visual Studio Editor.
    Because your issue is involved to InDesign CS6 which is third-party, we don’t support it, so I will move it to Off-topic forum.
    Thanks,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Does a filter instance handle multiple requests?

    A web container creates a thread to handle each request so that a servlet instance handles multiple requests at the sime time. What about a filter instance? Does a filter instance also handles
    multiple requests? or it handles only one at a time

    Here's a quote from the Servlet spec (2.3):
    After deployment of the web application, and before a request causes the container
    to access a web resource, the container must locate the list of filters that must be
    applied to the web resource as described below. The container must ensure that it
    has instantiated a filter of the appropriate class for each filter in the list, and called its
    init(FilterConfig config) method..............
    Only one instance per filter declaration in the deployment descriptor is
    instantiated per Java virtual machine of the container.
    So, if the servlet engine follows the spec, there should only be one instance.

  • [REP_57042]: The repository agent couldn't handle the request

    Hello,
    When trying open a folder in informatica repository i am facing error like:
    [REP_57042]: The repository agent couldn't handle the request because of following error : Bad object type.
    ORA-00936: missing expression
    Database driver error...
    Function Name
    While connecting to SDE_SBL_Vert_80_Adaptor folder facing this issue.
    Infa Version 7.1.4 .
    Any inputs..?
    Rm

    Hi,
    I am also facing same issue ,
    when i open a particular folder in informatica Designer or Repo manager i am getting same error "[REP_57042]: The repository agent couldn't handle the request because of following error : Bad object type ".
    Any help is appreciated
    Thanks&Regards
    Sree
    Edited by: user9223231 on Mar 10, 2010 10:31 PM

  • UCCX 8.0.2 - error while handling the request

    Hi Guys,
    My Customer have UCCX 8.0.2. He needed did change prompt and when He try to do upload the new script, appear the message: "error while handling the request". Any have idea who solve this problem?
    Thanks,
    Wilson                 

    I saw this before on 8.0.2, I had to delete the prompt/script/document and the upload it again (instead of overwriting it). I believe this was fixed in SU4.
    Edit: this is the bug id - CSCtq23837 (unable to overwrite scripts) - resolved in 8.0(2) SU4
    Brian
    Please rate helpful posts

  • Can't do online banking. Get error message. "The requested URL /Summary.cgi was not found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

    I can't do online banking. When I try to open the page I get error "The requested URL /Summary.cgi was not found on this server.
    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

    Hi,
    These blog posts might help debug problem
    Oracle APEX: Got a 404 Not Found? | Inside Oracle APEX by Patrick Wolf
    daust_de :: Oracle XE / APEX: Troubleshooting the 404-not found error on XE
    Regards,
    Jari

  • Servlet request terminated with IOException:java.io.IOException: There is no process to read data written to a pipe.

    Hi,
    I am getting this following error. Could anyone please throw some light.
    Thanks
    Nilesh
    <HTTP> Servlet request terminated with IOException:
    java.io.IOException: There is no process to read data written to a pipe.
         at java.net.SocketOutputStream.socketWrite(Native Method)
         at java.net.SocketOutputStream.write(SocketOutputStream.java(Compiled Code))
         at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java(Compiled
    Code))
         at weblogic.servlet.internal.ResponseHeaders.writeHeaders(ResponseHeaders.java(Compiled
    Code))
         at weblogic.servlet.internal.ServletResponseImpl.writeHeaders(ServletResponseImpl.java(Compiled
    Code))
         at weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutputStreamImpl.java(Compiled
    Code))
         at weblogic.servlet.internal.ServletOutputStreamImpl.finish(ServletOutputStreamImpl.java(Compiled
    Code))
         at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java(Compiled
    Code))
         at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java(Compiled
    Code))
         at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java(Compiled
    Code))
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)

    I forgot to mention.
    I am using Weblogic 5.1 with SP 9
    Nilesh
    "Nilesh Shah" <[email protected]> wrote:
    >
    Hi,
    I am getting this following error. Could anyone please throw some light.
    Thanks
    Nilesh
    <HTTP> Servlet request terminated with IOException:
    java.io.IOException: There is no process to read data written to a pipe.
         at java.net.SocketOutputStream.socketWrite(Native Method)
         at java.net.SocketOutputStream.write(SocketOutputStream.java(Compiled
    Code))
         at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java(Compiled
    Code))
         at weblogic.servlet.internal.ResponseHeaders.writeHeaders(ResponseHeaders.java(Compiled
    Code))
         at weblogic.servlet.internal.ServletResponseImpl.writeHeaders(ServletResponseImpl.java(Compiled
    Code))
         at weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutputStreamImpl.java(Compiled
    Code))
         at weblogic.servlet.internal.ServletOutputStreamImpl.finish(ServletOutputStreamImpl.java(Compiled
    Code))
         at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java(Compiled
    Code))
         at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java(Compiled
    Code))
         at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java(Compiled
    Code))
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)

  • How can i send xml file with a http servlet request

    Hi
    Please tell me how can I send a xml file into http servlet request.
    I have a servlet(action) java file.From this servlet I have generate a xml file. Now I need to send that xml file to another servlet with http servlet request object.
    Dave.

    When you say you have generated an XML file what do you mean?
    Is it a file stored on disk? Then pass the file path as a string to the servlet.
    Is it stored in memory as an object? The pass a reference to the object to the servlet.
    Or are you asking how to communicate between servlets?
    Look in the JavaDocs for the RequestDispatcher class. You can use this class to forward the request to another servlet. Data can be passes using the RequestDispatcher by storing it as attributes using the request getAttribute and setAttribute methods. Also described in the JavaDOcs.
    http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/RequestDispatcher.html

Maybe you are looking for