1. TOMCAT 구성 데이터 출처 :
전제 조건 : 연결된 MySQL 데이터베이스 드라이버 JAR 패키지를 TomCat 설치 디렉토리의 공통 폴더 아래의 LIB 디렉토리에 넣어야합니다.
1. 방법 1 : Webroot 아래에서 폴더 메타 인프를 만들고 다음과 같이 파일 context.xml을 만듭니다.
<? xml version = "1.0"alcoding = "utf-8"?> <context> <resource name = "jdbc/chaoshi"auth = "컨테이너"type = "javax.sql.datasource"maxactive = "50"maxidle = "30"maxwait = "100000"logabandened = "username ="username = ""username = "" "" "" "" "" ". DriverClassName = "com.mysql.jdbc.driver"url = "jdbc : mysql : // localhost : 3306/dbname"> </resource> </context>
방법 2 : Context.xml Tomcat Directory Conf 아래에서 원래 컨텍스트 태그를 수정하고 다음으로 변경하십시오.
<context> <!-기본 모니터링 리소스 세트-> <watchedResource> web-inf/web.xml </watchedResource> <Resource Name = "jdbc/test"anid = "컨테이너"유형 = "javax.sql.sql.datasource"maxactive = "50"maxIdle = "30"wogabnown ""true ""user " password = "root"DriverClassName = "com.mysql.jdbc.driver"url = "jdbc : mysql : // localhost : 3306/testdb"/> </context>
방법 3 : 가상 디렉토리를 구성 할 때, 즉 Conf 아래의 Server.xml을 구성 할 때는 컨텍스트 태그로 변경합니다.
<context path = "/webroot"Reloadable = "true"docbase = "e :/workspace/dataSource/webroot"> <resource name = "jdbc/test"anider = "container"type = "javax.sql.datasource"maxactive = "50"maxidle = "30"maxwait = "wondabended =" "userem" password = "root"DriverClassName = "com.mysql.jdbc.driver"url = "jdbc : mysql : // localhost : 3306/testdb"/> </context>
</구성 파일의 리소스 태그의 각 속성의 의미 :
DRIVERCLASSNAME- JDBC에서 사용하는 데이터베이스 드라이버 클래스의 전체 이름.
Maxactive- 연결 풀에서 동시에 제공하는 최대 활성 연결 수입니다.
MAXIDLE- 연결 풀이 유휴 시간 동안 보유하는 최대 연결 수입니다.
MAXWAIT- 예외가 발생할 때 (사용 가능한 연결이없는 경우) 데이터베이스가 대기하는 최대 밀리 초입니다.
사용자 이름 - 데이터베이스에 연결할 때 로그인 이름
비밀번호 - 데이터베이스에 연결하는 비밀번호.
URL- 드라이버에 대한 URL. (Drivername은 또한 후진 호환성을 허용합니다.)
테스트 코드 :
Context initContext = new InitialContext (); context entercontext = (context) initcontext.lookup ( "java :/comp/env"); dataSource ds = (dataSource) EnvContext.lookup ( "jdbc/test"); system.out.println (ds.getConnection ());
널이 아닌 경우 성공해야합니다.
테스트 할 때는 Tomcat에서 테스트해야합니다. 즉, Tomcat 컨테이너에 있어야합니다 (귀찮게하지 말고 간단한 JSP 페이지를 작성하여 테스트하고 <%...%>를 사용합니다. Tomcat 컨테이너에서 테스트되지 않으면 예외가 발생합니다.
... Javax.naming.noinitialContexTexception : 환경 또는 시스템 속성 또는 애플릿 매개 변수 또는 응용 프로그램 리소스 파일에서 클래스 이름을 지정해야합니다 : java.naming.factory.initial
2. 최대 절전 모드에서 연결 풀을 구성하는 세 가지 방법이 있습니다.
방법 1 Hibernate의 자체 연결 풀을 사용하십시오.
<hibernate-configuration> <session-factory> <!-jdbc 드라이버-> <property name = "connection.driver_class"> com.mysql.jdbc.driver </property> <!-데이터베이스에 연결하는 URL-> <property name = "connection.url"> jdbc : // localhost : 3306/feifei </propert>-3306/fifei. 연결-> <property name = "connection.username"> root </property> <!-로그인 비밀번호-> <속성 이름 = "Connection.Password"> </property> <!-디버깅을 위해 로그로 실행 중에 생성 된 SQL을 출력할지 여부-> <속성 이름 = "show_sql"> true </propert> <!-<속성을 지정하십시오-> <속성. name = "divelect"> org.hibernate.dialect.mysqldialect </property> <!-매핑 자원-> <매핑 자원 = "/xx/xx.hbm.xml"/> </session-factory> </hibernate-configuration> 내 자체 구성은 다음과 같습니다. <hibernate-configuration> <session-factory> <property name = "show_sql"> true </property> <!-Common conf dbcp/c3p0 필요한 <property name = "connection.username </property> <property name ="connection.password "> informix </production> <property 이름 = "connection.driver_class"> com.informix.jdbc.ifxdriver </property> <속성 name = "connection.url"> jdbc : informix-sqli : //192.168.0.188 : 1526/db_crm : informixserver = ol_sx; newlocale = zh_cn, en_us; newcodeset = gbk, 8859_1,819; </propertion> <속성 이름 = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixDialect </property>-> ... ... ... ... </session-factory> </hibernate-configuration>
방법 2 : 구성 파일에 지정된 데이터베이스 연결 풀을 사용하십시오.
연결 풀에는 이제 DBCP, C3P0 및 Proxoop가 있습니다. 사실, 나는 DBCP를 알고 있었다
그중에서도 DBCP 및 C3P0의 구성은 위의 구성에 일부 구성 만 추가하면되며 Hibernate는 데이터베이스 연결 풀을 자동으로 식별합니다.
DBCP를 구성하려면 다음과 같은 가입해야합니다.
<!- dbcp conf <property name = "dbcp.maxActive"> 100 </property> <property name = "dbcp.whenexhaeStedAction"> 1 </property> <property name = "dbcp.maxwait"> 60000 </property> <property name = "dbcp.maxidle"> <속성 이름 = "dbcp.ps.maxActive"> 100 </property> <속성 이름 = "dbcp.ps.maxActive"> 100 </property> <property name = "dbcp.ps.whenexhaustedAction"> 1 </property> <속성 이름 = "dbcp.ps.maxwait"> 60000 <속성> <속성 이름 = "dbcp.ps.maxidle"> 10 </property>->
C3P0을 구성하려면 다음과 같은 가입해야합니다.
<!-c3p0 conf <property name = "c3p0.min_size"> 5 </property> <property name = "c3p0.max_size"> 30 </property> <property name = "c3p0.time_out"> 1800 <property name = "c3p0.max_statement"> 50 </property>->
proxoop의 구성은 약간 다릅니다. 추가 할 수는 없지만 변경해야합니다.
기본 구성은 다음과 같습니다.
<property name = "proxool.pool_alias"> dbpool </property> <property name = "proxool.xml"> test/huatech/conf/proxoolconf.xml </property name = "connection.provider_class"> org.hibernate.connection.proxoolconnectionprovider </propertion </propertion_class "
특별 참고 : 다음 파일의 경로는 올바르게 구성해야합니다. 그렇지 않으면 filenotfound
관련 파일 : test/huatech/conf/proxoolconf.xml은 다음과 같이 구성됩니다.
<? xml version = "1.0"encoding = "utf-8"?> <something-else-en 자체-> <driver-url> jdbc : informix-sqli : //192.168.0.188 : 1526/db_crm : informixserver = ol_sx; newlocale = zh_cn, en_us; newcod eset = gbk, 8859_1,819; </driver-url> <driver-class> com.informix.jdbc.ifxdriver </driver-class> <driver-properties> <property 이름 = "사용자"value = "Informix" /> <속성 이름 = "password"value = "Informix" /> < /driver-properties> <!-proxool은 각 연결 상태의 시간 간격 (밀리 초)을 자동으로 감지합니다. 유휴 연결이 감지되면 즉시 재활용됩니다. 시간 초과 파괴-> <House-Keeping-Sleep-Time> 90000 </House-Keeping-Sleep-Time> <!-할당 할 유휴 연결이 없기 때문에 대기열에서 대기하는 최대 요청 수를 나타냅니다. 이 요청 수를 초과하는 사용자 연결은 허용되지 않습니다-> <최대 새로운 연결> 20 </최대 새로운 연결> <!-유지 관리 된 최소 유휴 연결 수-> <프로토 타입 카운트> 5 </프로토 타입-카운트> <!-허용되는 최대 연결 수가 초과됩니다. 요청이 있으면 대기열에서 대기하는 대기입니다. 최대 대기 요청 수는 최대 새로운 연결에 의해 결정됩니다-> <최대 연결-카운트> 100 </maximum-connection-count> <!-최소 연결 횟수-> <최소 연결-카운트> 10 </proxool> </soxool> </sox-else-ensipely>
방법 3 : 컨테이너에서 연결 풀을 가져옵니다 (예 : Tomcat)
Tomcat, Resin, Weblogic 등과 같은 서버 자체 연결 풀을 사용하십시오.
최대 절전 모드 구성은 다음과 같습니다. <!-<property name = "hibernate.connection.datasource"> java : comp/env/jdbc/crm> <property name = "show_sql"> true </property> <속성 이름 = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixDialect </property> <property name = "hibernate.generate_statistics"> true </property>->
그 중 Java의 JDBC/CRM : Comp/ENV/JDBC/CRM은 해당 서버의 데이터베이스 연결 풀의 이름이며 해당 환경에서 구성해야합니다.
Tomcat 구성은 첫 번째 Tomcat 구성 방법에 설명되어 있습니다. JNDI의 이름은 상황에 따라 수정되어야하며 Hibernate에서 사용하는 이름에 해당해야합니다.
====================================================
위 구성에는 최대 절전 모드 패키지에 포함 된 각 데이터베이스 연결 풀에 대한 JAR 패키지가 필요합니다. 최신 웹 사이트가 필요한 경우 해당 웹 사이트에서 다운로드 할 수 있습니다.
3. 스프링의 연결 풀 구성 방법 :
<bean id = "dataSource"Destroy-method = "close"> <property name = "driver className"> value> com.mysql.jdbc.driver </value> </property> <property name = "url"> <value> jdbc : mysql : // localhost : 3306/dbname> </property> <property 이름 = "username"> <value> root> </property> <속성 이름 = "password"> value> ****** </value> </value> </property> <속성 이름 = "maxactive"> value> 100 </value> </property> <property name = "maxwait"> <value> 1000 </value> </property> <value> </property " 이름 = "DefaultAutoCommit"> <alue> true </value> </property> <속성 이름 = "removeaBandoned"> // 연결 풀의 누출을 피하기 위해 연결 풀을 자동으로 재활용하십시오 </value> </property> </bean>
넷째, 오늘에 대해 이야기하고 싶은 마지막 것은 코드 쓰기를 통해 연결 풀을 구성하는 것입니다. 코드는 다음과 같습니다.
import java.sql.*; import java.sql.datasource; import org.apache.commons.dbcp.basicdatasource; public connectionpool {private static basicdatasource dbs = null; public statisource setupdatasource () {new Basicdatasource (); // bds.sestdriverclassName ( "com.mysql.jdbc.driver"); // 연결 사용자 이름 bds.setusername ( "root"); // 연결 비밀번호를 설정하십시오. 초기화 된 연결 bds.setInitialSize (50); // 동시에 적용되는 총 연결 수를 동시에 BDS.SetMaxActive (-1)로 설정하십시오. // 버퍼 풀 bds.setMaxIdle (-1)에서 최대 연결 수를 설정합니다. bds.setmaxwait (-1); 연결 풀에 연결 수를 표시하는 return (DataSource) BDS;} // 메소드 공개 정적 무효 인쇄물 DS (DataSource DS)는 sqlexception {bds = (Basicdatasource) ds; system.out.out.println (); system.out.out.println (); ds) sqlexception {bds = (Basicdatasource) ds; bds.close ();}} 연결 풀을 얻으려면이 클래스의 정적 메소드 만 사용하여 구성 ()을 구성 할 수 있습니다.
위의 것은 귀하에게 소개 된 Java 데이터베이스 연결 풀에 대한 몇 가지 구성 방법입니다 (예로 MySQL 데이터베이스를 가져옵니다). 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!