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

 

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.jarjoltadmin.jarjoltcommon.jar 등을 로컬 개발 PC로 복사하여 프로젝트의 lib 폴더에 넣거나 빌드 경로에 추가합니다.

6. Oracle Software Delivery Cloud (공식 다운로드)

Tuxedo 설치 파일 전체를 다운로드하여 그 안에 포함된 Jar 파일을 추출하는 방법입니다. (Oracle 계정 필요)

  1. **Oracle Software Delivery Cloud**에 접속 및 로그인합니다.

  2. 검색창에 **”Oracle Tuxedo”**를 입력합니다.

  3. 사용 중인 버전(예: 12.2.2 또는 22c)을 선택하고 배구 바구니(Add to Cart)에 담습니다.

  4. Checkout으로 이동하여 OS(Linux 또는 Windows)를 선택합니다.

  5. 다운로드 목록 중 **”Oracle Tuxedo 기반 설치 파일”**을 다운로드합니다.

  6. 설치 파일을 압축 해제하거나 임시로 설치를 진행하면, 위에서 언급한 udataobj/jolt 경로에서 파일을 찾을 수 있습니다.

7. Oracle Technology Network (OTN) – 개발자용

개발 및 테스트 용도로 무료 다운로드가 가능한 버전입니다.

  1. **Oracle Tuxedo 다운로드 페이지**에 접속합니다.

  2. “Oracle Tuxedo” 섹션에서 원하는 버전의 설치 파일을 다운로드합니다. (라이선스 동의 필요)

  3. 마찬가지로 설치 파일 내부에서 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로 가져오는 것이 가장 확실하고 빠릅니다.