설치 및 실행
항목 | 사양 | 비고 |
---|---|---|
설치 환경 | 리눅스 , 리눅스, 윈도우, OSX JDK 1.8 이상 | java 구동 환경과 동일 |
설치 권장 사양 | CPU – 4Core
Memory – 512M
Hard Disk – 50G | 월 100만 건 기준 3년 |
발송 속도 | 2,000건~5,000건/분 | 설정 조건 및 설치 장비의 성능에 의존됨 |
접속 도메인 | https://api-v2.fingerpush.com | SSL 사용 |
사용 포트 | 443 | SSL 포트 사용 |
1) 에이전트는 JDK1.8 이상 설치가 필요하며, OpenJDK, Oracle JDK 모두 가능합니다.
2) JDK 다운로드 및 설치 방법은 아래 링크를 참조해 주세요.
1) 설치는 압축된 파일을 풀면 완료됩니다.
2) 설치 경로 예시
OS | Path |
---|---|
Windows | D:/FingerPushAgent |
Linux | /home/fingerpush/FingerPushAgent |
3) 정상적인 경우 아래와 같은 디렉토리 구조를 가집니다. 실행 파일은 cmd 폴더 내에 위치합니다.
OS | Command |
---|---|
Windows | startup.bat, fpAgent.bat |
Linux | 시작 fpAgent.sh start 종료 fpAgent.sh stop |
1depth | 2depth | Description |
---|---|---|
bin | cmd | 에이전트 실행 경로 |
bin | com | 프로그램 class 경로 |
database | mssql mariadb mssql mysql oracle postgreSQL edb tibero | 데이터베이스 종류별 스크립트 |
JavaService | | 자바용 윈도우 서비스 등록 프로그램 |
lib | | 라이브러리 폴더 |
logs | | 실행, 에러 로그 |
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.log
- 날짜/용량별로 롤오버 되는 로그파일은 fpagent_2022-03-04_1.log.gz 형태
1) 설치경로/bin/cmd/실행파일
윈도우의 경우 startup.bat, fpAgent.bat,
리눅스/유닉스의 경우 fpAgent.sh 파일을 메모장으로 로딩 합니다.
Windows | Linux |
---|---|
bin\cmd\startup.bat | bin/cmd/fpAgent.sh bin/cmd/stop.sh 위 두 파일은 실행 권한이 필요합니다. |
2) JAVA_HOME에 설치 서버에 동작 중인 JAVA프로그램 설치 경로를 입력합니다.
3) AGENT_HOME에 프로그램 설 치 단계에서 설치했던 경로를 입력합니다.
예) /home/user/FingerPushAgent
4) fpAgent.bat, Startup.bat 파일 내용
Windows – fpAgent.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%
Windows – startup.bat
@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
Linux
#!/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 명령어를 통해 실행 확인 여부 가능합니다.
1) 설치된 경로(d:\FingerPushAgentsForMssql) \bin\cmd\startup.bat를 실행하면 프롬프트창이 생기면서 에이전트가 구동됩니다.
Windows | Linux |
---|---|
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)
Last modified 5mo ago