Servlet cluster, Object cluster & Firewall

          Hi,
          WLS 5.1 have a firewall restriction : no firewall between the servlet cluster and the object cluster. Is this restristion stay in WLS 6.0 ?
          Thanks.
          Ernest Remanjon
          Related documentation: Using Weblogic server clusters, version 1.1, October 2000, pg 3-19.
          

Hi,
          This issue has come up several times -- hopefully, we will update our documentation to clarify the issues.
          The answer is that WLS (i.e., any version) does not care about firewalls in general, what it cares about are any load-balancing and/or network
          address translation features of the firewalls. Let's take the easy one first.
          Network-address translation issues
          =========================
          WebLogic uses the IP address of the machine where the server is running to pass information back to the caller (e.g., the RMI stub has
          information about the location of the object, the Session ID has information encoded in it about the location of the HttpSession object).
          Therefore, if the caller uses a different IP address (the one that maps to the firewall) than the physical IP address of the machine where the
          server is running, you need to tell WebLogic what the "external" IP address is so that it will use this when encoding location information. I
          don't remember exactly when this capability was added but you control it via the weblogic.system.DNSName property in later versions of the
          product.
          Load-balancing issues
          ================
          WebLogic offers the capability of using stateful objects -- objects that reside on a particular server in the cluster. The information about
          the location of these stateful objects is passed back to the caller so that the callers next request can be routed back to the correct
          location. If, there is some network device between the caller and the server that causes the request to be routed to a server other than the
          one containing the object, this will cause the application not to work.
          For example, I have a stateful session bean instance residing in Server A in my cluster for a particular caller. However, I have set my
          weblogic.system.DNSName property in my server to map to the IP address of my load-balancing hardware device so that the stub sends the caller's
          request to the load-balancer instead of Server A. Now, if the load-balancer (for whatever reason) decides to route the request to some other
          server in my cluster (i.e., not Server A), the call is going to fail because the server receiving the call has no knowledge of the stateful
          session bean instance.
          Therefore, in whatever architecture you choose, you need to make sure that you do not use a hardware load-balancer (or even DNS round-robining)
          at the point where calls must be routed to a particular server. There are a couple of popular configurations, I will start with the one I
          always recommend to my customers first.
          Internet ---> firewall and/or hardware load-balancer ---> Web (Proxy) Servers ---> firewall ----> WLS Cluster (Servlets/JSPs and EJBs)
          The one you are describing can be done multiple ways, none of which I recommend unless you have some outstanding reason for needing this
          architecture.
          Internet ---> firewall and/or hardware load-balancer ---> Web (Proxy) Servers ---> WLS Cluster (Servlets/JSPs) ---> firewall ---> WebLogic
          Cluster (EJBs)
          Internet ---> firewall and/or hardware load-balancer ---> Web (Proxy) Servers ---> firewall ----> WLS Cluster (Servlets/JSPs) ---> firewall (or
          not) ---> WebLogic Cluster (EJBs)
          Hope this clarifies the issues,
          Robert
          Ernest Remanjon wrote:
          > Hi,
          >
          > WLS 5.1 have a firewall restriction : no firewall between the servlet cluster and the object cluster. Is this restristion stay in WLS 6.0 ?
          >
          > Thanks.
          >
          > Ernest Remanjon
          >
          > Related documentation: Using Weblogic server clusters, version 1.1, October 2000, pg 3-19.
          

