이 문서는 WebLogic 10.3.6 설치에 관한 문서 입니다. 이 시점에서 WebLogic 10.3.6 는 아주 오래된 버전이다. JDK 1.6 을 기반으로 하고 JEE 도 오래된 버전을 지원한다. 그런데도 간혹 프로젝트를 하다보면 이 버전을 사용하는 곳도 심심치 않아 경악할 때가 있다. WebLogic 을 버전 업그레이드를 한다고 하려면 어짜피 오래된 버전에 관해서 조금 알아 둘 필요가 있고 WebLogic 의 기본 구성의 경우에는 버전에 크게 상관이 없는 경우도 있어 나름대로 의미가 있다. 설치 WebLogic 10.3.6 버전은 Oracle 홈페이지에서 다운로드 받을 수 있다.정확하게 말하면 WebLogic […]
Java 설치
이 글은 Java 를 리눅스에 설치하는 법을 다룹니다. Java 는 JDK, JRE가 존재하는데 WAS 서버 운영을 위해서는 JDK를 설치하는게 여러모로 좋습니다. 다운로드 다운로드는 Oracle 홈페이지의 Java 페이지에서 받을 수 있습니다. 보시면 다양한 패키지를 제공하는데, 저는 64bit 리눅스 tar.gz 파일을 다운로드 받았습니다. 설치 tar.gz 파일을 다운로드 받았다면 설치는 압축을 해제하는 것으로 사실상 끝이 납니다.
|
1 2 3 |
tar xvzf jdk-7u80-linux-x64.tar.gz -C /opt cd /opt ln -s /opt/jdk1.7.0_80 java |
설정하기 자바 설치가 끝났다면 이를 시스템이 인식할 수 있도록 설정해줍니다. 설정은 자바 홈 디렉토리, 패스, 클래스패스등을 입니다.
|
1 2 3 4 |
export JAVA_HOME=/opt/java export JRE_HOME=/opt/java/jre export PATH=$PATH:/opt/java/bin:/opt/java/jre/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar |
이를 매번 입력하기 보다는 /etc/profile 맨 아래에 적어주면 […]
Ubuntu 16.04 KVM 게스트에 콘솔 접속하기
KVM 가상화를 사용하고 있고 게스트로 Ubuntu16.04 를 사용하고 있다면 콘솔 접속을 위해서는 Grub2 설정을 다음과 같이 해주면 된다.
|
1 2 3 4 |
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0" GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --stop=1" |
위와같이 해주고 다음과 같이 grub 을 갱신해준다.
|
1 |
update-grub |
Apache Tomcat JNDI 설정
Apache Tomcat 도 JNDI 설정을 할 수 있다. 특히나 데이터베이스 연결을 위해서 JNDI 설정을 사용할 수 있다. JNDI 를 사용하면 Web Application 내에서 데이터베이스 연결을 할 필요가 없이 네이밍(Naming) 을 호출함으로써 간단히 해결된다. 이 문서에서는 MySQL 을 위한 Apache Tomcat JNDI 설정 에 대한 것이다. MySQL Connector/J 설치 JNDI 를 이용해서 MySQL 연결을 설정하기 위해서는 MySQL Connector/J 를 먼저 설치해줘야 한다. 이것은 MySQL 홈페이지에서 다운로드 가능한데 파일이 jar 확장자를 가진 하나의 파일이 필요하다. 이 파일을 Apache Tomcat 라이브러리 디렉토리에 복사해주면 […]
Postgresql 9.x Replication – Streaming Log
Streaming log replication 은 Postgresql 9.0 부터 도입된 기능이다. 이 기능은 Primary 에서 Standby 서버로 직접 전송함으로서 replication delay 를 줄여준다. 따라서 pg_xlog 파일전송이 필요가 없다. 또 xlog 를 Streaming 으로 받기 위해서 Primary 서버에 REPLICATION 권한의 접속 계정이 필요하다. Replication 권한 사용자 생성. Primary 서버에서 REPLICATION 권한의 사용자를 다음과 같이 생성해준다.
|
1 |
CREATE ROLE repuser WITH REPLICATION PASSWORD '12345' LOGIN |
그리고 Standby 서버에서 Primary 접속을 위해서 pg_hba.conf 파일을 Standby 서버 접속을 허용해 줍니다.
|
1 2 3 |
# The standby server must connect with a user that has replication privileges. # TYPE DATABASE USER ADDRESS METHOD host replication repuser 192.168.96.26/32 md5 |
중요한 것은 DATABASE 에 반드시 ‘replication’ 이여야 한다. Streaming Replication 을 위한 postgresql.conf […]
M-HA MySQL 설정
MySQL 은 인기있는 오픈소스 데이터베이스 시스템이다. 언제나 데이터베이스 시스템이라면 항상 따라오는 것이 Master-Slave 리플리케이션 환경이고 거기에 덧붙여 자동 페일오버(Auto FailOver) 를 어떻게 할 것이라는 골머리 앓는 주제가 따라서 나온다. MySQL 의 경우에 자체 적인 FailOver 솔루션이 있다. Fabric 이 그것인데, 아직은 많이 쓰이지는 않는 모양이다. 대신에 AutoFailOver 를 지원하는 제3의 툴들이 존재하는데 M-HA 가 바로 이러한 솔루션이다. M-HA 는 일본인이 Perl 을 이용해서 작성한 솔루션이다. github 저장소에 소스코드는 공개되어 있으며 저장소이름은 mha4mysql-manager 이다. 구조 M-HA 는 Manager 와 Node 로 […]
pom.xml Plugin execution not covered by lifecycle configuration 오류
앞에서 mave timestamp 의 TimeZone 변경을 위해서 build-helper-maven-plugin 를 사용했는데 Eclipse 에서 다음과 같이 오류가 난다. 위 오류내용은 다음과 같다. Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:build-helper-maven-plugin: 1.11:timestamp-property (execution: timestamp-property, phase: validate) Eclipse 는 오류를 표시했지만 maven 은 정상적으로 동작한다. 이는 Ecliplse 의 m2e 커넥터의 lifecycle mapping 정보를 명확하게 해야하는데 이것이 없어서 오류로 표시하는 것이다. 다음 URL 에 관련 내용이 있다. M2E_plugin_execution_not_covered 내용을 보면 <pluginManagement> 를 이용해서 lifecycle-mapping 을 설정해주어야 한다. 위 내용을 기반으로 build-helper-maven-plugin 의 execution 에 대해서 mapping […]
Maven timestamp 에 timezone 변경하기
maven 은 build timestamp 를 변수로 지원한다. 하지만 자세히 보면 이 timestamp 는 UTC timezone 에 맞춰져 있다. maven 에서 timestamp 는 기본적으로 UTC timezone 을 기반으로 한다. 그런데 이것을 다른 timezone 으로 변경할려면 어떻게 해야할까? build-helper-maven-plugin maven 에선 많은 plugin 을 지원한다. build-helper-maven-plugin 은 우리가 필요하는 기능인 timestamp 에 timezone 변경을 지원한다. 변경된 timezone 의 시간을 표시할 변수와 timestamp format, timezone 등을 지정하면 여기서 지정한 변수를 사용할 수 있게 된다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.11</version> <executions> <execution> <id>timestamp-property</id> <goals> <goal>timestamp-property</goal> </goals> <configuration> <name>current.time</name> <pattern>yyyyMMddHHmmss</pattern> <timeZone>Asia/Seoul</timeZone> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warName>${project.artifactId}-${current.time}</warName> </configuration> </plugin> |
위와같이 current.time 변수에 한국시간의 timezone 으로 지정한 timestamp […]
war 파일이름에 TimeStamp 찍기
Maven 을 이용하면 자동으로 컴파일을 해주고 war 파일로 만들어 준다. 그런데, 이때에 war 파일에 TimeStamp 를 찍을 수 있다. war 파일명이 project.name-timestamp.war 형식으로 파일을 작성하도록 할수 있다. 방법도 대략 두가지 방법이 있다. maven 자체 기능 maven 3.0 이상이라면 자체 기능을 이용할 수 있다. properties 에 timestamp 와 maven.build.timestamp.format 을 지정하고 build 영역에서 파일명을 지정해주면 된다. 예를들면 다음과 같다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
... <properties> .... <!-- Timestamp of build --> <timestamp>${maven.build.timestamp}</timestamp> <maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format> </properties> ... <build> <finalName>${project.artifactId}_${project.version}_${timestamp}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> .... </plugin> </plugins> </build> |
위와같이 설정하고 maven build 를 하면 다음과 같이 출력되는 것을 볼수가 있다.
|
1 2 3 4 5 6 7 8 9 |
[INFO] --- maven-war-plugin:2.2:war (default-war) @ mybatis_example1_trans --- [INFO] Packaging webapp [INFO] Assembling webapp [mybatis_example1_trans] in [/Users/systemv/Documents/workspace_java/mybatis_example1_trans/target/mybatis_example1_trans-2016070613147] [INFO] Processing war project [INFO] Copying webapp resources [/Users/systemv/Documents/workspace_java/mybatis_example1_trans/src/main/webapp] [INFO] Webapp assembled in [148 msecs] [INFO] Building war: /Users/systemv/Documents/workspace_java/mybatis_example1_trans/target/mybatis_example1_trans-2016070613147.war [INFO] WEB-INF/web.xml already added, skipping [INFO] |
maven-war-plugin 으로 war 파일명 지정 이것은 사실 위 […]
책임회피를 위해서 상용소프트웨어를 쓴다
시스템을 다루는 사람으로써 SI를 하면서 느끼점을 적어보고자 한다. 사실 지금도 SI 를 하고 있고 나는 시스템을 설계하는 일을 하고 있다. 처음에 프로젝트를 시작할때에 개발자들 위한 개발환경을 구축해줘야 한다. 여기서 대략적인 운영서버에서 사용할 소프트웨어에 대해서 정하게 된다. 나 같은 경우엔 오픈소스를 주로 다루었고 상용서버는 거의 다루지 않았었다. 그러다보니 상용서버에 대해서 그렇게 안전성이 좋다거나 성능이 좋다고 생각하지 않는 경향이 있다. 오히려 오픈소스들이 상용서버에 비해서 다루기가 더 쉬운 편이다. 각설하고 WAS 서버를 무엇으로 할지에 대해서 대기업PM들과 이야기를 하게되었다. JAVA 프로젝트였기 때문에 WAS 서버를 […]