기본적인 Olog 설치 및 파일은 다음 사이트에서 받을 수 있다.
http://olog.github.io/2.2.7-SNAPSHOT/
시스템 구성
- Debain Jessie 64bit Kernel 3.16.0
- Glassfish Application Server v3.1.2.2
- MySql 5.5
- Olog Service v2.2.6
Olog Service는 Web application ARchive(WAR)파일로 제공되므로 이를 Deploy할 수 있는 Application Server가 필요하다. 현재 가장 많이 사용되고 있는 서버 프로그램으로는 Glassfish와 Apache Tomcat이 있으며, 여기서는 Glassfish v3.1.2.2를 사용하였다. Glassfish 설치는 다음 포스트를 참고하기 바란다.
Debian에서 Glassfish 설치
MySql은 Debian 기본 Package에 포함되어 있으며 aptitude 명령으로 설치 할 수 있다.
root@debian:~# aptitude install mysql-server-5.5
MySQL에 사용할 root 패스워드를 설정하고 Ok를 누른다.
Debian에서 Glassfish 설치
1. MySql 설치
MySql은 Debian 기본 Package에 포함되어 있으며 aptitude 명령으로 설치 할 수 있다.
root@debian:~# aptitude install mysql-server-5.5
MySQL에 사용할 root 패스워드를 설정하고 Ok를 누른다.
Olog Database 추가
- attributes
- entries
- logbooks
- logs
- logs_attributes
- logs_logbooks
- properties
- schema_version
- subscriptions
MySql에 로그인 한 후 Databases를 만든다.
scwook@debain:~$ mysql -u root -p
Enter password: scwook@debain:~$ mysql -u root -p
mysql> source /home/scwook/Downloads/olog_scheme.sql;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| olog |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
Database changed
mysql> show tables;
+-----------------+
| Tables_in_olog |
+-----------------+
| attributes |
| levels |
| logbooks |
| logs |
| logs_attributes |
| logs_logbooks |
| properties |
| statuses |
| subscriptions |
+-----------------+
9 rows in set (0.01 sec)
mysql> exit
MySql Connector Java 설치
TAR Archive 파일을 다운 받는다.
다운 받은 파일의 압축을 해제하고 connector 파일을 glassfish library 폴더에 복사한다.
root@debain:~/Downloads# tar xvf mysql-connector-java-5.1.38.tar.gz
root@debain:~/Downloads# cd mysql-connector-java-5.1.38
root@debain:~/Downloads# cp mysql-connector-java-5.1.38-bin.jar /opt/glassfish3/glassfish/lib
2. Glassfish 설정
JDBC Connection Pool 생성
- Common Tasks - Resources - JDBC - JDBC Connection Pools 메뉴 선택
- New 버튼을 눌러 다음과 같이 설정한다.
- New 버튼을 눌러 다음과 같이 설정한다.
- Pool Name: OlogPool
- Resource Type: javax.sql.ConnectionPoolDataSource
- Datasource Classname: com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
- databaseName - olog
- serverName - localhost
- user - [mysql user]
- password - [mysql password]
JDBC Resource 생성
- Common Tasks - Resources - JDBC - JDBC Resources 메뉴 선택
- New 버튼을 눌러 다음과 같이 설정한다.
- JNDI Name: jdbc/olog
- Pool Name: OlogPool
Realm 추가
- Common Tasks - Configurations - Server-config - Security - Realms 선택
- New 버튼을 눌러 다음과 같이 설정한다.
- Name: olog
- Class Name: com.sun.enterprise.security.auth.realm.file.FileRealm
- JAAS Context: fileRealm
- Key File: ${com.sun.aas.instanceRoot}/config/olog_keyfile
- Common Tasks - Configurations - Server-config - Security - Realms - olog 선택
- Manage Users 를 클릭하여 사용자를 추가한다.
- User ID: [사용자 ID]
- Group List: [사용자가 속한 그룹]
- Group List는 다음 중 하나로 설정한다.
- olog-admins: Logbook 및 Tag 생성, 삭제, Log 작성
- olog-logs: Log 작성
Depoly
다음 주소에 접속하여 Olog 2.2.6 버전을 받는다.
압축을 해제한다.
scwook@debian:~/olog$ tar xvf Olog_2-2-6.tar.gz
scwook@debian:~/olog$ ls
OlogAPI-2.2.6.jar OlogAPI-2.2.6-sources.jar
OlogAPI-2.2.6-javadoc.jar olog-service-2.2.6.war
scwook@debian:~/olog$ tar xvf Olog_2-2-6.tar.gz
scwook@debian:~/olog$ ls
OlogAPI-2.2.6.jar OlogAPI-2.2.6-sources.jar
OlogAPI-2.2.6-javadoc.jar olog-service-2.2.6.war
- Common Tasks - Applications 선택
- Deploy 버튼을 눌러 다음과 같이 설정한다.
- Location: olog-service-2.2.6.war
- Type: Web Application
- Context Root: olog
- Application Name: olog-service-2.2.6
Trouble Shooting
ProblemJDBC Connection Pools 생성시 다음과 같은 에러가 발생할 경우.
HTTP Status 500 - Internal Server Error
type Exception report
message Internal Server Error
description The server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.
GlassFish Server Open Source Edition 4.1.1
Soultion
shell 명령을 통해 JDBC Connection Pools를 생성한다.
root@debian:/opt/glassfish4/bin# ./asadmin create-jdbc-connection-pool --datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource --restype javax.sql.ConnectionPoolDataSource --property user=dbuser:password=dbpasswd:serverName=localhost:databaseName=olog OlogPool
Problem
2. JDBC Resource 생성시 다음과 같은 에러가 발생할 경우.
class java.lang.RuntimeException
Solution
shell 명령을 통해 JDBC Resources를 생성한다.
root@debian:/opt/glassfish4/bin# ./asadmin create-jdbc-resource --connectionpoolid OlogPool jdbc/olog
Problem
Applications Deploy할 때 다음과 같은 에러가 발생할 경우.
An error has occurred Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.ddlutils.DatabaseOperationException: Error while reading the database metadata: Error in allocating a connection. Cause: Connection could not be allocated because: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused.. Please see server.log for more details. An error has occurred
Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.ddlutils.DatabaseOperationException: Error while reading the database metadata: Error in allocating a connection. Cause: Connection could not be allocated because: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused.. Please see server.log for more details.
Glassfish v3를 사용한다.
작성자가 댓글을 삭제했습니다.
답글삭제