목차
1. WTC란
2. WTC 환경 세팅
3. 소스 설명
4. TIP

 

=================================================================================

 

1. WTC란
1.1 개요 부분
WTC ( WebLogic Tuxedo Connector )는 WebLogic server applications 와
Tuxedo services 사이에서 상호연동이 가능하게 하는 것으로써, xml 파일을 이용 하여,
WebLogic Server client에서 Tuxedo services를 호출 하고, Tuxedo clients에서
WebLogic Server Enterprise Java Beans (EJB)의 호출하며 사용을 할 수 있습니다.
그리고 Tuxedo ATMI와 비슷한 Java Application-to-Transaction Monitor Interface (JATMI)을
사용하여, WebLogic Server 와 Tuxedo가 서로 상호연동을 할 수 있습니다.

->Ref. http://edocs.bea.com/wls/docs61/wtc_admin/WTC_Admin_Intro.html#1104690

1.2 기능
- 새로 작성을 하거나 수정을 한 WebLogic Server Clients에서 Tuxedo의  서비스를 호출하여 사용 할 수 있습니다.
- 기존의 Tuxedo 코드 변환 없이 간단하게Tuxedo에서 WebLogic의 EJB를 호출 하여 사용 할 수 있습니다.
- 현재 구현을 한 Tuxedo 환경과 WebLogic Server applications와 통합이 가능 합니다.
- WebLogic JMS와 Tuxedo /Q나 서비스와 연동이 되며, 진보된 messaging services을 제공 합니다.
- Transaction 을 지원 하여 줍니다.
- CORBA Java 와 CORBA C++ server applications 사이에서 상호연동을 제공 합니다.
- WebLogic Server 와 Tuxedo 사이에서 multiple connections을 정의 하여 사용을 할 수 있습니다.
- 도메인 레벨에서 failover 와 fallback이 가능 합니다.
- eLink를 이용하여 mainframes 또는 다른 legacy applications 과 상호연동을 할 수 있습니다.
- WebLogic Process Integrator에서 Tuxedo ATMI 서비스로 Workflow를 관리 할 수 있습니다.

1.3 제한된 기능
- View buffers를 지원하지 않습니다.
- WebLogic Tuxedo Connector gateway에서 동적인 환경 변화를 지원하지 않습니다.
- Corba Tuxedo application에서 WebLogic로 in-bound의 트랜젝션을 지원하지 않습니다.
- out-bound RMI/IIOP을 지원하지 않습니다.
- double-byte character sets을 지원하지 않습니다.
- Conversation mode를 지원하지 않습니다.

1.4 Jolt와 차이점
- JOLT와 API가 비슷하게 구성이 되었으나 틀립니다.
- JOLT는 일반 자바 client에서나 Web server applications에서 사용이 가능 했으나,
WTC ( WebLogic Tuxedo Connector )에서는 사용이 되지 않습니다.
- JOLT에서는 WebLogic Server-Tuxedo transaction의 통합을 지원하지 않았으나,
WTC ( WebLogic Tuxedo Connector )에서는 지원을 합니다.
- JOLT는 double-byte character sets 을 지원을 하였으나
WTC ( WebLogic Tuxedo Connector )은 되지 않습니다.

--- 위 내용들은 BEA.com( edoc.bea.com )에 들어가시면 확인 가능합니다. ----

여기서 알아둘것은 Tuxedo 6.4이상과 Weblogic 6.1SP2에서 부터 확실히 지원됩니다.
기존 시스템에서 중요업무가 Tuxedo로 개발 되어서 신규 시스템 (특히 웹)으로 오면서
EJB에서 기존 Tuxedo 모듈을 사용하고자 하는 분들은 기존의 방법은 Corba를 사용하거나
Jolt를 사용하였습니다. 뭐 국산이 Jlink라는 제품들도 있고 제생각에는 시스템의
구성에 있어서 Weblogic을 선택하고자 하실 경우 아주 좋은 패키지인 것 같더라구요.
뭐 WTC를 사용한다고 따로 비용을 지불 하실 필요가 없습니다. 웹로직을 구입하신다면..

특히 쌍방향 Service Call과 2P-Commit이 제공된다는 것이 더욱 매력이 있더라구요.
소스구현에 있어서도 간단하구요. - 소스 첨부 확인 바람

 

 


