/* * Copyright 2001-2006 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the ";License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS"; BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.log4j.db; /** * log4j 의 DBAppender 의 Oracle 적용을 위한 확장 클래스 * <p> * <b>NOTE</b>: log4j-1.3alpha-8 의 DB Appender 를 extends 하고 있으며 * useSupportsGetGeneratedKeys flag 에 따라 JDBC3.0 의 getGeneratedKeys 를 사용하지 않는 옵션 * 추가한 Appeder 이다. Oracle 인 경우 (ojdbc-14.jar jdbc type 4 thin) getGeneratedKeys * 를 실행할 때 java.sql.SQLException: 허용되지 않은 작업 (operation not allowed) 에러가 나는데 * EgovDBAppender 를 통해 useSupportsGetGeneratedKeys 를 사용하지 않도록 설정하여 Oracle 에 대한 * DBAppender 의 처리에 문제가 없도록 지원한다. * * @author 실행환경 개발팀 우병훈 * @since 2009.03.09 * @version 1.0 * @see <pre> * == 개정이력(Modification Information) == * * 수정일 수정자 수정내용 * ------- -------- --------------------------- * 2009.03.09 우병훈 최초 생성 * * </pre> */ public class EgovDBAppender extends DBAppender { /** useSupportsGetGeneratedKeys flag - default 는 false */ private boolean useSupportsGetGeneratedKeys = false; /** * 현재 useSupportsGetGeneratedKeys 설정 여부 - log4j.xml 에 <param * name="useSupportsGetGeneratedKeys" value="false" /> 의 설정에 따름 * * @return boolean(true/false) */ public boolean isUseSupportsGetGeneratedKeys() { return useSupportsGetGeneratedKeys; } /** * log4j.xml 의 useSupportsGetGeneratedKeys 설정에 대한 setter. * useSupportsGetGeneratedKeys 설정이 없는 경우 default 는 false 임. * * @param useSupportsGetGeneratedKeys * - <param name="useSupportsGetGeneratedKeys" value="false" /> 와 * 같이 설정 */ public void setUseSupportsGetGeneratedKeys( boolean useSupportsGetGeneratedKeys) { this.useSupportsGetGeneratedKeys = useSupportsGetGeneratedKeys; } /** * 사용자가 정의한 useSupportsGetGeneratedKeys 설정에 따라 JDBC3.0 의 getGeneratedKeys 를 * 사용하지 않는 옵션으로 override 할 수 있음. Oracle 인 경우 JDBC API 로 getGeneratedKeys 가 * 존재하지만 실행 시 java.sql.SQLException: 허용되지 않은 작업 의 에러가 발생하는 문제를 회피하기 위해 * 확장하였음. */ @Override public void activateOptions() { // TODO Auto-generated method stub super.activateOptions(); // useSupportsGetGeneratedKeys flag 에 따라 JDBC3.0 의 getGeneratedKeys 를 // 사용하지 않는 옵션으로 // 덮어쓸 수 있음. cnxSupportsGetGeneratedKeys = this.useSupportsGetGeneratedKeys; } }