설치
에이전트 설치 사양
CPU – 4Core
Memory – 512M
Hard Disk – 50G
https://api-v2.fingerpush.com
Java SDK 설치
1) 에이전트는 JDK1.8 이상 설치가 필요하며, OpenJDK, Oracle JDK 모두 가능합니다.
2) JDK 다운로드 및 설치 방법은 아래 링크를 참조해 주세요.
에이전트 설치
1) 설치는 압축된 파일을 풀면 완료됩니다.
2) 설치 경로 예시
/home/fingerpush/FingerPushAgent
3) 정상적인 경우 아래와 같은 디렉토리 구조를 가집니다. 실행 파일은 cmd 폴더 내에 위치합니다.
시작 fpAgent.sh start
종료 fpAgent.sh stop
mssql
mariadb
mssql
mysql
oracle
postgreSQL
edb
tibero
데이터 베이스 환경 설정
1) 설정파일은
메인 설정파일 agentDistServerConfig.xml,
데이터베이스 설정파일 agentDistServerConfig_.xml 두 개로 구분됩니다.
샘플은 아래와 같습니다.
agentDistServerConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<version>3.0.0</version>
<reloadtime>10000</reloadtime>
<database>mysql</database>
<fingerpush>
...
위 샘플처럼 mysql을 태그에 입력하면 agentDistServerConfig_mysql.xml 파일이 로딩됩니다.
2) 데이터베이스 연결을 위한 정보를 입력합니다. 파일 내용 중 아래 태그 내의 항목을 서버 정보에 맞게 입력합니다.
MSSQL - agentDistServerConfig_mssql.xml
<kindofdb>mssql</kindofdb>
<mssql>
<driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
<url>jdbc:sqlserver://아이피:포트;databaseName=디비명;</url>
<minidle>5</minidle>
<maxactive>30</maxactive>
<username>디비사용자</username>
<password>디비암호</password>
</mssql>
Mysql Ver.5 - agentDistServerConfig_mysql.xml
<kindofdb>mysql</kindofdb>
<mysql>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://아이피:포트/디비명</url>
<minidle>5</minidle>
<maxactive>30</maxactive>
<username>디비사용자</username>
<password>디비암호</password>
</mysql>
Mysql Ver.8 - agentDistServerConfig_mysql.xml
<kindofdb>mysql</kindofdb>
<mysql>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://아이피:포트/디비명</url>
<minidle>5</minidle>
<maxactive>30</maxactive>
<username>디비사용자</username>
<password>디비암호</password>
</mysql>
Mariadb - agentDistServerConfig_mariadb.xml
<kindofdb>mariadb</kindofdb>
<mariadb>
<driver>org.mariadb.jdbc.Driver</driver>
<url>jdbc:mariadb://아이피:포트/디비명</url>
<minidle>5</minidle>
<maxactive>30</maxactive>
<username>디비사용자</username>
<password>디비암호</password>
</mariadb>
Oracle - agentDistServerConfig_oracle.xml
<kindofdb>oracle</kindofdb>
<oracle>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@아이피:포트:SID</url>
<minidle>5</minidle>
<maxactive>30</maxactive>
<username>디비사용자</username>
<password>디비암호</password>
</oracle>
Tibero - agentDistServerConfig_tibero.xml
<kindofdb>tibero</kindofdb>
<tibero>
<driver>com.tmax.tibero.jdbc.TbDriver</driver>
<url>jdbc:tibero:thin:@아이피:포트:SID</url>
<minidle>5</minidle>
<maxactive>30</maxactive>
<username>디비사용자</username>
<password>디비암호</password>
</tibero>
PostgreSql - agentDistServerConfig_postgresql.xml
<kindofdb>postgresql</kindofdb>
<postgresql>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://아이피:포트/디비명?currentSchema=스키마명</url>
<minidle>5</minidle>
<maxactive>30</maxactive>
<username>디비사용자</username>
<password>디비암호</password>
</postgresql>
edb- agentDistServerConfig_edb.xml
<kindofdb>edb</kindofdb>
<edb>
<driver>org.edb.Driver</driver>
<url>jdbc:edb://아이피:포트/디비명?currentSchema=스키마명</url>
<minidle>5</minidle>
<maxactive>30</maxactive>
<username>디비사용자</username>
<password>디비암호</password>
</edb>
3) 테이블 생성 옵션을 설정합니다.
DB 공통- agentDistServerConfig_DBNAME.xml
<table autocreate="true">
<master table="AGPUSH_MASTER">
<queue table="AGPUSH_QUEUE">
<result table="AGPUSH_RESULT" monthly-backup="true" monthly-backup-max="6" pre-create="2">
</table>
autocreate: 테이블 자동생성 옵션. False일 경우 database 폴더의 스크립트를 사용하여 직접 생성할 필요가 있습니다.
monthly-backup: 테이블 매월 백업 옵션.
True일 경우 RESULT 테이블명이 AGPUSH_RESULT_YYYYMM 형태가 됩니다.
monthly-backup-max: 백업 테이블 보관 기한.
6일 경우 6개월 지난 테이블을 삭제. -1일 경우 삭제 비활성
pre-create: 테이블 사전 생성 옵션.
2일 경우 테이블 생성 시 다음 두 달의 테이블을 추가 생성. 0일 경우 비활성
4) 테이블 데이터 정리 옵션을 설정합니다.
DB공통- agentDistServerConfig_DBNAME.xml
<table autocreate="true">
<master table="AGPUSH_MASTER">
<queue table="AGPUSH_QUEUE" useless-eviction="true" evict-deadline="72" evict-starttime="1" evict-endtime="5">
<result table="AGPUSH_RESULT">
</table>
useless-eviction: 테이블 자동정리 옵션 on/off 설정
True일 경우 QUEUE 테이블의 데이터 중 senddate가 일정시간 이상 지난 데이터를 삭제합니다.
evict-deadline: QUEUE 테이블 데이터 정리하는 기준 시간
(현재시간으로부터 evict-deadline시간 이상 지난 데이터 삭제)
evict-starttime: 자동정리 시작시간
evict-endtime: 자동정리 종료시간
자동정리는 evict-starttime 이상 evict-endtime 미만의 범위에서 1일 1회 동작합니다.
에이전트 로그 환경 설정
1) 설치경로/bin/log4j2.properties 파일을 메모장으로 로딩합니다.
2) 설치 경로의 logs 폴더로 경로를 설정합니다.(변경도 가능합니다.)
날짜/용량별로 롤오버 되는 로그파일은 fpagent_2022-03-04_1.log.gz 형태
실행 환경 설정
1) 설치경로/bin/cmd/실행파일
윈도우의 경우 startup.bat, fpAgent.bat,
리눅스/유닉스의 경우 fpAgent.sh 파일을 메모장으로 로딩 합니다.
bin/cmd/fpAgent.sh
bin/cmd/stop.sh
위 두 파일은 실행 권한이 필요합니다.
2) JAVA_HOME에 설치 서버에 동작 중인 JAVA프로그램 설치 경로를 입력합니다.
3) AGENT_HOME에 프로그램 설치 단계에서 설치했던 경로를 입력합니다.
예) /home/user/FingerPushAgent
4) fpAgent.bat, Startup.bat 파일 내용
@echo off
setLocal EnableDelayedExpansion
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_80(경로 설정)
set JVM_PATH=%JAVA_HOME%\bin\java.exe
set AGENT_HOME=C:\에이전트(경로 설정)
set SVC_NAME=FingerPushAgent
set TARGET_APP=com.finger.agents.server.AgentDistServer
cd %AGENT_HOME%
set CLASSPATH="
for /R .\lib %%a in (*.jar) do (
set CLASSPATH=!CLASSPATH!;%%a
)
set CLASSPATH=!CLASSPATH!;%AGENT_HOME%\bin;"
"%JAVA_HOME%\bin\java.exe" -classpath %CLASSPATH% -Xms128m -Xmx512m %TARGET_APP%
@echo off
setLocal EnableDelayedExpansion
set AGENT_HOME=C:\에이전트(경로 변경)
set SVC_NAME=FingerPushAgent
set NSSM32=%AGENT_HOME%\JavaService\nssm32.exe
set NSSM64=%AGENT_HOME%\JavaService\nssm64.exe
.
.
.
:EXIT
echo.
pause
REM exit
#!/bin/sh
#empty
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
AGENT_HOME=/home/fingerpush/fingerPushAgent
.
.
DAEMONCLASS=com.finger.agents.server.AgentDistServer
DAEMONNAME=fpAgent
JAVA_PNAME="-Dpn=$DAEMONNAME"
JAVA_PROPERTY="-Xms32m -Xmx512m"
case "$1" in
start)
echo "start FingerPush Agent!"
nohup $JAVA_COMMAND $JAVA_PNAME $JAVA_PROPERTY -cp $CLASSPATH $DAEMONCLASS > /dev/null 2>&1&
exit 0
;;
stop)
echo "stop FingerPush Agent"
sh $AGENT_HOME/cmd/stop.sh $DAEMONNAME
exit 0
;;
esac
실행 여부 확인: - ps -ef | grep fpAgent 명령어를 통해 실행 확인 여부 가능합니다.
실행
OS별 실행 명령어
1) 설치된 경로(d:\FingerPushAgentsForMssql) \bin\cmd\startup.bat를 실행하면 프롬프트창이 생기면서 에이전트가 구동됩니다.
bin\cmd\fpAgent.sh start/stop
2) Windows의 경우 콘솔창에서 에이전트 실행메뉴를 확인할 수 있습니다.
에이전트의 윈도우 서비스를 사용하려면 1번, 3번 중 윈도우 환경에 맞게 선택하면 됩니다. 서비스 등록과 동시에 실행이 됩니다.
5번을 선택해서 정상 동작하는 것을 확인 후 서비스에 등록합니다.
일반 콘솔창에서 사용하려면 5번을 선택하면 됩니다.
서비스 등록이 안되는 경우 CMD창을 관리자 모드로 실행 바랍니다.
에이전트 실행
1) 에이전트가 실행되면서 에이전트에서 사용하는 테이블은 자동 생성됩니다.
2) AGPUSH_MASTER
캠페인 발송 시 푸시 발송에 대한 주요 정보를 저장하는 테이블입니다.
Master 테이블에 1개의 로우가 입력되고, msg 테이블에 대상자를 입력하면 됩니다.
3) AGPUSH_QUEUE
푸시 발송할 데이터를 입력하는 큐 테이블이며 테이블에 입력된 순서대로 발송이 됩니다.
데이터는 발송 후 AGPUSH_RESULT_YYYYMM로 이동되고 queue테이블에서 삭제됩니다.
4) AGPUSH_RESULT_YYYYMM
msg 테이블에 입력된 발송 데이터의 결과가 저장되는 테이블입니다.
데이터는 월별로 백업되며, senddate컬럼값을 기준으로 AGPUSH_RESULT_YYYYMM 테이블에 값이 저장됩니다.
5) 에러 코드(error_code)