Page tree
Skip to end of metadata
Go to start of metadata

macOS에 설치하는 과정에서 상당히 많은 어려움을 겪었다. 모든 사항들이 기억나진 않지만, 기록을 남겨본다.


  • 준비 사항
    • Java 버전
      • 하도 예외가 많이 발생하여 Java 버전을 7으로 낮춰봤는데, 아예 안 됨
      • 공식 문서에 8을 사용하라고 적혀 있는 것을 확인하였음
    • MySQL JDBC 드라이버 
    • <컨플루언스 홈 디렉토리>
      • <컨플루언스 설치 디렉토리>/confluence/WEB-INF/classes/confluence-init.properties 파일을 편집하여 <컨플루언스 홈 디렉토리> 지정
  • 실행 스크립트
    • 여러가지 있는데, start-confluence.sh/stop-confluence.sh을 주로 이용함
    • 실행 전에 JAVA_HOME과 PATH가 정상적으로 설정되어야 함
  • 로딩 타임
    • 맥북 미니 2010에서 실행하였는데 초기 로딩 타임이 상당히 길어서 start-confluence.sh 실행 후에 로그를 tail -f로 걸어서 지켜본 다음에 다음과 같은 메시지가 나오면 웹브라우저로 접속하여 확인해야 함
    • 02-Aug-2016 20:15:27.140 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 35451 ms
  • StuckThreadDetectionValve
    • 02-Aug-2016 17:30:23.555 WARNING [ContainerBackgroundProcessor[StandardEngine[Standalone]]] org.apache.catalina.valves.StuckThreadDetectionValve.notifyStuckThreadDetected Thread "http-nio-8090-exec-7" (id=36) has been active for 67,567 milliseconds (since 8/2/16 5:29 PM) to serve the same request for http://terzeron.net:8090/setup/setupembeddeddb-default.action and may be stuck (configured threshold for this StuckThreadDetectionValve is 60 seconds). There is/are 1 thread(s) in total that are monitored by this Valve and may be stuck.
       java.lang.Throwable
          at java.util.zip.ZipFile.open(Native Method)
          at java.util.zip.ZipFile.<init>(ZipFile.java:219)
          at java.util.zip.ZipFile.<init>(ZipFile.java:149)
          at java.util.jar.JarFile.<init>(JarFile.java:166)
          at java.util.jar.JarFile.<init>(JarFile.java:130)
      ...
    • 정확한 원인을 모르겠으나 nio 쓰레드가 일정 시간 동안 살아있으면 stuck되었다고 판단하여 경고 메시지를 출력하는 것으로 추정됨
    • 대처방안은 무시. 한참 기다리면 다음과 같이 오랜 시간이 걸려서 실행이 완료되었다고 나오기도 함
    • 02-Aug-2016 17:31:33.604 WARNING [ContainerBackgroundProcessor[StandardEngine[Standalone]]] org.apache.catalina.valves.StuckThreadDetectionValve.notifyStuckThreadCompleted Thread "http-nio-8090-exec-7" (id=36) was previously reported to be stuck but has completed. It was active for approximately 137,498 milliseconds.
  • MySQL 설정 문제

    • 테이블을 많이 생성하므로 별도의 데이터베이스를 생성해놓는 게 좋음
      • confluence로 추천
    • 만들 때 반드시 character set utf8, collate utf8_bin으로 만들어야 됨
    • CREATE DATABASE 'confluence' CHARACTER SET utf8 COLLATE utf8_bin;
    • my.cnf에도 비슷한 설정을 등록해두면 좋음

    • JDBC 접속 URL은 다음과 같이 할 것
      • jdbc:mysql://localhost:3306/confluence?useUnicode=true&characterEncoding=utf8&useSSL=false
      • localhost, 3306, confluence는 각각 호스트명, 포트번호, 데이터베이스명임
      • useSSL 옵션은 로그 파일에 자꾸 경고 메시지가 추가되길래(무한 반복) 추가하였고 그 이후로는 로그 메시지가 추가되지 않았음
        • Tue Aug 02 20:29:26 KST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
      • &amp; 대신 &을 사용하는 것에 주의할 것
  • 호스트명 IP 확인 문제
    • Caused by: java.util.concurrent.CompletionException: com.atlassian.confluence.tenant.VacantException: Confluence is vacant, a call to tenanted [public abstract net.sf.hibernate.Session net.sf.hibernate.SessionFactory.openSession() throws net.sf.hibernate.HibernateException] is not allowed.
    • 호스트명으로 IP를 확인할 수 없을 때 이런 예외가 발생한다.
    • 호스트명은 hostname 명령을 이용해 확인하고 그 호스트명으로 ping이나 nslookup을 실행하여 확인할 것
      • ping `hostname`
    • /etc/hosts 파일에 127.0.0.1 localhost에 호스트명을 추가해준다.

  • Spring Application Context 미설정 문제
    • HTTP Status 500 - java.lang.IllegalStateException: Spring Application context has not been set
      
      Type Exception report
      message java.lang.IllegalStateException: Spring Application context has not been set
      description The server encountered an internal error that prevented it from fulfilling this request.
      exception
      com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.IllegalStateException: Spring Application context has not been set
    • 권한 문제

  • 설치 중에 더 이상 진행되지 않고 예외와 stacktrace만 웹화면에 노출되는 경우
    • ./stop-confluence.sh
      rm -rf 컨플루언스홈디렉토리
      ./start-confluence.sh
    • <컨플루언스 홈 디렉토리>를 삭제한다.
      • <컨플루언스 홈 디렉토리>는 <컨플루언스 설치 디렉토리>/confluence/WEB-INF/classes/confluence-init.properties 파일에 설정되어 있음
  • No labels
Write a comment…