Tuxedo 서비스를 Java에서 호출하기 위해서는 일반적으로 Oracle Jolt 라이브러리를 사용합니다. Jolt는 Java 애플리케이션이 Tuxedo 서비스와 통신할 수 있게 해주는 인터페이스입니다.
아래는 Jolt를 사용하여 Tuxedo 서비스를 호출(TR)하는 기본적인 Java 샘플 코드입니다.
1. 사전 준비사항
-
라이브러리: jolt.jar, joltremote.jar 파일이 프로젝트 클래스패스(Classpath)에 추가되어 있어야 합니다.
-
Tuxedo 설정: Tuxedo 서버 쪽에 JSL(Jolt Server Listener)이 설정되어 있어야 하며, 호출하려는 서비스가 Jolt Repository에 등록되어 있어야 합니다.
2. Java 샘플 코드 (Jolt 사용)
Java
import bea.jolt.*;
import java.util.*;
public class TuxedoClient {
public static void main(String[] args) {
JoltSession session = null;
JoltSessionAttributes attr = new JoltSessionAttributes();
// 1. Tuxedo 서버 접속 정보 설정 (JSL 주소)
// 형식: //IP주소:포트
attr.setString(attr.APPADDRESS, "//127.0.0.1:9000");
attr.setInt(attr.IDLETIMEOUT, 300);
try {
// 2. 세션 연결 (사용자 아이디, 역할, 암호 등이 필요 없으면 null)
session = new JoltSession(attr, null, null, null, null);
System.out.println("Tuxedo 세션 연결 성공!");
// 3. 호출할 서비스 생성 (예: TOUPPER 서비스 - 문자열을 대문자로 변환)
JoltRemoteService service = new JoltRemoteService("TOUPPER", session);
// 4. 입력 파라미터 설정
// Tuxedo 필드명에 맞춰 데이터를 넣습니다. (STRING은 보통 FML 필드나 데이터명)
service.setValue("STRING", "hello tuxedo world");
// 5. 서비스 호출 (Transaction Request)
service.call();
// 6. 결과 처리
String result = service.getStringValue("STRING", "Default Value");
System.out.println("결과 값: " + result);
} catch (JoltException e) {
// Tuxedo 에러 처리
System.err.println("Tuxedo 에러 발생: " + e.getMessage());
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 7. 세션 종료
if (session != null) {
session.done();
System.out.println("세션 종료.");
}
}
}
}
3. 주요 클래스 설명

-
JoltSessionAttributes: Tuxedo 서버의 주소(APPADDRESS), 타임아웃 등 접속 환경을 설정합니다.
-
JoltSession: 설정된 속성을 바탕으로 Tuxedo 서버와 연결을 맺습니다.
-
JoltRemoteService: 호출하고자 하는 Tuxedo 서비스 객체를 생성합니다.
-
setValue / addValue: 서비스에 전달할 입력 데이터를 설정합니다. (FML32 버퍼 등을 사용할 때 유용)
-
call(): 실제 동기(Synchronous) 방식으로 Tuxedo 서비스를 호출합니다.
-
getStringValue / getIntValue: 서비스 처리 후 반환된 결과값을 가져옵니다.
4. 참고사항 (WTC 사용 시)
만약 WebLogic 서버 위에서 Java를 실행하고 Tuxedo와 통신한다면, Jolt 대신 **WTC (WebLogic Tuxedo Connector)**를 사용하는 것이 일반적입니다. WTC는 JNDI를 통해 Tuxedo 서비스를 호출하며, 설정 방식이 다릅니다.
위 코드는 Standalone Java 프로그램이나 일반적인 WAS 환경에서 Jolt를 직접 사용할 때 적합한 예시입니다. 호출하려는 Tuxedo 서비스의 입력 필드명과 데이터 타입을 미리 알고 있어야 setValue 등을 정확히 호출할 수 있습니다.
5. 이미 설치된 Tuxedo 서버에서 복사 (가장 일반적인 방법)
개발 중인 환경에 Tuxedo가 설치되어 있다면, 서버 내부 디렉토리에 해당 파일이 이미 존재합니다.
-
경로: $TUXDIR/udataobj/jolt
-
예 (Linux): /home/tuxedo/oracle/tuxedo12.2.2.0.0/udataobj/jolt/jolt.jar
-
예 (Windows): C:\oracle\tuxedo12c\udataobj\jolt\jolt.jar
-
-
방법: 해당 디렉토리에서 jolt.jar, joltadmin.jar, joltcommon.jar 등을 로컬 개발 PC로 복사하여 프로젝트의 lib 폴더에 넣거나 빌드 경로에 추가합니다.
6. Oracle Software Delivery Cloud (공식 다운로드)
Tuxedo 설치 파일 전체를 다운로드하여 그 안에 포함된 Jar 파일을 추출하는 방법입니다. (Oracle 계정 필요)
-
**Oracle Software Delivery Cloud**에 접속 및 로그인합니다.
-
검색창에 **”Oracle Tuxedo”**를 입력합니다.
-
사용 중인 버전(예: 12.2.2 또는 22c)을 선택하고 배구 바구니(Add to Cart)에 담습니다.
-
Checkout으로 이동하여 OS(Linux 또는 Windows)를 선택합니다.
-
다운로드 목록 중 **”Oracle Tuxedo 기반 설치 파일”**을 다운로드합니다.
-
설치 파일을 압축 해제하거나 임시로 설치를 진행하면, 위에서 언급한 udataobj/jolt 경로에서 파일을 찾을 수 있습니다.
7. Oracle Technology Network (OTN) – 개발자용
개발 및 테스트 용도로 무료 다운로드가 가능한 버전입니다.
-
**Oracle Tuxedo 다운로드 페이지**에 접속합니다.
-
“Oracle Tuxedo” 섹션에서 원하는 버전의 설치 파일을 다운로드합니다. (라이선스 동의 필요)
-
마찬가지로 설치 파일 내부에서 Jar를 추출합니다.
⚠️ 주의사항
-
Maven Central 미지원: Oracle의 라이선스 정책상 Maven이나 Gradle의 공개 저장소에는 등록되어 있지 않습니다. 따라서 사내 **Nexus(Private Repository)**가 있다면 그곳에 직접 업로드하여 사용해야 합니다.
-
버전 일치: 가능하면 호출하려는 Tuxedo 서버의 버전과 동일한 버전의 jolt.jar를 사용하는 것이 가장 안전합니다. 버전이 다를 경우 예기치 않은 통신 에러가 발생할 수 있습니다.
-
라이선스: Jolt 라이브러리는 Tuxedo 라이선스에 포함되어 있습니다. 상용 서비스 배포 시 라이선스 위반 여부를 확인하십시오.
요약: 파일을 찾는 가장 빠른 법
개발 서버(Linux)에 접속하여 아래 커맨드를 입력해 보세요.
Bash
find / -name "jolt.jar" 2>/dev/null
찾아진 경로에 있는 파일을 FTP나 SCP로 가져오는 것이 가장 확실하고 빠릅니다.