01. 시스템 기동 시 트러블 슈팅
WAS를 통해 시스템 실행 시에 서비스가 올라오지 않는 경우입니다.
- 정상적인 실행 상태
로그 생성 경로에 Matrix.log가 생성된 후에 matrix_service.log가 생성.
기동이 완료된 후에 matrix_service.log를 확인하여 정상적으로 기동 되었는지 체크.
Application의 모든 라이브러리가 문제 없이 올라와야 서비스가 정상적으로 동작합니다.
각 WAS 및 환경에 따라서 기동에 시간이 걸릴 수도 있기 때문에 반드시 로그의 마지막 올라온 라인을 확인하여야 합니다.
로그에 destrory가 찍히면 정상 기동 된 상태가 아니기 때문에 WAS가 올라왔다 하더라 WAS 로그를 확인하여 문제가 있는지 체크하여 주시기 바랍니다.
정상 로그
......................................
WARN [2023-11-16 15:49:40] c.m.f.c.u.RefreshableSqlSessionFactoryBean - > RefreshableSqlSessionFactoryBean [refreshMapper] folder not found
INFO [2023-11-16 15:49:40] c.m.f.common.config.MybatisConfig - RefreshableSqlSessionFactory was success created !!
INFO [2023-11-16 15:49:41] c.m.f.common.config.MybatisConfig - sessionFactoryBean() resources_default size : 4
INFO [2023-11-16 15:49:41] c.m.f.common.config.MybatisConfig - sessionFactoryBean() resources_database size : 3
INFO [2023-11-16 15:49:41] c.m.f.common.config.MybatisConfig - sessionFactoryBean() resources size : 4
INFO [2023-11-16 15:49:41] c.m.f.common.config.MybatisConfig - SqlSessionFactory was success created !!
DEBUG [2023-11-16 15:49:44] c.m.f.c.c.WebSecurityConfig$$EnhancerBySpringCGLIB$$a7c450d4 - ============= [WebSecurityConfig] configure start call =============
INFO [2023-11-16 15:49:44] c.m.f.c.c.WebSecurityConfig$$EnhancerBySpringCGLIB$$a7c450d4 - cross origin setting (allowed origin: [http://192.168.0.83:8080, http://192.168.0.81:9090/matrix, http://192.168.11.45:9090/matrix7, http://192.168.11.81/matrix6]) success
INFO [2023-11-16 15:49:44] c.m.framework.common.util.CommonUtil - [CommonUtil] fileDelete() run complete [path:D:\tomcat\apache-tomcat-8.5.59\webapps\matrix7\reports2\config\rsa]
INFO [2023-11-16 15:49:44] c.m.f.c.c.WebSecurityConfig$$EnhancerBySpringCGLIB$$a7c450d4 - ======= [WebSocketConfiguration] registry start ========
DEBUG [2023-11-16 15:49:44] c.m.f.c.s.w.SignalingWebSocketHandler - ============= signalingWebSocketHandler constructor ==============
DEBUG [2023-11-16 15:49:44] c.m.f.c.c.WebSecurityConfig$$EnhancerBySpringCGLIB$$a7c450d4 - [webSocket handshakeHandler setting][isJeus:false]
DEBUG [2023-11-16 15:49:44] c.m.f.c.s.s.CustomConcurrentSessionControlAuthenticationStrategy - [Session Concurrent Set [max session cnt: -1]
- 정상적인 AUD 서버가 기동 되지 않은 상태
matrix_service.log 로그를 확인하였을 때 아래처럼 나타나면 WAS는 올라가 있더라 서버가 정상적으로 기동 되지 않은 상태이므로 WAS 로그를 확인한다.
WAS 로그를 통해 Exception 을 확인 후 트러블 슈팅 원인에 포함되지 않은 항목은 연구소로 문의.
비정상 로그
INFO [2022-12-30 11:39:41] c.m.f.c.c.WebSecurityConfig$$EnhancerBySpringCGLIB$$a787d175 - ============= matrix_service destroy start ===============
INFO [2022-12-30 11:39:41] c.m.f.c.c.WebSecurityConfig$$EnhancerBySpringCGLIB$$a787d175 - ============= matrix_service destroy end ===============
| |
원인 | Was별 logback를 사용하는 경우에 충돌로 인하여 어플리케이션 로그가 생성 안되는 경우입니다. |
해결책 | WAS별 application 라이브러리가 우선 적용되도록 설정합니다. |
Jeus8.5 이상 | JEUS 8.5 버전에서 신규 기능으로 추가된 라이브러리로 인해 로그 기록에 문제가 있는 이슈 $JEUS_HOME/lib/system 디렉토리에 존재하는 아래 2개 라이브러리를 제거(백업) 후 was 재기동 후에 다시 로그가 생성되는지 확인합니다.
- ehcache-scf-replication-jar-with-dependencies.jar - hazelcast-all4.2.1.jar |
Weblogic | Application 경로의 WEB-INF 아래에 weblogic.xml 에 우선 적용 설정합니다. 해당 파일이 없다면 신규로 생성하여 적용. 예시) WEB-INF/weblogic.xml
<container-descriptor> <prefer-web-inf-classes>false</prefer-web-inf-classes> <prefer-application-packages> <package-name>ch.qos.logback.*</package-name> </prefer-application-packages> </container-descriptor> |
| |
원인 | JEUS7 은 Hibernate 5 버전은 기본으로 지원하지 않아 발생하는 경우입니다. |
해결책 | JESU7 환경에서 적용 될 수 있도록 환경 설정을 해야 합니다. |
| Jeus Admin에서 설정하거나 직접 설정 파일 수정하여 처리합니다. Servers -> 해당서버명 -> Basic -> User Interceptor -> Jeus Classloader Append Class Path & Boot Classloader Append Class Path 로 설정
1. Boot Classloader Append Class Path에 hibernate-jpa-2.1-api-1.0.0.Final.jar , validation-api-2.0.1.Final.jar 추가 ex)D:\tomcat\apache-tomcat-8.5.59\webapps\matrix7\WEB-INF\lib\hibernate-jpa-2.1-api-1.0.0.Final.jar;D:\tomcat\apache-tomcat-8.5.59\webapps\matrix7\WEB-INF\lib\validation-api-2.0.1.Final.jar 2. Jeus Classloader Append Class Path 에 AUD 플랫폼 컨테이너 서버 경로 설정 ex) D:\tomcat\apache-tomcat-8.5.59\webapps\matrix7 3. lib 폴더에 validation-api-2.0.1.Final.jar 없을 경우에 물리적 파일 추가 4. lib 폴더에서 jboss-transaction-api_1.2_spec-1.1.1.Final.jar 삭제 |
| |
원인 | Was에서 사용하는 라이브러리와 Application 라이브러리 충돌로 인해 Application 라이브러리가 WAS 의 우선 순위에 밀려 해당 버전으로 정상적으로 로딩 되지 않아 발생한 현상입니다. |
해결책 | WAS별 application 라이브러리가 우선 적용되도록 설정합니다. |
Jeus8 | Jeus Admin에서 설정하거나 직접 설정 파일 수정하여 처리합니다. Servers -> 해당서버명 -> Basic -> User Interceptor -> Jeus Classloader Append Class Path 로 설정
Jeus Classloader Append Class Path에 Application 라이브러리 lib 경로를 설정. Ex) /home/jeus8/apps/matrix7/WEB-INF/lib |
Weblogic | Application 경로의 WEB-INF 아래에 weblogic.xml 에 우선 적용 설정합니다. 해당 파일이 없다면 신규로 생성하여 적용. 예시) WEB-INF/weblogic.xml
<container-descriptor> <prefer-web-inf-classes>false</prefer-web-inf-classes> <prefer-application-packages> <package-name>javax.jws.*</package-name> <package-name>org.apache.xerces.*</package-name> <package-name>com.sun.xml.messaging.saaj.*</package-name> <package-name>com.ctc.wstx.stax.*</package-name> <package-name>javax.xml.stream.*</package-name> <package-name>com.matrix.framework.*</package-name> <package-name>org.hibernate.validator.*</package-name> </prefer-application-packages> </container-descriptor> |
Jboss | Web Application에 jboss-deployment-structure.xml 추가하여 배포 예시) WEB-INF/ jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <exclusions> <module name="org.hibernate.validator"/> <module name="org.apache.commons.logging"/> <module name="org.apache.log4j"/> <module name="org.slf4j"/> <module name="org.slf4j.impl"/> </exclusions> </deployment> </jboss-deployment-structure> |
| |
원인 | Application 서버가 주기적으로 자동으로 reloading 되면서 발생하는 현상입니다. |
해결책 | WAS별 application 라이브러리가 우선 적용되도록 설정합니다. |
Jeus8.5 이상 | Tomcat에서 server.xml 의 reloadable 값을 false로 설정합니다. 먼저 AUD용 docbase의 reloadable값이 true로 설정되어 있는지 확인합니다. true로 설정되어 있다면 $Tomcat_HOME/conf 디렉토리에 존재하는 server.xml 파일을 수정합니다. <Context docBase="C:/AUDPlatform_7/matrix" path="" reloadable="false" /></Host> |
02. 운영 중의 트러블 슈팅
| |
원인 | 기본값은 동일 아이디에 대한 중복 로그인을 허용하지 않기 때문에 운영 중 변경 시 옵션 변경 필요 |
해결책 | Admin을 통하여 옵션값만 변경시에 서버로 적용이 되지 않기 때문에 추가 설정 파일 및 서버 재기동이 필요합니다. 추후 Admin을 통하여 자동 반영 되도록 수정할 예정입니다. |
| 1. Admin에 접속하여 시스템 운영관리 > PORTAL 설정 > 더 보기 클릭하여 OP_SYSCONF의 값을 N으로 설정합니다. 2. WEB-INF/classes/framework/service/service_api.properties 파일을 열어서 Matrix.security.auth.max.count=-1로 변경합니다. 3. 서버를 재기동 합니다. 4. 동일한 아이디로 중복 로그인이 가능한지 확인합니다. |
| |
원인 | oracle14.jar에서는 isClose() 메소드가 존재하지 않는 버전이지만 AUD 플랫폼에서 사용하는 mybatis의 버전은 select 시에 isClose() 를 확인 후 처리하는 버전 |
해결책 | mybatis 버전을 isClose() 속성을 체크하지 않는 버전으로 다운그레이 한다. |
| 1. WEB-INF/lib/ mybatis용 jar 파일 버전을 낮춥니다. mytabis-3.5.6.jar → mybatis-3.4.1.jar mybatis-spring-2.0.5.jar → mybatis-spring-2.0.0.jar 2. 서버를 재기동 합니다. |