환경변수 확인
X-PUSH를 실행할 때에 윈도우의 경우 startup.bat에서 set_xpush.bat를 호출하고 유닉스/리눅스의 경우는 startup.sh에서 set_xpush.sh를 호출합니다. set_xpush는 공통으로 X-PUSH가 구동하기 전에 환경변수 JAVA_HOME과 XPUSH_HOME을 설정하여 주는 스크립트입니다. 시스템의 설정을 바꿀 필요 없이 해당 스크립트를 수정하여 환경변수의 경로명 등 변경사항을 적용합니다.
윈도우: set_xpush.bat
아래 그림은 윈도우에서 set_xpush.bat 파일을 수정한 예시입니다.
rem JAVA_HOME을 set JAVA_HOME으로 변경하고 JAVA_HOME에 설치된 JDK의 경로를 설정했습니다. XPUSH_HOME의 설정 역시 같으며 X-PUSH의 현재 경로를 설정합니다. 윈도우 서비스 사용 시 JDK 32bit, 64bit에 따라 JSEXE 환경 변수를 설정합니다.
@echo off set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131 set XPUSH_HOME=D:\xpush\xpush-3.0.0 rem JAVA_OPTS_JMX_SSL= rem JAVA_OPTS_JMX=%JAVA_OPTS_JMX_SSL% if not "%JAVA_HOME%" == "" goto java_home_checked echo environment variable JAVA_HOME is not defined. goto end :java_home_checked if not "%XPUSH_HOME%" == "" goto xpush_home_checked set XPUSH_HOME=%cd%\.. echo WARNING! environment variable XPUSH_HOME is not defined. %XPUSH_HOME% will be used for XPUSH_HOME :xpush_home_checked rem JSEXE=%XPUSH_HOME%\bin\javaservice\32\JavaService.exe set JSEXE=%XPUSH_HOME%\bin\javaservice\64\JavaService.exe :end
환경변수 XPUSH_HOME에 설정되는 값이 C:\xpush-3.0.0\와 같이 “\”로 끝나지 않게 합니다.
유닉스/리눅스: set_xpush.sh
아래 그림은 유닉스/리눅스에서 set_xpush.sh 파일 수정 예시입니다.
#JAVA_HOME을 export JAVA_HOME으로 변경하고 JAVA_HOME에 설치된 JDK의 경로를 설정합니다. XPUSH_HOME의 설정 역시 같으며 X-PUSH의 현재 경로를 설정합니다.
#!/bin/sh JAVA_HOME=/home/xpush/jdk8u252-b09 XPUSH_HOME=/home/xpush/xpush/xpush-3.0.0 #JAVA_OPTS= #CLASSPATH= #JAVA_OPTS_JMX_SSL= #JAVA_OPTS_JMX="$JAVA_OPTS_JMX_SSL" if [ -z "$JAVA_HOME" ] ; then echo environment variable JAVA_HOME is not defined. exit; fi if [ -z "$XPUSH_HOME" ] ; then XPUSH_HOME=`cd .. ; pwd` echo WARNING! environment variable XPUSH_HOME is not defined. $XPUSH_HOME will be used for XPUSH_HOME fi
서비스 등록/해제
윈도우 운영체제에서 서비스로 등록하기 위해서는 XPUSH_HOME/bin으로 이동하여 install_as_service.bat를 아래 그림과 같이 실행합니다.
실행 시 관리자 권한으로 실행해야 합니다.
D:\xpush-3.0.0\bin>install_as_service.bat The X-PUSH automatic service was successfully installed Press any key to continue ...
다음은 service 등록 확인 모습입니다.
서비스에 등록된 것을 해제하기 위해서는 XPUSH_HOME/bin으로 이동하여 uninstall_from_service.bat를 아래 그림과 같이 실행합니다.
D:\xpush-3.0.0\bin>uninstall_from_service.bat X-PUSH not running. Press any key to continue ... Successfully uninstalled service X-PUSH Press any key to continue ... D:\xpush-3.0.0\bin>
구동
X-PUSH를 구동하기 위해 $XPUSH_HOME/bin의 startup.bat 혹은 startup.sh 스크립트를 사용합니다.
윈도우: startup.bat
D:\xpush-3.0.0\bin>startup.bat
유닉스/리눅스: startup.sh
/homexpush/xpush-3.0.0/bin$ ./startup.sh
DB/SSL 암호화 startup
DB/SSL 정보가 암호화 된 X-PUSH를 구동하기 위해 키 값을 추가한 명령을 수행합니다.
D:\xpush-3.0.0\bin>startup.bat encrypt
키 값은 7자 이하로 설정되어야 합니다.
DB와 SSL 인증서 모두 암호화 되었다면, 키 값은 동일하게 설정되어야 합니다.
종료
shutdown은 $XPUSH_HOME/bin의 shutdown.bat 혹은 shutdown.sh 스크립트를 사용합니다.
윈도우: shutdown.bat
종료 스크립트인 shutdown.bat를 다음의 파라미터로 실행합니다.
파라미터 | 설명 |
---|---|
host | X-PUSH서버의 IP 주소 |
port | X-PUSH admin 포트. 기본값은 50003 |
id | admin 계정 |
password | admin 패스워드 |
shutdown.bat localhost 50003 tobesoft xpush
유닉스/리눅스: shutdown.sh
X-PUSH 서버를 설치한 계정으로 로그인한 후 $XPUSH_HOME/bin 디렉터리로 이동합니다.
종료 스크립트인 shutdown.sh를 다음의 파라미터로 실행합니다.
파라미터 | 설명 |
---|---|
host | X-PUSH서버의 IP 주소 |
port | X-PUSH admin 포트. 기본값은 50003 |
id | admin 계정 |
password | admin 패스워드 |
./shutdown.sh localhost 50003 tobesoft xpush
설치후 동작 확인
배포본에 포함된 샘플을 사용하여 X-PUSH 서버의 설치와 정상 동작을 확인할 수 있습니다.
X-PUSH 서버 실행
X-PUSH 서버를 윈도우에서는 startup.bat , 유닉스/리눅스에서는 startup.sh 로 시작합니다.
D:\xpush-3.0.0\bin>startup.bat
/homexpush/xpush-3.0.0/bin$ ./startup.sh
포트 확인
netstat command 를 이용하여 X-PUSH 포트를 확인합니다.
Port | service | 비고 |
---|---|---|
50000 | WebPublisher Service | 필수 |
50001 | Publisher Service | 필수 |
50002 | Provider Service | 필수 |
50003 | Monitor Service | 필수 |
50005 | JMX Service | 선택 |
50006 | JMX Service | 선택 |
50007 | Node Service | 필수 |
50009 | Ssh Service | 선택 |
D:\xpush-3.0.0\bin>netstat -an | find "5000" TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING TCP 0.0.0.0:50001 0.0.0.0:0 LISTENING TCP 0.0.0.0:50002 0.0.0.0:0 LISTENING TCP 0.0.0.0:50003 0.0.0.0:0 LISTENING TCP 0.0.0.0:50007 0.0.0.0:0 LISTENING TCP 0.0.0.0:50009 0.0.0.0:0 LISTENING TCP [::]:50000 [::]:0 LISTENING TCP [::]:50001 [::]:0 LISTENING TCP [::]:50002 [::]:0 LISTENING TCP [::]:50003 [::]:0 LISTENING TCP [::]:50007 [::]:0 LISTENING TCP [::]:50009 [::]:0 LISTENING
메시지 클라이언트 스크립트 실행
$XPUSH_HOME\bin로 이동하여 실행합니다.
D:xpush-3.0.0\bin> run_client_demo_version_3_push.bat localhost 50001 red tobesoft xpush /home/xpush/xpush-3.0.0/bin$ run_client_demo_version_3_push.sh localhost 50001 red tobesoft xpush
메시지 종류 | 스크립트 명 |
---|---|
일반/신뢰성 클라이언트 | run_client_demo_version_3_push.bat/sh |
D:\xpush\xpush-3.0.0\bin>run_client_demo_version_3_push.bat localhost 50001 red tobesoft xpush host=localhost, port=50001, projectid=red, id=tobesoft, password=xpush
스크립트를 실행하여 메시지를 받을 준비를 합니다.
메시지 공급 스크립트 실행
$XPUSH_HOME\bin로 이동하여 실행합니다.
메시지 종류 | 스크립트 명 |
---|---|
일반 메시지 | run_provider_demo_2_Push.bat/sh |
신뢰성 메시지 | run_provider_demo_2_Reli.bat/sh |
$XPUSH_HOME\bin로 이동하여 일반 메시지 프로바이더를 실행합니다.
C:\xpush-3.0.0\bin>run_provider_demo_2_Push.bat localhost 50002 red tobesoft xpush /home/xpush/xpush-3.0.0/bin$ ./run_provider_demo_2_Push.sh localhost 50002 red tobesoft xpush
D:\xpush\xpush-3.0.0\bin>run_provider_demo_2_Push.bat localhost 50002 red tobesoft xpush host=localhost, port=50002, projectid=red, id=tobesoft, password=xpush, version=2 push message sent. 'pushed current time : 16:48:57' push message sent. stock code=1001, price=10000 push message sent. 'pushed current time : 16:48:59' push message sent. stock code=1002, price=10000 push message sent. 'pushed current time : 16:49:01' push message sent. stock code=1003, price=10000 push message sent. 'pushed current time : 16:49:03' push message sent. stock code=1004, price=10000
메시지 수신
메시지가 제공되면 X-PUSH 서버에 의해 메시지가 클라이언트로 푸시되고 다음 그림과 같이 메시지를 받은 것을 확인할 수 있습니다.
D:\xpush\xpush-3.0.0\bin>run_client_demo_version_3_push.bat localhost 50001 red tobesoft xpush host=localhost, port=50001, projectid=red, id=tobesoft, password=xpush action = 'PUSH' topic = 'CPDT', '1001' message = '10000' action = 'PUSH' topic = 'OPDT', 'ALL' message = 'pushed current time : 16:48:57' action = 'PUSH' topic = 'CPDT', '1002' message = '10000' action = 'PUSH' topic = 'OPDT', 'ALL' message = 'pushed current time : 16:48:59' action = 'PUSH' topic = 'CPDT', '1003' message = '10000' action = 'PUSH' topic = 'OPDT', 'ALL' message = 'pushed current time : 16:49:01' action = 'PUSH' topic = 'CPDT', '1004' message = '10000' action = 'PUSH' topic = 'OPDT', 'ALL' message = 'pushed current time : 16:49:03'