Tuxedo 서비스를 Java에서 호출하기 위해서는 일반적으로 Oracle Jolt 라이브러리를 사용

Tuxedo 서비스를 Java에서 호출하기 위해서는 일반적으로 Oracle Jolt 라이브러리를 사용합니다. Jolt는 Java 애플리케이션이 Tuxedo 서비스와 통신할 수 있게 해주는 인터페이스입니다.

아래는 Jolt를 사용하여 Tuxedo 서비스를 호출(TR)하는 기본적인 Java 샘플 코드입니다.

1. 사전 준비사항

  • 라이브러리: jolt.jarjoltremote.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. 주요 클래스 설명

Tuxedo 서비스를 Java에서 호출하기 위해서는 일반적으로 Oracle Jolt 라이브러리를 사용

  1. JoltSessionAttributes: Tuxedo 서버의 주소(APPADDRESS), 타임아웃 등 접속 환경을 설정합니다.

  2. JoltSession: 설정된 속성을 바탕으로 Tuxedo 서버와 연결을 맺습니다.

  3. JoltRemoteService: 호출하고자 하는 Tuxedo 서비스 객체를 생성합니다.

  4. setValue / addValue: 서비스에 전달할 입력 데이터를 설정합니다. (FML32 버퍼 등을 사용할 때 유용)

  5. call(): 실제 동기(Synchronous) 방식으로 Tuxedo 서비스를 호출합니다.

  6. getStringValue / getIntValue: 서비스 처리 후 반환된 결과값을 가져옵니다.

4. 참고사항 (WTC 사용 시)

만약 WebLogic 서버 위에서 Java를 실행하고 Tuxedo와 통신한다면, Jolt 대신 **WTC (WebLogic Tuxedo Connector)**를 사용하는 것이 일반적입니다. WTC는 JNDI를 통해 Tuxedo 서비스를 호출하며, 설정 방식이 다릅니다.

위 코드는 Standalone Java 프로그램이나 일반적인 WAS 환경에서 Jolt를 직접 사용할 때 적합한 예시입니다. 호출하려는 Tuxedo 서비스의 입력 필드명과 데이터 타입을 미리 알고 있어야 setValue 등을 정확히 호출할 수 있습니다.