Similar Messages

  • Servlet cluster problem

    I am having trouble with a wls6.1 cluster. I am trying write a pdf out
              via a servlet. When I run the following code with the cluster turned
              off I have no problems. If I turn it on the servlet is returning no
              data. I am including the servlet and the stack trace in case someone
              can help. GenericFileObject.getTheFile returns a byte array.
              Jeff
              public void service(HttpServletRequest request, HttpServletResponse
              response) throws ServletException, IOException {
              DataOutputStream activityreportOut = new
              DataOutputStream(response.getOutputStream());
                        try {
                        HttpSession session=request.getSession(true);
                        response.setContentType("application/pdf");
                   String fileid = request.getParameter("fileid");
              String type=request.getParameter("type");
                        byte[] buffer;
                   ClientFacadeHome cfhome = (ClientFacadeHome)
                   EJBHomeFactory.getInstance().getBeanHome(Constants.CLASS_CLIENT_FACADE,
              Constants.JNDI_CLIENT_FACADE);
                   ClientFacade cf= cfhome.create();
                        GenericFileObject file =(GenericFileObject)
              cf.getFile(fileid,type);
                   buffer =(byte[]) file.getThefile();
                   activityreportOut.write(buffer);
              catch (Exception e){
                   e.printStackTrace();
              activityreportOut.flush();
              java.io.IOException: Broken pipe
              at java.net.SocketOutputStream.socketWrite(Native Method)
              at java.net.SocketOutputStream.write(Unknown Source)
              at weblogic.servlet.internal.ChunkUtils.writeChunkTransfer(ChunkUtils.java:189)
              at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:165)
              at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:248)
              at weblogic.servlet.internal.ChunkOutput.checkForFlush(ChunkOutput.java:306)
              at weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:197)
              at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:121)
              at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:155)
              at java.io.DataOutputStream.write(Unknown Source)
              at java.io.FilterOutputStream.write(Unknown Source)
              at com.bi.micardis.security.clientaction.ActivityAndScriptServlet.service(ActivityAndScriptServlet.java:41)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              

              "Subir Das" <[email protected]> wrote:
              >So, Applet#1 will always talk to the servlet hosted by WLInstance#1 and
              >Applet#2
              >will always talk to the servlet hosted by WLInstance#2.
              This statement is not entirely true.
              Suppose WLInstance#1 were to be brought down (for whatever reason), Applet#1 will
              then talk to servlet hosted by WLInstance#2.
              Server pinning could be modified by different load balancing algorithms, configurable
              via containers (or hardware).
              So don't count on which servlet instance your applet is going to be served by.
              Instead consider to give a second look into the design of the servlet data structure
              (object):
              1.Read from data store, if it has been persisted.
              2.If the data is client related then consider sticking the data into session, which
              would then replicate to other WL instances.
              3.Stateless EJB in a cluster ? Don' know much about this(yet).
              My 2 cents..Good luck.
              Rama
              

  • Servlet applet object io streams

    hi! i have an applet and servlet which communicate through objectoutputstreams.
    here's part of my applet code found in the init method:
    hostServlet = new URL( "http://localhost:8080/scheduler/servlet/EditSchedule" );
    hostConnection = (HttpURLConnection)hostServlet.openConnection();
    hostConnection.setRequestMethod( "POST" );
    System.out.println( "connected" );
    //set headers
    hostConnection.setDoInput( true );
    hostConnection.setDoOutput( true );
    hostConnection.setUseCaches( false );
    hostConnection.setDefaultUseCaches( false );
    hostConnection.setRequestProperty( "Content-Type", "application/x-java-serialized-object" );
    //stream to servlet just to specify that we're using post not get
    oos = new ObjectOutputStream( hostConnection.getOutputStream() );                                      
    oos.writeObject( "inside" );                                                
    oos.flush();
    oos.writeObject( "inside2" );
    oos.flush();
    //get objects being passed by servlet
    ooi = new ObjectInputStream( hostConnection.getInputStream() );
    here's part of my servlet code in the doPost() method:
    ObjectOutputStream oos = new ObjectOutputStream( response.getOutputStream() );
    ObjectInputStream ois = new ObjectInputStream( request.getInputStream() );
    response.setContentType( "application/x-java-serialized-object" );
    oos.writeObject( object );               
    oos.flush(); 
    oos.close();     
    //read objects
    FileOutputStream fw = new FileOutputStream( "c:\\objectsRead.txt" );
    ObjectOutputStream objectFw = new ObjectOutputStream( fw );
    objectFw.writeObject( "from servlet" );
    objectFw.flush();                                 
    String inside = (String)ois.readObject();
    objectFw.writeObject( inside );
    objectFw.flush();
    String outside = (String) ois.readObject();
    objectFw.writeObject( outside );
    objectFw.flush();
    objectFw.close();both the inside and inside2 objects get written to my textfile. Although, in my applet, if i outputted inside2 after creating the objectinputstream, only inside1 gets written. This is my problem. I have to write back to the servlet way passed the ooi instantiation of the applet. Specifically, in an event handler outside the init method.
    any help would be greatly appreciated! =)

    another weird thing that i found out.
    when i use the syntax:
    oos.writeObject( "something" );
    -->it gets passed to the servlet while
    String str = "something";
    oos.writeObject( str );
    -->doesn't get passed.
    hmm....
    i tried setting the content type to application/octet-stream but still nothing.

  • Servlet Applet object communication problem???!!!

    Hy folks,
    I need to validate the ability of complex Servlet Applet communication an run into my first pb right at the beginning of my tests. I need to have around 200 Applet clients connect to my servlet and communicate by ObjectInput and ObjectOutput streams. So I wrote a simple Servlet accepting HTTP POST connections that return a Java object. When the java Applet get instantiated, the Object Stream communication workes fine. But when the Applet tries to communicate with the servlet after that, I can not create another communication session with that Servlet, instead I get a 405 Method not allowed exception.
    Summarized:
    - Applet init() instantiate URLConnection with Servlet and request Java object (opening ObjectInput and Output Stream, after receaving object, cloasing streams).
    - When I press a "get More" button on my Applet, I am not able to instantiate a new URLConnection with my servler because of that 405 exception, WHY???
    Here my Servlet code:
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
             ObjectInputStream inputFromApplet = null;
             ArrayList transmitContent = null;       
             PrintWriter out = null;
             BufferedReader inTest = null;
             try{               
                   inputFromApplet = new ObjectInputStream(request.getInputStream());           
                     transmitContent = (ArrayList) inputFromApplet.readObject();       
                     inputFromApplet.close();
                     ArrayList toReturn = new ArrayList();                 
                     toReturn.add("One");
                     toReturn.add("Two");
                     toReturn.add("Three");
                     sendAnsweredList(response, toReturn);                 
             catch(Exception e){}        
         public void sendAnsweredList(HttpServletResponse response, ArrayList returnObject){
             ObjectOutputStream outputToApplet;    
              try{
                  outputToApplet = new ObjectOutputStream(response.getOutputStream());          
                  outputToApplet.writeObject(returnObject);
                  outputToApplet.flush();           
                  outputToApplet.close();              
              catch (IOException e){
                     e.printStackTrace();
    }Here my Applet code:
    public void init() {         
             moreStuff.addActionListener(new ActionListener(){
                  public void actionPerformed(ActionEvent e){
                       requestMore();
             try{
                  studentDBservlet = new URL("http://localhost/DBHandlerServlet");              
                  servletConnection = studentDBservlet.openConnection();      
                   servletConnection.setUseCaches (false);
                   servletConnection.setDefaultUseCaches(false);
                   servletConnection.setDoOutput(true);
                   servletConnection.setDoInput(true);
                   ObjectOutputStream outputToApplet;
                 outputToApplet = new ObjectOutputStream(servletConnection.getOutputStream());          
                 outputToApplet.writeObject(new ArrayList());
                 outputToApplet.flush();           
                 outputToApplet.close(); 
                   ObjectInputStream inputFromServlet = new ObjectInputStream(servletConnection.getInputStream());
                   ArrayList studentVector = (ArrayList) inputFromServlet.readObject();
                   area.setText("Success!\n");
                   for (int i = 0; i<studentVector.size(); i++) {
                        area.append(studentVector.get(i).toString()+"\n");
                  inputFromServlet.close();
                  outputToApplet.close();             
              catch(Exception e){
                   area = new JTextArea();
                   area.setText("An error occured!!!\n");
                   area.append(e.getMessage());
            getContentPane().add(new JScrollPane(area), BorderLayout.CENTER);
            getContentPane().add(moreStuff, BorderLayout.SOUTH);
        private void requestMore(){
             try{              
                  studentDBservlet = new URL("http://localhost/DBHandlerServlet");                             
                  servletConnection = studentDBservlet.openConnection(); 
                   ObjectInputStream inputFromServlet = new ObjectInputStream(servletConnection.getInputStream());
                   ArrayList studentVector = (ArrayList) inputFromServlet.readObject();
                   area.setText("Success2!\n");
                   for (int i = 0; i<studentVector.size(); i++) {
                        area.append(studentVector.get(i).toString()+"\n");
              catch(Exception e){               
                   area.setText("An error occured2!!!\n");
                   area.append(e.getMessage());
        }Can someone help me solv this issue please, this is my first Applet Servlet work so far so I have no idea on how to solve this issue.

    Sorry folks, just found my error. Forgot about the ObjectInputStream waiting on the Servlet side, so of course had a dead look...
    Sorry!

  • Applet-servlet communication, object serialization, problem

    hi,
    I encountered a problem with tomcat 5.5. Grazing the whole web i didn't find any solution (some guys are having the same problem but they also got no useful hint up to now). The problem is as follows:
    I try to build an applet-servlet communication using serialized objects. In my test scenario i write a serialized standard java object (e.g. a String object) onto the ObjectOutputStream of the applet/test-application (it doesn't matters wheter to use the first or the latter one for test cases) and the doPost method of the servlet reads the object from the ObjectInputStream. That works fine. But if i use customized objects (which should also work fine) the same code produces an classnotfound exception. When i try to read and cast the object:
    TestMessage e = (TestMessage)objin.readObject();
    java.lang.ClassNotFoundException: TestMessage
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    ...That seems strange to me, because if i instantiate an object of the same customized class (TestMessage) in the servlet code, the webappclassloader doesn't have any problems loading and handling the class and the code works fine!
    The class is located in the web-inf/classes directory of the application. I've already tried to put the class (with and without the package structure) into the common/classes and server/classes directory, but the exception stays the same (I've also tried to build a jar and put it in the appropriate lib directories).
    I've also tried to catch a Throwable object in order to get information on the cause. But i get a "null" value (the docu says, that this will may be caused by an unknown error).
    I've also inspected the log files intensively. But they gave me no hint. Until now I've spend a lot of time on searching and messing around but i always get this classnotfound exception.
    I hope this is the right place to post this problem and i hope that there is anyone out there who can give me some hint on solving this problem.
    Kindly regards,
    Daniel

    hi, thanks for the reply,
    all my classes are in the web-inf/classes of the web-app and have an appropriate package structure. thus the TestMessage class is inside a package.
    i tried some names for the testclass but it didn't matter. the exception stays the same. I also tried to put the jar in the common/lib but the problem stays.
    Well the problem with loaded classes: As i mentioned in the post above i can instantiate an object of TestMessage in the code without any problems (so the classloader of my webapp should know the class!!)
    only when reading from the objectinputstream the classloader doesn't seem to know the class?? maybe theres a parent classloader resposible for that and doesn't know the class?
    strange behaviour...
    p.s. sending the same object from the servlet to the client works well
    regards
    daniel
    Message was edited by:
    theazazel

  • Servlet write object error!

    "I have a applet communicate with servlet case and sending objects back and forth. when running at appletviewer everything looks fine, however, if i run through browser the servlet will generate this kind of error:
              <Jul 10, 2002 5:25:54 PM CDT> <Error> <HTTP> <Servlet execution in servlet context "WebAppServletContext(3585651,spcweb,/spcweb)" failed, java.net.SocketException: Software caused connection abort: socket write error
              java.net.SocketException: Software caused connection abort: socket write error
                   at java.net.SocketOutputStream.socketWrite0(Native Method)
                   at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
                   at java.net.SocketOutputStream.write(SocketOutputStream.java:126)
                   at weblogic.servlet.internal.ChunkUtils.writeChunkTransfer(ChunkUtils.java:189)
                   at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:165)
                   at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:248)
                   at weblogic.servlet.internal.ChunkOutputWrapper.flush(ChunkOutputWrapper.java:152)
                   at weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutputStreamImpl.java:119)
                   at weblogic.servlet.internal.ServletOutputStreamImpl.commit(ServletOutputStreamImpl.java:446)
                   at weblogic.servlet.internal.ServletOutputStreamImpl.finish(ServletOutputStreamImpl.java:491)
                   at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:989)
                   at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2209)
                   at weblogic.kernel.ExecuteThread.e
              

    Hi,
    You could convert int to Interger Object using,
    Interger in = new Interger(i);
    where i is of type int.
    Refer to http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Integer.html
    Raja

  • Applet/Servlet/serialized objects/HTTPS/Intranet problem

    We've got a Webapplication with[b] applets on the client and servlets on the server side.The Applet send serialized Objects over HTTPS (SSL) to the servlet. The servlet does some business logic and send the answer the same way back.
    In all our tests and in the most cases the application works without any problems.
    But in some Intranet environments we get occasionally (not definitely reproducable) the following error:
    <Oct 1, 2004 8:26:00 AM>  [AnmeldenService] {Service-readThreadAks-AnmeldenServiceThread}
    java.io.EOFException: Expecting code
    at java.io.ObjectInputStream.peekCode(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at com.dsh.egb.aks.betrieb.rclt.service.ServiceThread$2.run(ServiceThread.java:222)
    at java.lang.Thread.run(Unknown Source)Has anybody an idea how to further analyse this problem?
    Thanks,
    Mark
    We use JRE/JDK 1.3.1_10.

    Here some more Information about our environment:
    Server: Apache 1.3.26 / Openssl 0.9.6d /WinNT 4.0 /HTTP Redirect to Tomcat 4.0.1/ JDK1.3.1_10/ WinNT 4.0
    Client: Plugin 1.3.1_10/Internet Explorer 6.0 (SSL)/Win NT 4.0

  • Servlets and Object Serialization

    Say, you have a Servlet which sends Objects across an ObjectOutputStream which is obtained from its corresponding HttpServletResponse.
    res.getOutputStream().writeObject(myObject);
    From what I observe it is impossible to obtain an ObjectInputStream from the URLConnection of the calling servlet until it is finished processing.
    Does anyone know if there is a way to do this?
    URLConnection conn = _myUrl.openConnection();
    conn.setDoOutput(false);
    conn.setUseCaches(false);
    conn.setRequestProperty("Content-Type", "application/octet-stream");
    ObjectInputStream in = new ObjectInputStream(conn.getInputStream());
    System.out.println("This won't get called until the calling Servlet has finished processing, is it possible to retrieve before???");
    String s = in.readObject().toString();

    hi , I made a similar query some time ago and came up with the following solution.
    serverUrl_ = new URL(url_);
                   HttpURLConnection con_ = (HttpURLConnection)serverUrl_.openConnection();
                   con_.setRequestMethod("POST");
                   con_.setDoOutput(true);
                   con_.setDoInput(true);
                   con_.setUseCaches(false);
                   ObjectOutputStream out_ = new ObjectOutputStream(con_.getOutputStream());
                        out_.writeObject(new String("a test example to string"));
    The servlet would read this in as follows:
         protected void doPost(HttpServletRequest request_, HttpServletResponse response_){
              try{
                   //get required io streams
                   ObjectInputStream ois_ = new ObjectInputStream(request_.getInputStream());
                   ObjectOutputStream object_ = new ObjectOutputStream(response_.getOutputStream());
                   String test_ = (String)ois_.readObject();
                   if(test_ instanceof String){
                        System.out.println("String value is: "+test_);
                   } else {
                             System.out.println("error reading string")
              } catch(Exception ioe){
                   ioe.printStackTrace();
    this should give you the basic idea how to pass objects through http.
    Hope it helps
    rob

  • Servlet and Object Serialization

    Hi,
    I am developing a routing server in Java
    2 Instances of the same server will be running in 2 different data centers.
    The servers have a Jetty server embedded with a Servlet inside.
    Server 1 will use a GET method to talk to the Server 2 -> Servlet which will write the state of an object back which will read by Server 1 and reconstruct the object back.
    Do you find any issues in Object Serialization/DeSerialization in the Servlet.
    What are the factors that I need to consider in this case?
    Regards,
    Jana

    Make sure that your servlet handles the transaction in the same thread that doPost() or doGet() is called in.
    I ended up porting some old ServerSocket based code to a servlet, and was handing off the request and response objects to a handler thread on the server side. I ended up with a ton of intermittent errors like this.
    Once I started handling the transactions in the same thread things worked heartbreakingly well.

  • Servlets + Seesion objects

    Hi
    How can u retrieve a session object in a servlet. And how can u store an object back on the session in that servlet?
    Has anyone got any sample code - that will be much appreciated.
    many thanx
    <y>

    HttpSession session = request.getSession();
    String value = session.getAttribute("key");
    or
    session.setAttribute("key", "value");

  • Servlet Session Object

              I need to get the lastAccessTime of the servlet which I have deployed on Weblogic
              7.0.
              I have found that by using ServletSessionRuntimeMBean interface which has a method
              called getTimeLastAccessed, I can get the same.
              I am not able to get the same. Can any one sujject the way I have to go for this.
              

    Hello Linus,
    Actually, you would want to retrieve the necessary objects from your servlet context
    and then pass them along to your session EJBs. It's not necessary to pass the
    entire ServletContext object to your session bean. You should wrap the values
    in DTOs (Data Transfer Objects / Value Objects) and pass them along to your session
    beans. Also, it's not good to couple your EJBs with Servlets, as they may be eventually
    accessed from standalone clients in the future. For more information on this design
    pattern, please see the following link:
    http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html
    Best regards,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    "Linus Nikander" <[email protected]> wrote:
    Is it possible to accesss objects stored in a Servlet session context
    from
    an EJB ? If so, how ?
    //Linus Nikander - [email protected]

  • Servlet session objects shariing same session objects? Help!

    Hi all,
              Is it possible for two different HttpSessions to share the same session objects.
              We have a java class that we store in the session. This class calls a stateless Session EJB to do quoting for an insurance policy. It seems that two different clients are sharing the same instance of the EJB because they are each modifying the other's quotes.
              I have checked the session id for each client and have found that they are different. I then changed the EJB to be stateful but I received the same results.
              I'm not sure where to go from here.
              Any help would be greatly appreciated.
              Thanks in advance.
              Greg

    The session object is declared through a useBean-directive and has session-scope. We are using WLS sp 4

  • Front-end/back-end cluster question

    [att1.html]
              

    Patrick Power wrote:
              > Thanx for your reply Prasad. I was surprised none of the Bea engineers
              > wished to touch this one. What do you suppose is up with that? Either
              > they are too busy, or possibly my question is too dumb.
              >
              I am from BEA so its not that we are not responding ;).
              >
              > Back to the issue: Yes, we will NES bridge/proxy into servlet front-end
              > cluster, potentially with Directors on the very front of the topology for
              > balancing. Your diagram as such:
              >
              > <Netscape/IIS/Apache/WLS FRONT END> ----- <CLUSTER OF WEBLOGIC SERVER
              > > SERVING SERVLETS> --- <CLUSTER OF WEBLOGIC SERVERS SERVING EJB>
              >
              > 1) Does <Netscape/IIS/Apache/WLS FRONT END> mean NES with proxy shared lib,
              > with a WLS service definition into cluster in obj.conf? I assume yes.
              Yes.
              >
              > 2) I would assume that <CLUSTER OF WEBLOGIC SERVERS SERVING SERVLETS> would
              > need the WLS HttpClusterServlet to the <CLUSTER OF WEBLOGIC SERVERS SERVING
              > EJB> all the way in the back.
              No. I was splitting presentation logic (namely servlets and jsp) and business
              logic (ejb) into two layers. Again you don't have to split it into two. You can
              colocate them both together. You could use NES or IIS or Apache or WLS. You
              don't need HttpClusterServlet.
              Lets get this straight.
              1. You need our proxy plugin for failover and to load balance the request that
              are going to presentation logic.
              2. From presentation logic layer, when you talk to backend business logic
              providers (like ejb cluster), if you use stateless session beans we provide
              failover and load balancing. In future we will support clustered stateful
              session beans as well. Therefore you don't need load balancer here.
              3. HttpClusterServlet should run only in front of presentation logic cluster and
              also it supports http only.
              Hope this helps.
              - Prasad
              > The NES proxy would only proxy into the f/e
              > cluster, right? You're not suggesting an external proxy of some type, are
              > you? The HttpClusterServlet is for WLS cluster-to-cluster proxies.
              > 3) A load balancer between the wls f/e and wls b/e clusters? That doesn't
              > seem applicable here. Once again, it should be HttpClusterServlet for WLS
              > cluster-to-cluster proxies.
              > 4) "use two or three proxy servers to avoid single point of failure."
              > Hmmm, once again - are we talking the WLS HttpClusterServlet proxy? Well,
              > that's the inital question: Can I have more than one HttpClusterServlet
              > proxy in the front-end cluster, proxying to the back-end cluster?
              > Otherwise, internally from this WLS architecture perspective, it is a single
              > point of failure.
              >
              > An example: 10 instances in f/e cluster. can more than one of these
              > instances have the WLS HttpClusterServlet proxy to the b/e cluster? Or, are
              > there instances of WLS HttpClusterServlet proxy in all 10 f/e cluster
              > instances?
              >
              > Cheers, Pat
              >
              > Prasad Peddada <[email protected]> wrote in message
              > news:[email protected]...
              > >
              > >
              > > Patrick Power wrote:
              > >
              > > > I know that this topic was addressed to some degree here in an earlier
              > > > posting, but I still have a question regarding the architecture
              > > > design:
              > > >
              > > > If configuring a front-end cluster for servlets/sessions and a
              > > > back-end cluster for remote services -- you route requests to the
              > > > back-end using the WLS proxy servlet. ok, got that part.
              > >
              > > Not quite. The typical scenario is
              > >
              > > <Netscape/IIS/Apache/WLS FRONT END> ----- <CLUSTER OF WEBLOGIC SERVER
              > > SERVING SERVLETS> --- <CLUSTER OF WEBLOGIC SERVERS SERVING EJB>
              > >
              > > You don't proxy and serve servlets from the same server.
              > >
              > > >
              > > > The question: Is there a single instance of the wls proxy servlet in
              > > > the front-end cluster? Or, is it on every instance in the front-end
              > > > cluster? What is the failover mechanism, in the case of a single
              > > > instance of proxy servlet in the f-e cluster failing?
              > >
              > > To prevent that you need to use some kind of h/w or software load
              > > balancer and then use two or three proxy servers to avoid single point
              > > of failure.
              > >
              > > > Is it a single point of failure between the 2 clusters?
              > > >
              > > > Thanx in advance for your help.
              > > >
              > > > BTW, I think Wei, Kumar and the other Bea folks cruising this group
              > > > have been doing a bang-up job of providing badly-needed detail on this
              > > > subject area - material this largely absent from the documentation.
              > > > Good job.
              > > >
              > > >
              > >
              > > --
              > > Cheers
              > >
              > > - Prasad
              > >
              > >
              

  • Round Robin doesn't work in Bea Weblogic Cluster

    hello!
              we are using a weblogic (V5.1 SP8) cluster in the following configuration:
              2 Weblogic App-Servers as Servlet Containers.
              4 Weblogic App-Servers as EJB Containers.
              if a client connects to the first servlet - server, round robin between the
              4 EJB-servers behind doesn't work. It seems that the servlet-server is
              pinned to one EJB-server all the time.
              If we kill the second servlet-server as from now on round robin works in the
              EJB-server cluster like we expected.
              As we changed this configuration and also use an IPlanet webserver (one
              instance) with the weblogic proxy-plugin which connects to the
              servlet-cluster (2 instances)... round robin is working properly in the
              EJB-server cluster when the client connects to the IPlanet-server....
              what is the problem, why doesn't round robin work in the first
              configuration? any suggestions?
              Torsten Jenkner
              

    Okay, is it that the round-robining is not perfect (i.e., it doesn't send the
              first request to server1 and the second request to server2 and so on) or is it
              sending every request to one server?
              Torsten Jenkner wrote:
              > yes exactly Robert that's it!
              >
              > Torsten
              >
              > "Robert Patrick" <[email protected]> schrieb im Newsbeitrag
              > news:[email protected]...
              > > I don't understand this. Are you saying that with servlet node 1 or
              > servlet
              > > node 2 running by themselves that RR works fine but once you start both
              > > together, it does not?
              > >
              > > This sounds like a case for support...
              > > Robert
              > >
              > > Torsten Jenkner wrote:
              > >
              > > > > > it is always the same stub in our case. Also the round robin in the
              > EJB
              > > > > > cluster does with the same java classes but does not if the servlet
              > > > cluster
              > > > > > consits of two nodes. So it seems to be a configuration problem, but
              > > > which
              > > > > > one?
              > > > >
              > > > > Hmm.... I don't quite understand this last statement about the EJB
              > and
              > > > servlet
              > > > > cluster, could you explain a little more?
              > > > >
              > > > > Thanks,
              > > > > Robert
              > > > >
              > > >
              > > > if you use 2 servlet cluster nodes round robin between the
              > servlet-cluster
              > > > and the ejb-cluster doesn't work. if i kill the second servlet-node it
              > works
              > > > fine. so my thought was it has to be a configuration problem, because RR
              > > > does with one servlet-node. ok?
              > > >
              > > > Torsten Jenkner
              > >
              

  • How is object handled with servlets?

    Hi!
    This is probably a very basic question, but I need to know. Does a servlet treat objects differently from any other Java class?
    Consider you have the following class:
    public class ClassC {
         private String strName = "John";
         public String getName() {
              return strName;
         public void setName(String name) {
              strName = name;
    }Then we use a servlet to create a object of class ClassC:
         public void doGet(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
              String strFirstName= "Steve";
              ClassC c = new ClassC();
              c.setName("Lance");
              strFirstName = c.getName();
              response.setContentType("text/html");
              PrintWriter out = response.getWriter();
              out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
              out.println("<HTML>");
              out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
              out.println("  <BODY>");
              out.println("strFirstName = " + strFirstName);
              out.println("  </BODY>");
              out.println("</HTML>");
              out.flush();
              out.close();
         } My question is what �out.println("strFirstName = " + strFirstName);� will print in a server on the webb?
    Suppose you have a produced a ResultSet and you put that as a private variable in a class as in ClassC above. Suppose I use the same technique as in the doGet-method, and have methods that extract data from the ResultSet. Will each use user of the servlet get unique information or will every user get the same information?
    I think (and hope) that each user will get unique information. Is this correct?
    Regards
    Jonas

    As written... the object Class is local to to the doGet method. This means that each run of the doGet method gets its own instance of the object, and each user will get their own data.
    If strFirstName or c was declared as a class member, then all users would get the same data (potentially):
    //bad servlet:
      String strFirstName = "Steve";
      ClassC c;
      public void doGet(...) ... {
        c = new ClassC();
      }

Maybe you are looking for

  • Printing problem with .pdf

    27" iMac (2012), OS X 10.9.1, Canon MF4770n laser connected by ethernet cable through AirPort Extreme, HP C4200 connected directly via USB The Problem:  I received a .pdf file via e-mail and downloaded it.  It consisted of a series of forms in unknow

  • IMac won't keep system settings. Mac OS X version 10.6.5. New to this and need help. Thanks

    Just got my first iMac and am new to the Mac operating system. I figured out how to set it so I could connect to the internet and also set my wallpaper and screensaver to my liking.  After I shut it down and turned it on later, all of my setting were

  • Implementation of refurbishment process

    I want to implement this refurbishment process in already implemented site which does not have this process . Kindly advice me other than process what is to be done in the project . What is exactly do in mm do we need to upload all mm data again or o

  • Mapping JDBC lookup: Passing values to multiple fields at target

    Hi all i my scenario  i am using mapping JDBC lookup ,and it is working sucessfully. but i need to select 4 fields from lookups select query and passing it to 3 different target field at target MT. if i use Global container object methods,than only 1

  • Downloading pictures

    How do I download raw pictures from one's camera into Aperture? Is there something special I need to do? How will I print it out from my printer? Thanks!