2. WTC환경 세팅
Tuxedo  & Weblogic에 둘다 Setting을 해야합니다.
2.1 Tuxedo 세팅
2.1.1 ubbccbs.dat에 도메인 등록
….(생략)
DOMAINID    simpapp
….(생략)
DMADM SRVGRP=GRP_NONXACC01 SRVID=3200
GWADM SRVGRP=GRP_NONXACC01 SRVID=3300
GWTDOMAIN  SRVGRP=GRP_NONXACC01 SRVID=3400
….(생략)
2.1.2 tux.env의 파일에 다음과 같이 tuxedo domain의 경로를 지정
export BDMCONFIG=$TUXDIR/env/dmconfig
2.1.3 ubbdom.dat설정
*DM_RESOURCES
VERSION=U22
*DM_LOCAL_DOMAINS
TUXDOM GWGRP=GRP1
TYPE=TDOMAIN
DOMAINID="TUXDOM"
BLOCKTIME=20  
MAXDATALEN=56 
MAXRDOM=89        
DMTLOGDEV="/wtc_test/env/DMTLOG"
AUDITLOG="/wtc_test/env/AUDITLOG"
DMTLOGNAME="DMTLOG_TUXDOM"

*DM_REMOTE_DOMAINS
WLSDOM TYPE=TDOMAIN
    DOMAINID="WLSDOM"

*DM_TDOMAIN
TUXDOM NWADDR="//TuxedoIP:4550"
        NWDEVICE="/dev/tcp"
WLSDOM NWADDR="//WebLogic IP:4660"
        NWDEVICE="/dev/tcp"

*DM_REMOTE_SERVICES
ORDER_SEL RDOM="WLSDOM"
2.1.4 Flds파일 java 파일로 변경
이부분은 Tuxedo의 선언된 Field들과 Ejb간의 Interface 연락을 해주는 역할을 담당합니다.
그래서 flds파일과 mapping이 되는 Java파일을 만들어야 하지만. 구지 노력해서
만들 필요없이
> java weblogic.wtc.jatmi.mkfldclass Flds 파일명
- 여기서 중요한 것이 혹시 Tuxedo에서 Flds파일이 FML32 로 작성이 되었으면..
java weblogic.wtc.jatmi.mkfldclass32 파일명 로 해주어야합니다.
FML/FML32의 차이는 변수를 들의 저장 공간의 차이입니다.[중요]
이부분에서 정말 중요합니다. 꼭 FML32이면 FML32로 해주어야 한다는 것 숙지 하세요.
2.1.5 Tuxedo Service 등록
EJB에서 Tuxdo를 사용하려면 Tuxedo서비스를 등록 해주어야 합니다.
또 한 중요한 것은 EJB환경파일에도 그 서비스가 있어야 하구요.
이부분은 첨부한 소스를 보시면 이해 하실것입니다.

!잠깐 : 여기서 첨부한 소스는 Order_sel이라는 주문 정보를 가져오는 소스입니다.
아주 간단하게 구현이 되어 있습니다. 압축을 푸시면 각 모듈 디렉토리별로
환경파일과 EJB소스 SQL문 등등이 다들어 있기때문에 보시면 이해를 하실 것입니다.

====== 그럼 여기까지가 Tuxedo의 Setting 부분이고 : 음 Tuxedo서비스가 잘떠있는지
보시려면 > tmadmin 하고 psc치시면 지금 떠 잇는 Tuxedo서비스 리스트가 보입니다.
아참 그리고 Tuxedo 소스 구현은 XA로 프로그래밍이 되어야합니다. non-XA로 프로그램이
되어 있으면 안됩니다.

2.2 Weblogic 환경 Setting
2.2.1 임의의 XML파일을 만든다.
예를 들어 wtcconfig.xml파일를 만들어
<?xml version="1.0"?>

<!DOCTYPE BDMCONFIG SYSTEM "file:./wtc_config.dtd">

<!--Java and XML-->
<WTC_CONFIG>
<BDMCONFIG>
          // Weblogic 쪽 정보 - Tuxedo에서 EJB컴포넌트 사용시 필요
<T_DM_LOCAL_TDOMAIN AccessPoint="WLSDOM">
<WlsClusterName>admin</WlsClusterName>
<AccessPointId>WLSDOM</AccessPointId>
<Type>TDOMAIN</Type>
<Security>NONE</Security>
<ConnectionPolicy>ON_DEMAND</ConnectionPolicy>
<BlockTime>30</BlockTime>
<NWAddr>//웹로직 IP:4660</NWAddr>
<Interoperate>Yes</Interoperate>
<!-- Example address: //mydomain.acme.com:20304 -->
</T_DM_LOCAL_TDOMAIN>

         // Tuxedo쪽 정보 - Tuxedo쪽 서비스 호출시 필요
