Tomcat 연결 풀 설정 및 구현/JNDI

방금 드디어 Tomcat 6.0 의 연결 탱크 를 설 치 했 습 니 다.아,너무 쉽 지 않 습 니 다.제 가 너무 멍청해 서 몇 시간 동안 했 습 니 다.하하.
연결 탱크 의 설정 은 인터넷 에 여러 가지 가 있 습 니 다.저도 몇 가지 테스트 를 했 는데 첫 번 째 연결 이 성 공 했 습 니 다.
먼저 Tomcat\conf 폴 더 에서 server.xml 파일 을 찾 고 이 부분 에 코드 를 추가 합 니 다.
<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>

다음 코드 추가
<Resource name="jdbc/exam"        
			auth="Container" type="javax.sql.DataSource"  
			driverClassName="com.mysql.jdbc.Driver"  
			maxIdle="30"  
			maxWait="5000"  
			username="root"  
			password="lzj"  
			url="jdbc:mysql://localhost/exam"        
			maxActive="100"    
			removeAbandoned="true"  
			removeAbandonedTimeout="60" 
			logAbandoned="true"/> 

그리고 같은 폴 더 아래 context.xml 파일 을 찾 아사이 에 코드 를 추가 합 니 다.
。server.xml 파일 에 추 가 된 부분 참조
<ResourceLink name="jdbc/exam" global="jdbc/exam" type="javax.sql.DataSource"/>

그리고 프로젝트 의 웹 xml 파일 에 추가 합 니 다.
<resource-ref>
	<description>DB Connection</description>
	<res-ref-name>jdbc/exam</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
  </resource-ref>

설정 이 완료 되 었 더 라 도 가장 중요 한 것 은 연못 류 를 연결 하 는 코드 입 니 다.
다음은 연결 탱크 의 코드 도 붙 여 놓 았 습 니 다.테스트 에 성 공 했 습 니 다.

import java.sql.*;
import javax.sql.*;
import java.io.*;
import javax.naming.*;

public class ConnectionPool
{
	private static ConnectionPool instace;
	private static DataSource ds;
	//     
    public static DataSource createDataSource() 
    { 
      if (ds == null) 
      { 
         try 
         { 
             Context ct = new InitialContext(); 
             if (ct == null) 
                 System.out.println("     "); 
             Context envContext = (Context) ct.lookup("java:/comp/env"); 
             ds = (DataSource) envContext.lookup("jdbc/exam"); //          
          } 
          catch (NamingException e) 
          { 
              e.printStackTrace(); 
          } 
       } 
       return ds; 
    } 

	//           
	public static synchronized Connection getConnection() throws SQLException,NamingException{
		Connection con=null;
		try
		{
			//    
			con=(Connection)createDataSource().getConnection();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			System.out.print("Get Connection Error");
		}
		return con;
	}
	//    
	public static synchronized void freeConnection(Connection con){
		try
		{
			con.close();
		}
		catch (SQLException e)
		{
			e.printStackTrace();
			System.out.println("Close Connection Error");
		}
	}
}

사용 할 때 이렇게 사용 하면 돼 요.
사용 할 가방 javax.naming.*먼저 가 져 오기;이상 사용 try 를 던 져 야 하기 때문에,
try
			{
				con=cp.getConnection();
			}
			catch (NamingException e)
			{
				e.printStackTrace();
			}
			con.setAutoCommit(false);
//      SQL  ,    pstmt.executeUpdate();
				con.commit();    

이것 이 바로 첫 번 째 방법 입 니 다.테스트 에 성 공 했 습 니 다.다만 이러한 설정 은 공유 연결 이 고 어느 웹 앱 이 든 연결 할 수 있 습 니 다.또 하 나 는 context.xml 에 직접 설정 을 추가 하 는 것 입 니 다.아직 테스트 에 성공 하지 못 했 습 니 다.어디 가 잘못 되 었 는 지 모 르 겠 습 니 다.
또 하 나 는 직접 클래스 를 사용 하여 연결 을 만 들 고 사용 할 때 꺼 내 는 것 이다.여 기 는 나 도 코드 를 붙 이지 않 겠 다.하하,사람들 이 나 보다 더 잘 말한다.주소.http://jalant.iteye.com/blog/378436
http://www.iteye.com/topic/245596
우리 WEB 프로젝트 의 META-INF 폴 더 아래 context.xml 를 만 들 고 설정 코드 를 붙 여 넣 습 니 다.다음은 기본적으로 위 와 같 습 니 다.

좋은 웹페이지 즐겨찾기