SUSE Certified Linux Administrator: Entry-level certification intended for people who have the knowledge of the SUSE Linux Enterprise 12 operating system and the administration. You need to attend the LI-3124 course to acquire this certification.
SUSE Certified Linux Professional: Senior-level certification that approves the candidates’ knowledge and aptitudes as they move towards the advanced administration of the SUSE Linux Enterprise 12 operating system. You need to attend LI-2124 and LI-3125 courses to acquire this certification.
SUSE Certified Linux Engineer: Senior-level certification that approves the candidates’ knowledge and aptitudes related to SUSE specific tasks related to systems administration, storage, networking, disaster recovery, and virtualization. You need to have a CLP 11 or 12 certifications to acquire this certification. It is suggested that applicants attend the LI-3124, LI-3125, and the up and coming CLE courses.
Oracle Linux Certification
Oracle Certified Associate, Linux 5 and 6
Oracle Certified Professional, Oracle Linux 6
Oracle Linux 6 Certified Implementation Specialist
Log4J 1.2.17은 EOL(End Of Lift) 프로젝트로 최신 버전으로 업그레이드 하기 위해서는 펀딩이 필요하다. 현재 릴리즈된 버전에 적용하기 위해서는 잠재적인 역호환성 문제가 있어 적용이 힘들고 2.21.x 버전부터는 새로운 로깅 라이브러리를 적용할 수 있을 것으로 기대한다.
58 Duplicate item added to a unique collection. For example, it may be that you tried to add the same layer to a map twice. Check for calls to map.addLayer() or other places where the map's layer collection is modified.
유니크한 컬렉션이 중복으로 추가되었다.
하나의 View를 공유해서 Map에 사용할 수 있다. 하지만 Layer는 복제해서 사용할 수 없다.
GeoServer를 윈도우에서 콘솔로 띄워 시작할 경우 퍼블리싱 되어 있는 레이어, 스타일 정보와 같은 많은 로그를 출력한다. 서비스에 올라가 있는 레이어가 몇개 안된다면 별다른 문제가 없겠지만 대부분의 운영 환경에서는 많은 양의 레이어가 서비스되고 있을 것이다. 그런데 그 레이어 관련 로그를 하나하나 콘솔창에 찍거나 로그 파일에 저장이 된다면 상당한 양의 로그가 저장이 될 것이다. 특히 WMS의 경우 타일 형식으로 서비스 되기 때문에 하나의 지도 영역을 그리기 위해 타일수 대로 로그가 찍힌다면 엄청난 양의 로그가 생성되는 것이다.
이런 문제를 해결하기 위해 간단히 설정 파일을 변경하여 처리해 줄 수 있다. GeoServer는 로그 관리를 위해 Log4j를 사용하는데 다양한 로그 정책을 선택할 수 있도록 설정 파일을 제공하고 이를 사용자는 선택하면 된다.
GeoServer 관리자 페이지의 전역 환경설정에서 로그 정책이 여러개 있는 것을 확인할 수 있는데, 기본 로그 정책은 DEFAULT_LOGGING.properties로 해당 파일을 수정하거나 다른 로그 정책을 선택하여 로그의 양을 줄일 수가 있다. 또는 간단하게 로그를 적게 출력하고 싶다면 PRODUCTION_LOGGING.properties를 선택하면 Error사항이 아니면 로그를 작성하지 않는다.
직접 로그 파일을 찾아서 열어 본다면 %GEOSERVER_HOME%\data\logs\DEFAULT_LOGGING.properties 경로에서 파일을 확인할 수 있다.
## This log4j configuration file needs to stay here, and is used as the default logging setup
## during data_dir upgrades and in case the chosen logging config isn't available.
log4j.rootLogger=WARN, geoserverlogfile, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{dd MMM HH:mm:ss} %p [%c{2}] - %m%n
log4j.appender.geoserverlogfile=org.apache.log4j.RollingFileAppender
# Keep three backup files.
log4j.appender.geoserverlogfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.geoserverlogfile.layout=org.apache.log4j.PatternLayout
log4j.appender.geoserverlogfile.layout.ConversionPattern=%d %p [%c{2}] - %m%n
log4j.category.log4j=FATAL
log4j.category.org.geotools=WARN
log4j.category.org.geotools.factory=WARN
log4j.category.org.geoserver=INFO
log4j.category.org.vfny.geoserver=INFO
log4j.category.org.springframework=WARN
log4j.category.org.geowebcache=INFO
log4j.category.org.geowebcache.seed.TruncateTask=WARN
Logging Level을 보면 4번째 라인에 log4j.rootLogger=WARN 로 설정되어 있고 geoserver의 일반적인 상태(로딩, 퍼브리싱 등)와 관련된 로그는 22번째 라인에 있는 log4j.category.org.geoserver=INFO로 되어 있다.
먼저 log4j의 로거 레벨은 여섯단계로 나누어져 있는데 TRACE < DEBUG < INFO < WARN < ERROR < FATAL 순이다. 레벨의 중요도가 낮을 수록 상위 레벨의 로그까지 포함하게 된다. 예를 들어 log4j.rootLogger=WARN의 경우 소스코드에서 WARN, ERROR, FATAL로 설정된 것들만 로그로 남기게 되어 있다.
결론으로 돌아와 log4j.category.org.geoserver=WARN 또는 그 상위 레벨로 변경하면 오류 상황이 아니면 로그가 발생되지 않는다.
at org.geotools.jdbc.JDBCDataStore.createSchema(JDBCDataStore.java:660)
at org.geotools.jdbc.JDBCDataStore.createSchema(JDBCDataStore.java:138)
... 25 more
Caused by: org.postgresql.util.PSQLException: ERROR: function srid(geometry) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
... 34 more
오류내용을 확인해 보니 srid function을 찾을 수 없다라고 나오는데, 기존 8.x버전에서 버전이 상향되면서 postgis 함수가 이름을 변경했는데 geotools 2.7.4버전 gt-jdbc-postgis가 postgresql-8.4-701.jdbc3를 참조하고 있었다.
사용하고 있는 DB 버전이 9.x 버전이기 때문에 기존의 함수를 추가해주기 위해서 C:\Program Files\PostgreSQL\9.3\share\contrib\postgis-2.1\legacy.sql 또는 legacy_minimal.sql에서 함수생성 쿼리를 찾을 수 있는데 아래 해당하는 데이터베이스에서 수행하면 된다.
(정확히 말하자면 PostgreSQL이 아니라 PostGIS에 있는 Spatial Function 이다.)