<T_DM_REMOTE_TDOMAIN AccessPoint="TUXDOM">
<LocalAccessPoint>WLSDOM</LocalAccessPoint>
<AccessPointId>TUXDOM</AccessPointId>
<Type>TDOMAIN</Type>
<NWAddr>//Tuxedo IP:4550</NWAddr>
<!-- Example address: //mydomain.acme.com:20305 -->
</T_DM_REMOTE_TDOMAIN>
<T_DM_IMPORT   // Tuxedo 서비스 리스트 - 지금은 하나만 있음
ResourceName="ORDER_SEL"
LocalAccessPoint="WLSDOM"
RemoteAccessPointList="TUXDOM">
<TranTime>600</TranTime>
</T_DM_IMPORT>
</BDMCONFIG>
</WTC_CONFIG>
아례의 내용을 첨부합니다.

2.2.2 config.xml파일에 Startup 에 위에 작성한 XML파일 추가.
<StartupClass
        Arguments="BDMCONFIG=./config/mydomain/wtcconfig.xml,TraceLevel=100000"
        ClassName="weblogic.wtc.gwt.WTCStartup"
        Name="MyWTCStartup Class" Targets="myserver"/>
    <JoltConnectionPool MaximumPoolSize="10" MinimumPoolSize="5"
        Name="demopool" RecvTimeout="300"/>
    <ShutdownClass ClassName="weblogic.wtc.gwt.WTCShutdown"
        Name="MyWTCShutdown Class" Targets="myserver"/>
2.2.3 이상 작성후 Weblogic Restart-Up.

==== 자 이제부터 소스를 설명 해드리겠습니다.
sessionBean에 beans만 설명 하겠습니다.

 

 

 


3. 소스설명
// 첨부한 wtcconfig.xml파일의 JNDI Lookup
tcf = (TuxedoConnectionFactory) ctx.lookup("tuxedo.services.TuxedoConnection");
// tuxedo call
myTux = tcf.getTuxedoConnection();
// 서두에 말한 fld파일을 FML Class로 변경해서 필드의 정보를 담고/값을 리턴시 사용.
myData = new TypedFML();  // FML32로 한경우 new TypedFML32();  입니다.
myData.Fchg(simpfld.INPUT, 0, "wtctest"); // Tuxdeo인자를 넘길때
//myData에 Object로 값을 넣는다 simpfld.INPUT : 변수, 0 : Row, "wtctest" : value
myRtn = myTux.tpcall("ORDER_SEL", myData, 0);  // 서비스콜 myData : 넘기는 인자(Object Type)
// 0:트렌 잭션 처리 방법 : 사이트 참고
myData = (TypedFML) myRtn.getReplyBuffer(); // 결과 리턴
// 리턴시 다시 FML타입으로 변환
myTux.tpterm(); // Closing the association with Tuxedo

여기서 서비스 이름  ORDER_SEL이 각 서버에 등록이 되어 있지 않으면 Exception발생.
이렇게 session Bean이 작성되면 컴파일후 디플로이 하면
Jsp에서 Method 호출 하여서 사용하시면 됩니다.

!API : http://edocs.bea.com/wls/docs61/javadocs/index.html 에서
weblogic.wtc.jatmi API참고 하시면 됩니다.

3.1 트렌젝션 처리
물론 이부분은 트렌젝션 처리가 중요합니다.
이기종의 시스템이다 보니 트렌젝션 처리가 중요한데.
http://edocs.bea.com/wls/docs61/wtc_atmi/WTC_ATMI_Transactions.html#1089150 => 트렌젝션 처리
참고 사이트 참고하세요

 

 

 


4. TIP
- 한글을 Tuxedo 서비스로 인자를 넘길시 컨버트 필요합니다.
new String(s.getBytes("KSC5601"), "ISO8859_1");
- WTC는 Domain구성이 중요합니다 도메인 구성시 잘만 하시면 멀리있는 Tuxedo 서비스를
사용하실수 있는 좋은 기능입니다.
- 지원 플레폼
http://www.weblogic.com/platforms/wtc
- Weblogic6.1를 Example도 같이 설치 하시면 샘플 소스가 있더라구요 참고하세용

 

출처 ;http://www.javaservice.com/~java/bbs/read.cgi?b=weblogic&c=r_p&n=1024956521

 

 

 

공부에 도움될 좋은 글이 있어서 가져왔습니다.

 

감사합니다.


https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=u3478&logNo=60153343622 

 

WTC(Weblogic Tuxedo Connector) 참고

목차 1. WTC란 2. WTC 환경 세팅 3. 소스 설명 4. TIP 1. WTC란 1.1 개요 부분 WTC ( Web...

blog.naver.com

 

 

+ Recent posts