tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Rowe <ichabo...@gmail.com>
Subject Re: jndi question
Date Thu, 25 Aug 2005 18:59:15 GMT
tomcat 5, and jdk 1.5

Brian Cook wrote:

>
> It has probablly already been stated before somewhere in this thread 
> but what versions of Tomcat and JDK are you using?
>
>
> Sean Rowe wrote:
>
>> yes, there is a file in the /conf/Catalina/localhost directory for my 
>> app
>>
>> Brian Cook wrote:
>>
>>> Sean,
>>>
>>> One thing that stands out in your message is that the conext.xml 
>>> file was placed in the META-INF folder.  Is it also in <<Tomcat 
>>> Folder>>/conf/Catalina/localhost/ as the module name?  i.e. If the 
>>> context path name of your webapp is "/seansApp" the context.xml file 
>>> should appear in this folder as seansApp.xml.
>>>
>>>
>>> The context.xml file is stored in META-INF during development but 
>>> needs to be placed in <<Tomcat Folder>>/conf/Catalina/localhost/ 
>>> folder for deployment with the file name of the context path.
>>>
>>>
>>>
>>>
>>> Sean Rowe wrote:
>>>
>>>> I have tried again using the method described in the url brian 
>>>> gave.  Here is the stack exception I'm receiving:
>>>>
>>>> *type* Exception report
>>>>
>>>> *message*
>>>>
>>>> *description* _The server encountered an internal error () that 
>>>> prevented it from fulfilling this request._
>>>>
>>>> *exception*
>>>>
>>>> javax.servlet.ServletException: Name java:comp is not bound in this 
>>>> Context
>>>>     
>>>> org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848) 
>>>>
>>>>     
>>>> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781) 
>>>>
>>>>     org.apache.jsp.test_jsp._jspService(org.apache.jsp.test_jsp:69)
>>>>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>>     
>>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) 
>>>>
>>>>     
>>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291) 
>>>>
>>>>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
>>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>>
>>>> *root cause*
>>>>
>>>> javax.naming.NameNotFoundException: Name java:comp is not bound in 
>>>> this Context
>>>>     org.apache.naming.NamingContext.lookup(NamingContext.java:769)
>>>>     org.apache.naming.NamingContext.lookup(NamingContext.java:152)
>>>>     javax.naming.InitialContext.lookup(InitialContext.java:351)
>>>>     com.transcriptionportal.utils.DBManager.init(DBManager.java:25)
>>>>     org.apache.jsp.test_jsp._jspService(org.apache.jsp.test_jsp:53)
>>>>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>>     
>>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) 
>>>>
>>>>     
>>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291) 
>>>>
>>>>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
>>>>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>>
>>>>
>>>> I have enclosed my server.xml, web.xml, context.xml (that i placed 
>>>> in my web/META-INF folder), and the class I'm using to make the 
>>>> connection.  Thanks again to everyone who has helped me so far.
>>>>
>>>> sean
>>>>
>>>> Allistair Crossley wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> He isn't using that method of configuration, that's just 1 option 
>>>>> of 3. He is nesting his Context definition within the server.xml 
>>>>> Host element. Although this is now scorned, it's still valid. The 
>>>>> 2 other methods are contextname.xml as you say, and also 
>>>>> META-INF/context.xml within the webapp itself. Allistair.
>>>>>
>>>>>  
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Brian Cook [mailto:bcook@printtime.com]
>>>>>> Sent: 23 August 2005 17:23
>>>>>> To: Tomcat Users List
>>>>>> Subject: Re: jndi question
>>>>>>
>>>>>>
>>>>>>
>>>>>> Ok but do you have the resource defined in context.xml?  If you 
>>>>>> go to <<Tomcat Dir>>/conf/Cataliana/localhost/ do you see a file 
>>>>>> with the name of the module ending with .xml?  If so is the 
>>>>>> resource defined in that file?  If not you need to add it.
>>>>>>
>>>>>> From the description it sounds like nothing in this set up has 
>>>>>> been done as was show on the example page.
>>>>>>
>>>>>> http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-resources
>>>>>> -howto.html
>>>>>>
>>>>>> If you use the code block that is shown, define that resource in 
>>>>>> web.xml and context.xml it will work.  But multiple postings 
>>>>>> latter it still sounds like the JNDI resource is not defined in 
>>>>>> context.xml and the code calling the JNDI resource differs 
>>>>>> greatly from the example provided.
>>>>>>
>>>>>>
>>>>>> Sean Rowe wrote:
>>>>>>  
>>>>>>
>>>>>>> The first post on this included the server.xml, and further     
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> down in the
>>>>>>
>>>>>>> page is the relevant part of web.xml ( i just double     
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> checked that ).  as
>>>>>>
>>>>>>> for context.xml, i have listed it in my webapp.xml file, as well 
>>>>>>> as server.xml as all other examples have suggested.  i then     
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> tried it in the
>>>>>>
>>>>>>> admin module, where it then put it in server.xml for me.      
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> i'm willing to
>>>>>>
>>>>>>> try anything at this point, though, if you have any suggestions.
>>>>>>>
>>>>>>> as for my post not being jndi specific, i applogize if     
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> that's the case. 
>>>>>>
>>>>>>> i'm not really familiar with jndi....but when I did a search for 
>>>>>>> 'connection pooling', jndi seemed to be what everyone     
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> suggested i use. 
>>>>>>
>>>>>>> what i want to do, if it's not clear, is to create a     
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> connection pool to
>>>>>>
>>>>>>> my MySql database.
>>>>>>> thanks,
>>>>>>> sean
>>>>>>>
>>>>>>> Brian Cook wrote:
>>>>>>>
>>>>>>>  
>>>>>>>
>>>>>>>> Actually the files I listed are NOT in the first post.  It       
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> shows the
>>>>>>
>>>>>>>> server.xml and the code calling it but does not show web.xml or 
>>>>>>>> context.xml.
>>>>>>>>
>>>>>>>> The error you are getting just means that that the JNDI       
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> resource being
>>>>>>
>>>>>>>> called in the code is not defined in both web.xml and context.xml.
>>>>>>>>
>>>>>>>> In looking at the code snip it in the first post I am not       
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> following
>>>>>>
>>>>>>>> what you are trying to do.  The post is for a JNDI       
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> question but in the
>>>>>>
>>>>>>>> code it looks like you are calling the DB URL directly.  The 
>>>>>>>> whole point of JDNI being to get specific URL, and 
>>>>>>>> configuration info outside of the code base.  I am not 
>>>>>>>> following what it is you are trying to do here.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Sean Rowe wrote:
>>>>>>>>
>>>>>>>>    
>>>>>>>>
>>>>>>>>> Brian, thank you for replying.  I was afraid my topic was         
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> dead.  If
>>>>>>
>>>>>>>>> you could look at my first post, I listed all the files         
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> that you have
>>>>>>
>>>>>>>>> suggested I take a look at.  I have done everything you have 
>>>>>>>>> suggested, but am still getting errors.  The error I am         
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> getting now is
>>>>>>  
>>>>>>
>>>>>>>>> javax.naming.NameNotFoundException: Name java:comp is not         
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> bound in
>>>>>>
>>>>>>>>> this Context
>>>>>>>>>
>>>>>>>>> I can't find anything on the net or in any books I've         
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> looked at that
>>>>>>
>>>>>>>>> explains this.  As far as I can tell, java:comp should just be 
>>>>>>>>> there.  Any ideas?  Thanks again.
>>>>>>>>>
>>>>>>>>> Sean
>>>>>>>>>
>>>>>>>>> Brian Cook wrote:
>>>>>>>>>
>>>>>>>>>      
>>>>>>>>>
>>>>>>>>>> Yes you can use JNDI with out using JSTL.  But the only way 
>>>>>>>>>> to configure it is to define the JNDI resources in the 
>>>>>>>>>> web.xml and context.xml files.    Technically you should be 
>>>>>>>>>> able to use the globally defined JNDI resources in 
>>>>>>>>>> server.xml, and I have seen configuration set ups doing it 
>>>>>>>>>> when googling.  But could           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> never get
>>>>>>
>>>>>>>>>> them to work.
>>>>>>>>>>
>>>>>>>>>> This highlights another area of seemingly unneeded           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> complication in
>>>>>>
>>>>>>>>>> Java/Unix development.  Using JNDI for data sources which was 
>>>>>>>>>> supposed to help you save time requires that you           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> redundantly define
>>>>>>
>>>>>>>>>> the JNDI resource in at lest 2 if not 3 places.
>>>>>>>>>>
>>>>>>>>>> The admin tool which was also supposed to help save 
>>>>>>>>>> time           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> defines the
>>>>>>
>>>>>>>>>> JNDI resources in server.xml which does not really 
>>>>>>>>>> seem           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> to be all
>>>>>>
>>>>>>>>>> that helpful.  I am sure there is likely a reason for           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> this but I am
>>>>>>
>>>>>>>>>> ignorant of it.  The admin tool is also supposed to 
>>>>>>>>>> let           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> you define
>>>>>>
>>>>>>>>>> JNDI resources  per context but it errors out when 
>>>>>>>>>> ever           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> I have tried
>>>>>>
>>>>>>>>>> it.
>>>>>>>>>>
>>>>>>>>>> My experience with the Tomcat Admin and Manager tools 
>>>>>>>>>> is           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> that they
>>>>>>
>>>>>>>>>> are worthless.  Of the few steps they try to help with           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> more often
>>>>>>
>>>>>>>>>> that not they just return errors when you need to use           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> it.  I removed
>>>>>>
>>>>>>>>>> them both and have gone back to doing set ups manually           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> and there has
>>>>>>
>>>>>>>>>> not been much of a time difference doing it this way.
>>>>>>>>>>
>>>>>>>>>> Any way for JNDI to work you will have to add the           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> definition for it
>>>>>>
>>>>>>>>>> in both web.xml and context.xml in the <<Tomcat 
>>>>>>>>>> Folder>>/conf/Catalina/localhost/ folder.  This seems counter 
>>>>>>>>>> productive since it makes your app less portable having the 
>>>>>>>>>> data base configuration details inside the context and 
>>>>>>>>>> by           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> extent the WAR
>>>>>>
>>>>>>>>>> file but it is what you have to do to get it to work right now.
>>>>>>>>>>
>>>>>>>>>> I feel your pain I know it is frustrating spending 
>>>>>>>>>> hours           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> debugging
>>>>>>
>>>>>>>>>> just the DB connection but todate that is the reality 
>>>>>>>>>> of           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> Java web
>>>>>>
>>>>>>>>>> app development.  It is why I fear we will all be .Net           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> developers
>>>>>>
>>>>>>>>>> some day.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Example :
>>>>>>>>>>
>>>>>>>>>>           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-resources
>>>>>> -howto.html
>>>>>>
>>>>>>>>>> <CODE>
>>>>>>>>>>
>>>>>>>>>> Context initCtx = new InitialContext();
>>>>>>>>>> Context envCtx = (Context) initCtx.lookup("java:comp/env");
>>>>>>>>>> DataSource ds = (DataSource)
>>>>>>>>>>  envCtx.lookup("jdbc/EmployeeDB");
>>>>>>>>>>
>>>>>>>>>> Connection conn = ds.getConnection();
>>>>>>>>>> ... use this connection to access the database ...
>>>>>>>>>> conn.close();
>>>>>>>>>>
>>>>>>>>>> </CODE>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> <WEB.XML>
>>>>>>>>>>
>>>>>>>>>> <resource-ref>
>>>>>>>>>>  <description>
>>>>>>>>>>    Resource reference to a factory for java.sql.Connection
>>>>>>>>>>    instances that may be used for talking to a particular
>>>>>>>>>>    database that is configured in the server.xml file.
>>>>>>>>>>  </description>
>>>>>>>>>>  <res-ref-name>
>>>>>>>>>>    jdbc/EmployeeDB
>>>>>>>>>>  </res-ref-name>
>>>>>>>>>>  <res-type>
>>>>>>>>>>    javax.sql.DataSource
>>>>>>>>>>  </res-type>
>>>>>>>>>>  <res-auth>
>>>>>>>>>>    Container
>>>>>>>>>>  </res-auth>
>>>>>>>>>> </resource-ref>
>>>>>>>>>>
>>>>>>>>>> </WEB.XML>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> <CONTEXT FILE>
>>>>>>>>>>
>>>>>>>>>> <Context>
>>>>>>>>>>
>>>>>>>>>>  <Resource     name="jdbc/EmployeeDB"
>>>>>>>>>>        auth="Container"
>>>>>>>>>>                type="javax.sql.DataSource"
>>>>>>>>>>        username="dbusername"
>>>>>>>>>>        password="dbpassword"
>>>>>>>>>>                
>>>>>>>>>> driverClassName="org.hsql.jdbcDriver"            > >>>> 
>>>>>>>>>> url="jdbc:HypersonicSQL:database"
>>>>>>>>>>        maxActive="8"
>>>>>>>>>>        maxIdle="4"/>
>>>>>>>>>>
>>>>>>>>>> </Context>
>>>>>>>>>>
>>>>>>>>>> </CONTEXT FILE>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Sean Rowe wrote:
>>>>>>>>>>
>>>>>>>>>>        
>>>>>>>>>>
>>>>>>>>>>> Dirk, I'm sorry I didn't see the difference on the page 
>>>>>>>>>>>             
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>
>>>>>> you sent me
>>>>>>
>>>>>>>>>>> to.  However, if there is a way I can do this 
>>>>>>>>>>> without             
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>
>>>>>> having to use
>>>>>>
>>>>>>>>>>> jstl, I would really like to know.  I was hoping to put 
>>>>>>>>>>>             
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>
>>>>>> the code in
>>>>>>
>>>>>>>>>>> a class somewhere that my servlets could use.
>>>>>>>>>>>
>>>>>>>>>>> thanks,
>>>>>>>>>>> sean
>>>>>>>>>>>
>>>>>>>>>>> Dirk Weigenand wrote:
>>>>>>>>>>>
>>>>>>>>>>>          
>>>>>>>>>>>
>>>>>>>>>>>> Sean,
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>            
>>>>>>>>>>>>
>>>>>>>>>>>>> --- Urspr√ľngliche Nachricht ---
>>>>>>>>>>>>> Von: Sean Rowe <ichabooka@gmail.com>
>>>>>>>>>>>>> An: Tomcat Users List <tomcat-user@jakarta.apache.org>
>>>>>>>>>>>>> Betreff: Re: jndi question
>>>>>>>>>>>>> Datum: Mon, 22 Aug 2005 09:24:10 -0500
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks for responding Dirk.  I've practically memorized 
>>>>>>>>>>>>> the documentation on the link you sent:
>>>>>>>>>>>>>
>>>>>>>>>>>>> // Obtain our environment naming context
>>>>>>>>>>>>> Context initCtx = new InitialContext();
>>>>>>>>>>>>> Context envCtx = (Context) initCtx.lookup("java:comp/env");
>>>>>>>>>>>>>
>>>>>>>>>>>>> // Look up our data source
>>>>>>>>>>>>> DataSource ds = (DataSource)
>>>>>>>>>>>>> envCtx.lookup("jdbc/EmployeeDB");
>>>>>>>>>>>>>
>>>>>>>>>>>>> // Allocate and use a connection from the pool
>>>>>>>>>>>>> Connection conn = ds.getConnection();
>>>>>>>>>>>>> ... use this connection to access the database ...
>>>>>>>>>>>>> conn.close();
>>>>>>>>>>>>>
>>>>>>>>>>>>> Whenever I try this, here's what I get (which led me 
>>>>>>>>>>>>>                 
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>
>>>>>> to trying it
>>>>>>
>>>>>>>>>>>>> the way
>>>>>>>>>>>>> I posted):
>>>>>>>>>>>>>
>>>>>>>>>>>>> javax.naming.NameNotFoundException: Name java:comp is 
>>>>>>>>>>>>>                 
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>
>>>>>> not bound
>>>>>>
>>>>>>>>>>>>> in this
>>>>>>>>>>>>> Context
>>>>>>>>>>>>>
>>>>>>>>>>>>>  
>>>>>>>>>>>>>                 
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> No. Did you look at
>>>>>>>>>>>>
>>>>>>>>>>>>               
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>
>>>>>> http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasourc
>>>>>> e-examples-howto.html?
>>>>>>
>>>>>>>>>>>> I recommend putting the context definition in its own 
>>>>>>>>>>>>               
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>
>>>>>> content.xml. On
>>>>>>  
>>>>>>
>>>>>>>>>>>> redeploying my application tomcat wouldn't find 
>>>>>>>>>>>> the               
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>
>>>>>> driver class
>>>>>>
>>>>>>>>>>>> anymore.
>>>>>>>>>>>>
>>>>>>>>>>>> Mind you not the class itself but the definition 
>>>>>>>>>>>> of               
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>
>>>>>> what class to
>>>>>>
>>>>>>>>>>>> load.
>>>>>>>>>>>>
>>>>>>>>>>>> This problem was solved by putting the context 
>>>>>>>>>>>> into               
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>
>>>>>> context.xml.
>>>>>>  
>>>>>>
>>>>>>>>>>>> regards
>>>>>>>>>>>>      Dirk
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>               
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>             
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>>  
>>>>>>
>>>>>>>>>>> To unsubscribe, e-mail:             
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>
>>>>>> tomcat-user-unsubscribe@jakarta.apache.org
>>>>>>  
>>>>>>
>>>>>>>>>>> For additional commands, e-mail:             
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>
>>>>>> tomcat-user-help@jakarta.apache.org
>>>>>>  
>>>>>>
>>>>>>>>>>>             
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------
>>>>>> ----------
>>>>>>
>>>>>>>>>>
>>>>>>>>>>           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>>  
>>>>>>
>>>>>>>>>> To unsubscribe, e-mail:           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> tomcat-user-unsubscribe@jakarta.apache.org
>>>>>>  
>>>>>>
>>>>>>>>>> For additional commands, e-mail:           
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>>> tomcat-user-help@jakarta.apache.org
>>>>>>  
>>>>>>
>>>>>>>>>         
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>>  
>>>>>>
>>>>>>>>> To unsubscribe, e-mail: 
>>>>>>>>> tomcat-user-unsubscribe@jakarta.apache.org
>>>>>>>>> For additional commands, e-mail:         
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> tomcat-user-help@jakarta.apache.org
>>>>>>  
>>>>>>
>>>>>>>>>         
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>       
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------
>>>>>> ----------
>>>>>>  
>>>>>>
>>>>>>>>       
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>>  
>>>>>>
>>>>>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>>>>>> For additional commands, e-mail:       
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> tomcat-user-help@jakarta.apache.org
>>>>>>  
>>>>>>
>>>>>>>     
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>>  
>>>>>>
>>>>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>>>>> For additional commands, e-mail: 
>>>>>>> tomcat-user-help@jakarta.apache.org
>>>>>>>
>>>>>>>
>>>>>>>     
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> Brian Cook
>>>>>> Digital Services Analyst
>>>>>> Print Time Inc.
>>>>>> bcook@printtime.com
>>>>>> 913.345.8900
>>>>>>
>>>>>>
>>>>>>   
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> 
>>>>> -------------------------------------------------------
>>>>> QAS Ltd.
>>>>> Registered in England: No 2582055
>>>>> Registered in Australia: No 082 851 474
>>>>> -------------------------------------------------------
>>>>> </FONT>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>>>
>>>>>
>>>>>  
>>>>>
>>>>
>>>> ------------------------------------------------------------------------ 
>>>>
>>>>
>>>> <?xml version="1.0" encoding="ISO-8859-1"?>
>>>> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web 
>>>> Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
>>>> <web-app>
>>>>    <display-name>dbname</display-name>        <resource-ref>
>>>>       <description>DB Connection</description>
>>>>       <res-ref-name>jdbc/dbname</res-ref-name>
>>>>       <res-type>javax.sql.DataSource</res-type>
>>>>       <res-auth>Container</res-auth>
>>>>   </resource-ref>
>>>>
>>>>    <context-param>
>>>>       <param-name>dbdriver</param-name>
>>>>       <param-value>com.mysql.jdbc.Driver</param-value>
>>>>    </context-param>
>>>>    <context-param>
>>>>       <param-name>dburl</param-name>
>>>>       <param-value>jdbc:mysql://localhost:3306/dbname</param-value>
>>>>    </context-param>
>>>>    <context-param>
>>>>       <param-name>dbuser</param-name>
>>>>       <param-value>transroot</param-value>
>>>>    </context-param>
>>>>    <context-param>
>>>>       <param-name>dbpw</param-name>
>>>>       <param-value>password</param-value>
>>>>    </context-param>
>>>>       <listener>
>>>>       
>>>> <listener-class>com.dbname.utils.ContextListener</listener-class>
>>>>    </listener>
>>>>
>>>> <!--
>>>>    <filter>
>>>>         <filter-name>TransFilter</filter-name>
>>>>         
>>>> <filter-class>com.dbname.utils.TransFilterFilter</filter-class>
>>>>     </filter>
>>>>    <filter-mapping>
>>>>       <filter-name>TransFilter</filter-name>
>>>>       <url-pattern>/pages/*</url-pattern>
>>>>    </filter-mapping>
>>>>    <filter-mapping>
>>>>       <filter-name>TransFilterFilter</filter-name>
>>>>       <url-pattern>/WEB-INF/*</url-pattern>
>>>>    </filter-mapping> -->
>>>>       <servlet>
>>>>       <servlet-name>Login</servlet-name>
>>>>       <servlet-class>com.dbname.servlets.LoginServlet</servlet-class>
>>>>    </servlet>
>>>>    <servlet-mapping>
>>>>       <servlet-name>Login</servlet-name>
>>>>       <url-pattern>/Login</url-pattern>
>>>>    </servlet-mapping>
>>>>
>>>>    <servlet>
>>>>       <servlet-name>Signup</servlet-name>
>>>>       <servlet-class>com.dbname.servlets.SignupServlet</servlet-class>
>>>>    </servlet>
>>>>    <servlet-mapping>
>>>>       <servlet-name>Signup</servlet-name>
>>>>       <url-pattern>/Signup</url-pattern>
>>>>    </servlet-mapping>
>>>>
>>>>    <servlet>
>>>>       <servlet-name>RecoverPassword</servlet-name>
>>>>       
>>>> <servlet-class>com.dbname.servlets.RecoverPasswordServlet</servlet-class> 
>>>>
>>>>    </servlet>
>>>>    <servlet-mapping>
>>>>       <servlet-name>RecoverPassword</servlet-name>
>>>>       <url-pattern>/RecoverPassword</url-pattern>
>>>>    </servlet-mapping>
>>>>
>>>>    <servlet>
>>>>       <servlet-name>UserDetails</servlet-name>
>>>>       
>>>> <servlet-class>com.dbname.servlets.UserDetailsServlet</servlet-class>
>>>>    </servlet>
>>>>    <servlet-mapping>
>>>>       <servlet-name>UserDetails</servlet-name>
>>>>       <url-pattern>/UserDetails</url-pattern>
>>>>    </servlet-mapping>
>>>>       <welcome-file-list>
>>>>       <welcome-file>index.jsp</welcome-file>
>>>>    </welcome-file-list>
>>>>
>>>> </web-app>
>>>>
>>>>
>>>> ------------------------------------------------------------------------ 
>>>>
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <Context>
>>>>       <Resource name="jdbc/dbname"                     
>>>> auth="Container"
>>>>             type="javax.sql.DataSource"
>>>>             username="transroot"
>>>>             password="password"
>>>>             driverClassName="org.hsql.jdbcDriver"                
>>>> url="jdbc:mysql://localhost:3306/dbname"
>>>>             maxActive="50"
>>>>             maxIdle="30"/>
>>>> </Context>
>>>>
>>>>
>>>> ------------------------------------------------------------------------ 
>>>>
>>>>
>>>> package com.dbname.utils;
>>>>
>>>> import javax.naming.*;
>>>> import javax.sql.*;
>>>> import java.sql.*;
>>>> import java.util.*;
>>>> import org.apache.commons.dbcp.BasicDataSourceFactory;
>>>> import org.apache.commons.collections.*;
>>>> import org.apache.commons.pool.*;
>>>>
>>>> public class DBManager {
>>>>
>>>>   String username = "";
>>>>       public void init() throws SQLException, NamingException, 
>>>> Exception{
>>>>     String query = "SELECT * FROM UserDetails";
>>>>     username = "getting the query<br";
>>>>
>>>>          username += "setting initCtx<br>";
>>>>          //Properties p=new Properties();
>>>>          
>>>> //p.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.commons.dbcp.BasicDataSourceFactory"); 
>>>>
>>>>          //p.put(Context.PROVIDER_URL,"jdbc:mysql://localhost:3306");
>>>>          Context initCtx = new InitialContext();
>>>>          username += "setting envCtx<br>";
>>>>          Context envCtx = (Context) initCtx.lookup("java:comp/env");
>>>>                   //if(envCtx == null ) {
>>>>             //throw new Exception("Boom - No Environment Context");
>>>>         // }
>>>>                   // the following matches the resource name 
>>>> defined in foo.xml
>>>>          username += "setting ds<br>";
>>>>          //DataSource ds = (DataSource) envCtx.lookup("jdbc/dbname");
>>>>          DataSource ds = (DataSource) envCtx.lookup("jdbc/dbname");
>>>>                   if (ds != null) {
>>>>             username += "setting conn<br>";
>>>>             Connection conn = ds.getConnection();
>>>>                      if(conn != null) {
>>>>             username += "setting stmt<br>";
>>>>                Statement stmt = conn.createStatement ();
>>>>             username += "setting rs<br>";
>>>>                ResultSet rs = stmt.executeQuery (query);
>>>>                if (!rs.next()) {
>>>>                   username = "rs.next was false";
>>>>                } else {
>>>>                   username = rs.getString("username");
>>>>                }
>>>>                rs.close();
>>>>                stmt.close();
>>>>                conn.close();
>>>>             } else {
>>>>                throw new Exception("No Connection");
>>>>             }
>>>>          } else {
>>>>             throw new Exception("No Datasource");
>>>>          }
>>>>    }
>>>>       public String getUsername() {       return username;
>>>>    }
>>>> }
>>>>
>>>>
>>>> ------------------------------------------------------------------------ 
>>>>
>>>>
>>>> <!-- Example Server Configuration File -->
>>>> <!-- Note that component elements are nested corresponding to their
>>>>      parent-child relationships with each other -->
>>>>
>>>> <!-- A "Server" is a singleton element that represents the entire JVM,
>>>>      which may contain one or more "Service" instances.  The Server
>>>>      listens for a shutdown command on the indicated port.
>>>>
>>>>      Note:  A "Server" is not itself a "Container", so you may not
>>>>      define subcomponents such as "Valves" or "Loggers" at this level.
>>>>  -->
>>>>
>>>> <Server port="8005" shutdown="SHUTDOWN">
>>>>
>>>>   <!-- Comment these entries out to disable JMX MBeans support used 
>>>> for the        administration web application -->
>>>>   <Listener 
>>>> className="org.apache.catalina.mbeans.ServerLifecycleListener" />
>>>>   <Listener 
>>>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" 
>>>> />
>>>>   <Listener 
>>>> className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> 
>>>>
>>>>
>>>>   <!-- Global JNDI resources -->
>>>>   <GlobalNamingResources>
>>>>
>>>>     <!-- Test entry for demonstration purposes -->
>>>>     <Environment name="simpleValue" type="java.lang.Integer" 
>>>> value="30"/>
>>>>
>>>>     <!-- Editable user database that can also be used by
>>>>          UserDatabaseRealm to authenticate users -->
>>>>     <Resource name="UserDatabase" auth="Container"
>>>>               type="org.apache.catalina.UserDatabase"
>>>>        description="User database that can be updated and saved"
>>>>            
>>>> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
>>>>           pathname="conf/tomcat-users.xml" />
>>>>
>>>>   </GlobalNamingResources>
>>>>
>>>>   <!-- A "Service" is a collection of one or more "Connectors" that 
>>>> share
>>>>        a single "Container" (and therefore the web applications 
>>>> visible
>>>>        within that Container).  Normally, that Container is an 
>>>> "Engine",
>>>>        but this is not required.
>>>>
>>>>        Note:  A "Service" is not itself a "Container", so you may not
>>>>        define subcomponents such as "Valves" or "Loggers" at this 
>>>> level.
>>>>    -->
>>>>
>>>>   <!-- Define the Tomcat Stand-Alone Service -->
>>>>   <Service name="Catalina">
>>>>
>>>>     <!-- A "Connector" represents an endpoint by which requests are 
>>>> received
>>>>          and responses are returned.  Each Connector passes 
>>>> requests on to the
>>>>          associated "Container" (normally an Engine) for processing.
>>>>
>>>>          By default, a non-SSL HTTP/1.1 Connector is established on 
>>>> port 8080.
>>>>          You can also enable an SSL HTTP/1.1 Connector on port 8443 by
>>>>          following the instructions below and uncommenting the 
>>>> second Connector
>>>>          entry.  SSL support requires the following steps (see the 
>>>> SSL Config
>>>>          HOWTO in the Tomcat 5 documentation bundle for more detailed
>>>>          instructions):
>>>>          * If your JDK version 1.3 or prior, download and install 
>>>> JSSE 1.0.2 or
>>>>            later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
>>>>          * Execute:
>>>>              %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg 
>>>> RSA (Windows)
>>>>              $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg 
>>>> RSA  (Unix)
>>>>            with a password value of "changeit" for both the 
>>>> certificate and
>>>>            the keystore itself.
>>>>
>>>>          By default, DNS lookups are enabled when a web application 
>>>> calls
>>>>          request.getRemoteHost().  This can have an adverse impact on
>>>>          performance, so you can disable it by setting the
>>>>          "enableLookups" attribute to "false".  When DNS lookups 
>>>> are disabled,
>>>>          request.getRemoteHost() will return the String version of the
>>>>          IP address of the remote client.
>>>>     -->
>>>>
>>>>     <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
>>>>     <Connector port="8080" maxHttpHeaderSize="8192"
>>>>                maxThreads="150" minSpareThreads="25" 
>>>> maxSpareThreads="75"
>>>>                enableLookups="false" redirectPort="8443" 
>>>> acceptCount="100"
>>>>                connectionTimeout="20000" 
>>>> disableUploadTimeout="true" />
>>>>     <!-- Note : To disable connection timeouts, set 
>>>> connectionTimeout value
>>>>      to 0 -->
>>>>         <!-- Note : To use gzip compression you could set the 
>>>> following properties :
>>>>                    compression="on"                
>>>> compressionMinSize="2048"                
>>>> noCompressionUserAgents="gozilla, traviata"                
>>>> compressableMimeType="text/html,text/xml"
>>>>     -->
>>>>
>>>>     <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
>>>>     <Connector port="8443" maxHttpHeaderSize="8192"
>>>>                maxThreads="150" minSpareThreads="25" 
>>>> maxSpareThreads="75"
>>>>                enableLookups="false" disableUploadTimeout="true"
>>>>                acceptCount="100" scheme="https" secure="true"
>>>>                clientAuth="false" sslProtocol="TLS" />
>>>>
>>>>     <!-- Define an AJP 1.3 Connector on port 8009 -->
>>>>     <Connector port="8009"                enableLookups="false" 
>>>> redirectPort="8443" protocol="AJP/1.3" />
>>>>
>>>>     <!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
>>>>     <!-- See proxy documentation for more information about using 
>>>> this. -->
>>>>     <!--
>>>>     <Connector port="8082"                maxThreads="150" 
>>>> minSpareThreads="25" maxSpareThreads="75"
>>>>                enableLookups="false" acceptCount="100" 
>>>> connectionTimeout="20000"
>>>>                proxyPort="80" disableUploadTimeout="true" />
>>>>     -->
>>>>
>>>>     <!-- An Engine represents the entry point (within Catalina) 
>>>> that processes
>>>>          every request.  The Engine implementation for Tomcat stand 
>>>> alone
>>>>          analyzes the HTTP headers included with the request, and 
>>>> passes them
>>>>          on to the appropriate Host (virtual host). -->
>>>>
>>>>     <!-- You should set jvmRoute to support load-balancing via AJP 
>>>> ie :
>>>>     <Engine name="Standalone" defaultHost="localhost" 
>>>> jvmRoute="jvm1">             -->              <!-- Define the top 
>>>> level container in our container hierarchy -->
>>>>     <Engine name="Catalina" defaultHost="localhost">
>>>>
>>>>       <!-- The request dumper valve dumps useful debugging 
>>>> information about
>>>>            the request headers and cookies that were received, and 
>>>> the response
>>>>            headers and cookies that were sent, for all requests 
>>>> received by
>>>>            this instance of Tomcat.  If you care only about 
>>>> requests to a
>>>>            particular virtual host, or a particular application, 
>>>> nest this
>>>>            element inside the corresponding <Host> or <Context> 
>>>> entry instead.
>>>>
>>>>            For a similar mechanism that is portable to all Servlet 2.4
>>>>            containers, check out the "RequestDumperFilter" Filter 
>>>> in the
>>>>            example application (the source for this filter may be 
>>>> found in
>>>>            "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
>>>>
>>>>            Request dumping is disabled by default.  Uncomment the 
>>>> following
>>>>            element to enable it. -->
>>>>       <!--
>>>>       <Valve 
>>>> className="org.apache.catalina.valves.RequestDumperValve"/>
>>>>       -->
>>>>
>>>>       <!-- Because this Realm is here, an instance will be shared 
>>>> globally -->
>>>>
>>>>       <!-- This Realm uses the UserDatabase configured in the 
>>>> global JNDI
>>>>            resources under the key "UserDatabase".  Any edits
>>>>            that are performed against this UserDatabase are 
>>>> immediately
>>>>            available for use by the Realm.  -->
>>>>       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
>>>>              resourceName="UserDatabase"/>
>>>>
>>>>       <!-- Comment out the old realm but leave here for now in case we
>>>>            need to go back quickly -->
>>>>       <!--
>>>>       <Realm className="org.apache.catalina.realm.MemoryRealm" />
>>>>       -->
>>>>
>>>>       <!-- Replace the above Realm with one of the following to get 
>>>> a Realm
>>>>            stored in a database and accessed via JDBC -->
>>>>
>>>>       <!--
>>>>       <Realm  className="org.apache.catalina.realm.JDBCRealm"
>>>>              driverName="org.gjt.mm.mysql.Driver"
>>>>           connectionURL="jdbc:mysql://localhost/authority"
>>>>          connectionName="test" connectionPassword="test"
>>>>               userTable="users" userNameCol="user_name" 
>>>> userCredCol="user_pass"
>>>>           userRoleTable="user_roles" roleNameCol="role_name" />
>>>>       -->
>>>>
>>>>       <!--
>>>>       <Realm  className="org.apache.catalina.realm.JDBCRealm"
>>>>              driverName="oracle.jdbc.driver.OracleDriver"
>>>>           connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
>>>>          connectionName="scott" connectionPassword="tiger"
>>>>               userTable="users" userNameCol="user_name" 
>>>> userCredCol="user_pass"
>>>>           userRoleTable="user_roles" roleNameCol="role_name" />
>>>>       -->
>>>>
>>>>       <!--
>>>>       <Realm  className="org.apache.catalina.realm.JDBCRealm"
>>>>              driverName="sun.jdbc.odbc.JdbcOdbcDriver"
>>>>           connectionURL="jdbc:odbc:CATALINA"
>>>>               userTable="users" userNameCol="user_name" 
>>>> userCredCol="user_pass"
>>>>           userRoleTable="user_roles" roleNameCol="role_name" />
>>>>       -->
>>>>
>>>>       <!-- Define the default virtual host
>>>>            Note: XML Schema validation will not work with Xerces 2.2.
>>>>        -->
>>>>       <Host name="localhost"             appBase="webapps"
>>>>             unpackWARs="true"             autoDeploy="true"
>>>>             xmlValidation="false"             
>>>> xmlNamespaceAware="false">
>>>>
>>>>         <!-- Defines a cluster for this node,
>>>>              By defining this element, means that every manager 
>>>> will be changed.
>>>>              So when running a cluster, only make sure that you 
>>>> have webapps in there
>>>>              that need to be clustered and remove the other ones.
>>>>              A cluster has the following parameters:
>>>>
>>>>              className = the fully qualified name of the cluster class
>>>>
>>>>              name = a descriptive name for your cluster, can be 
>>>> anything
>>>>
>>>>              mcastAddr = the multicast address, has to be the same 
>>>> for all the nodes
>>>>
>>>>              mcastPort = the multicast port, has to be the same for 
>>>> all the nodes
>>>>                           mcastBindAddr = bind the multicast socket 
>>>> to a specific address
>>>>                           mcastTTL = the multicast TTL if you want 
>>>> to limit your broadcast
>>>>                           mcastSoTimeout = the multicast readtimeout
>>>>              mcastFrequency = the number of milliseconds in between 
>>>> sending a "I'm alive" heartbeat
>>>>
>>>>              mcastDropTime = the number a milliseconds before a 
>>>> node is considered "dead" if no heartbeat is received
>>>>
>>>>              tcpThreadCount = the number of threads to handle 
>>>> incoming replication requests, optimal would be the same amount of 
>>>> threads as nodes
>>>>              tcpListenAddress = the listen address (bind address) 
>>>> for TCP cluster request on this 
>>>> host,                                 in case of multiple ethernet 
>>>> cards.
>>>>                                 auto means that address becomes
>>>>                                 
>>>> InetAddress.getLocalHost().getHostAddress()
>>>>
>>>>              tcpListenPort = the tcp listen port
>>>>
>>>>              tcpSelectorTimeout = the timeout (ms) for the 
>>>> Selector.select() method in case the OS
>>>>                                   has a wakup bug in java.nio. Set 
>>>> to 0 for no timeout
>>>>
>>>>              printToScreen = true means that managers will also 
>>>> print to std.out
>>>>
>>>>              expireSessionsOnShutdown = true means that
>>>>              useDirtyFlag = true means that we only replicate a 
>>>> session after setAttribute,removeAttribute has been called.
>>>>                             false means to replicate the session 
>>>> after each request.
>>>>                             false means that replication would work 
>>>> for the following piece of code: (only for 
>>>> SimpleTcpReplicationManager)
>>>>                             <%
>>>>                             HashMap map = 
>>>> (HashMap)session.getAttribute("map");
>>>>                             map.put("key","value");
>>>>                             %>
>>>>              replicationMode = can be either 'pooled', 
>>>> 'synchronous' or 'asynchronous'.
>>>>                                * Pooled means that the replication 
>>>> happens using several sockets in a synchronous way. Ie, the data 
>>>> gets replicated, then the request return. This is the same as the 
>>>> 'synchronous' setting except it uses a pool of sockets, hence it is 
>>>> multithreaded. This is the fastest and safest configuration. To use 
>>>> this, also increase the nr of tcp threads that you have dealing 
>>>> with replication.
>>>>                                * Synchronous means that the thread 
>>>> that executes the request, is also the
>>>>                                thread the replicates the data to 
>>>> the other nodes, and will not return until all
>>>>                                nodes have received the information.
>>>>                                * Asynchronous means that there is a 
>>>> specific 'sender' thread for each cluster node,
>>>>                                so the request thread will queue the 
>>>> replication request into a "smart" queue,
>>>>                                and then return to the client.
>>>>                                The "smart" queue is a queue where 
>>>> when a session is added to the queue, and the same session
>>>>                                already exists in the queue from a 
>>>> previous request, that session will be replaced
>>>>                                in the queue instead of replicating 
>>>> two requests. This almost never happens, unless there is a 
>>>>                                large network delay.
>>>>         -->                     <!--
>>>>             When configuring for clustering, you also add in a 
>>>> valve to catch all the requests
>>>>             coming in, at the end of the request, the session may 
>>>> or may not be replicated.
>>>>             A session is replicated if and only if all the 
>>>> conditions are met:
>>>>             1. useDirtyFlag is true or setAttribute or 
>>>> removeAttribute has been called AND
>>>>             2. a session exists (has been created)
>>>>             3. the request is not trapped by the "filter" attribute
>>>>
>>>>             The filter attribute is to filter out requests that 
>>>> could not modify the session,
>>>>             hence we don't replicate the session after the end of 
>>>> this request.
>>>>             The filter is negative, ie, anything you put in the 
>>>> filter, you mean to filter out,
>>>>             ie, no replication will be done on requests that match 
>>>> one of the filters.
>>>>             The filter attribute is delimited by ;, so you can't 
>>>> escape out ; even if you wanted to.
>>>>
>>>>             filter=".*\.gif;.*\.js;" means that we will not 
>>>> replicate the session after requests with the URI
>>>>             ending with .gif and .js are intercepted.
>>>>                         The deployer element can be used to deploy 
>>>> apps cluster wide.
>>>>             Currently the deployment only deploys/undeploys to 
>>>> working members in the cluster
>>>>             so no WARs are copied upons startup of a broken node.
>>>>             The deployer watches a directory (watchDir) for WAR 
>>>> files when watchEnabled="true"
>>>>             When a new war file is added the war gets deployed to 
>>>> the local instance,
>>>>             and then deployed to the other instances in the cluster.
>>>>             When a war file is deleted from the watchDir the war is 
>>>> undeployed locally             and cluster wide
>>>>         -->
>>>>                 <!--
>>>>         <Cluster 
>>>> className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
>>>>                  
>>>> managerClassName="org.apache.catalina.cluster.session.DeltaManager"
>>>>                  expireSessionsOnShutdown="false"
>>>>                  useDirtyFlag="true"
>>>>                  notifyListenersOnReplication="true">
>>>>
>>>>             <Membership                 
>>>> className="org.apache.catalina.cluster.mcast.McastService"
>>>>                 mcastAddr="228.0.0.4"
>>>>                 mcastPort="45564"
>>>>                 mcastFrequency="500"
>>>>                 mcastDropTime="3000"/>
>>>>
>>>>             <Receiver                 
>>>> className="org.apache.catalina.cluster.tcp.ReplicationListener"
>>>>                 tcpListenAddress="auto"
>>>>                 tcpListenPort="4001"
>>>>                 tcpSelectorTimeout="100"
>>>>                 tcpThreadCount="6"/>
>>>>
>>>>             <Sender
>>>>                 
>>>> className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
>>>>                 replicationMode="pooled"
>>>>                 ackTimeout="15000"/>
>>>>
>>>>             <Valve 
>>>> className="org.apache.catalina.cluster.tcp.ReplicationValve"
>>>>                    
>>>> filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> 
>>>>
>>>>                                <Deployer 
>>>> className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
>>>>                       tempDir="/tmp/war-temp/"
>>>>                       deployDir="/tmp/war-deploy/"
>>>>                       watchDir="/tmp/war-listen/"
>>>>                       watchEnabled="false"/>
>>>>         </Cluster>
>>>>         -->     
>>>>         <!-- Normally, users must authenticate themselves to each 
>>>> web app
>>>>              individually.  Uncomment the following entry if you 
>>>> would like
>>>>              a user to be authenticated the first time they 
>>>> encounter a
>>>>              resource protected by a security constraint, and then 
>>>> have that
>>>>              user identity maintained across *all* web applications 
>>>> contained
>>>>              in this virtual host. -->
>>>>         <!--
>>>>         <Valve 
>>>> className="org.apache.catalina.authenticator.SingleSignOn" />
>>>>         -->
>>>>
>>>>         <!-- Access log processes all requests for this virtual 
>>>> host.  By
>>>>              default, log files are created in the "logs" directory 
>>>> relative to
>>>>              $CATALINA_HOME.  If you wish, you can specify a different
>>>>              directory with the "directory" attribute.  Specify 
>>>> either a relative
>>>>              (to $CATALINA_HOME) or absolute path to the desired 
>>>> directory.
>>>>         -->
>>>>         <!--
>>>>         <Valve className="org.apache.catalina.valves.AccessLogValve"
>>>>                  directory="logs"  prefix="localhost_access_log." 
>>>> suffix=".txt"
>>>>                  pattern="common" resolveHosts="false"/>
>>>>         -->
>>>>
>>>>         <!-- Access log processes all requests for this virtual 
>>>> host.  By
>>>>              default, log files are created in the "logs" directory 
>>>> relative to
>>>>              $CATALINA_HOME.  If you wish, you can specify a different
>>>>              directory with the "directory" attribute.  Specify 
>>>> either a relative
>>>>              (to $CATALINA_HOME) or absolute path to the desired 
>>>> directory.
>>>>              This access log implementation is optimized for 
>>>> maximum performance,
>>>>              but is hardcoded to support only the "common" and 
>>>> "combined" patterns.
>>>>         -->
>>>>         <!--
>>>>         <Valve 
>>>> className="org.apache.catalina.valves.FastCommonAccessLogValve"
>>>>                  directory="logs"  prefix="localhost_access_log." 
>>>> suffix=".txt"
>>>>                  pattern="common" resolveHosts="false"/>
>>>>         -->
>>>>         <!-- Access log processes all requests for this virtual 
>>>> host.  By
>>>>              default, log files are created in the "logs" directory 
>>>> relative to
>>>>              $CATALINA_HOME.  If you wish, you can specify a different
>>>>              directory with the "directory" attribute.  Specify 
>>>> either a relative
>>>>              (to $CATALINA_HOME) or absolute path to the desired 
>>>> directory.
>>>>              This access log implementation is optimized for 
>>>> maximum performance,
>>>>              but is hardcoded to support only the "common" and 
>>>> "combined" patterns.
>>>>
>>>>              This valve use NIO direct Byte Buffer to 
>>>> asynchornously store the
>>>>              log.
>>>>         -->
>>>>         <!--
>>>>         <Valve 
>>>> className="org.apache.catalina.valves.ByteBufferAccessLogValve"
>>>>                  directory="logs"  prefix="localhost_access_log." 
>>>> suffix=".txt"
>>>>                  pattern="common" resolveHosts="false"/>
>>>>         -->
>>>>
>>>>       </Host>
>>>>     </Engine>
>>>>   </Service>
>>>> </Server>
>>>>
>>>>
>>>> ------------------------------------------------------------------------ 
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>
>>
>
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message