MOM_BTP

[TIBCO Rendezvous 8.4] CMD에서 통신 테스트 및 Java 예제 실습 방법

피오농부 2025. 4. 24. 06:52
반응형

TIBCO Rendezvous는 고속 데이터 통신을 위한 미들웨어로, CMD(Command Prompt)와 Java를 활용해 직접 통신 테스트가 가능합니다. 이 글에서는 TIBCO Rendezvous 통신 구조 개요부터 CMD 환경 테스트, Java 예제 실습까지 순서대로 설명합니다.


목차

  1. TIBCO Rendezvous(RV)란?
  2. CMD 환경에서 Rendezvous 통신 테스트
  3. JAVA로 구현하는 Tibrv 통신 예제
  4. 통신 중 발생 가능한 오류 및 해결 팁
  5. 참고 자료 및 공식 문서

1. TIBCO Rendezvous(RV)란?

**TIBCO Rendezvous(줄여서 RV)**는 TIBCO에서 제공하는 미들웨어 솔루션으로, UDP 기반의 피어 투 피어 아키텍처를 사용해 고속 통신을 가능하게 합니다.
주로 실시간 대용량 메시지 전송이 필요한 금융, 통신, 제조 시스템에서 사용되며, 다양한 언어의 API를 지원합니다.

설치 경로 내 example 폴더에 각 언어별 샘플 코드와 문서가 포함되어 있습니다.


2. CMD 환경에서 TIBCO Rendezvous 통신 테스트

2-1. 데몬 구성 및 환경변수 설정

먼저 설치 경로에서 tibrvcfg.bat를 실행해 데몬을 설정합니다.

cd %TIBRV_HOME%\bin
tibrvcfg.bat

발생 가능 오류:

  • TIBRV_HOME is not set: 환경 변수 설정 필요
  • bin\java.exe not found: JAVA_HOME 설정 확인

: tibrvcfg.bat 없이도 tibrvlisten 실행 시 자동으로 데몬이 구동됩니다.


2-2. 리스너와 메시지 전송 테스트

리스너 실행

tibrvlisten -service 7500 -network ;;127.0.0.1 -daemon tcp:7500 TEST.MESSAGE

메시지 전송

tibrvsend -service 7500 -network ;;127.0.0.1 -daemon tcp:7500 TEST.MESSAGE Hello RV
  • 메시지를 전송하면 리스너 측에서 수신 메시지를 바로 확인할 수 있습니다.
  • 서비스 포트데몬 포트 개념을 이해하면 테스트가 훨씬 쉬워집니다.

2-3. 라이선스 경고 해결 방법

테스트 중 아래와 같은 경고가 출력될 수 있습니다:

ADV_CLASS="WARN" ADV_SOURCE="SYSTEM" ADV_NAME="LICENSE.EXPIRE"

이는 tibrv.tkt 라이선스 파일이 누락되어 발생하며, TIBCO 홈 디렉토리에 해당 파일을 복사하고 시스템을 재부팅하면 해결됩니다.


3. JAVA로 구현하는 Tibrv 통신 예제

TIBCO 설치 폴더 내 src/example/java 디렉토리에서 Java 예제 소스를 확인할 수 있습니다.

3-1. Client → Server Request 코드

TibrvTransport transport = new TibrvRvdTransport(service, network, daemon);
TibrvMsg query_msg = new TibrvMsg();
query_msg.addField(new TibrvMsgField("AAA", "전송할 데이터", TibrvMsg.STRING));
TibrvMsg reply_msg = transport.sendRequest(query_msg, timeout);
System.out.println(reply_msg.getField("BBB").data);

3-2. Server → Client Reply 코드

public void onMsg(TibrvListener listener, TibrvMsg msg) {
    TibrvMsg reply_msg = new TibrvMsg();
    reply_msg.addField(new TibrvMsgField("BBB", "리턴할 데이터", TibrvMsg.STRING));
    listener.getTransport().sendReply(reply_msg, msg);
}

주의: 동일 ID로 두 번째 요청을 보낼 경우 "id already in use" 오류가 발생할 수 있습니다.


4. 통신 중 발생 가능한 오류 및 해결 팁

오류 메시지 원인 해결 방법

id already in use 동일한 ID 재사용 메시지 생성 시 ID 중복 피하기
LICENSE.EXPIRE 라이선스 파일 없음 tibrv.tkt 복사 후 재부팅
JAVA_HOME not found JAVA 경로 설정 누락 환경변수에 JAVA_HOME 등록

XML 포맷을 사용할 경우 TibrvXml 관련 오류가 발생할 수 있으니 포맷 설정에 주의하세요.


5. 참고 자료 및 공식 문서

반응형