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 사용)
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 등을 정확히 호출할 수 있습니다.