Middleware

목차
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

 

 

개인 기록용이라 설명이 많이 부족합니다.

시행착오를 겪으며 테스트 중 입니다.

결과는 맨 아래에 나와있습니다.

이 글은 그저 테스트에 충실했습니다...

 


 

클라이언트가 WSL WSH 를 통해서 서비스를 호출하는 테스트 진행 

 

 

테스트용 

 

 

tmboot -y 

 

 

tmadmin

 

 

./simpcl "aaaa"  (서비스 호출)

Tperrno=6 에러 발생 

tail -f ULOG파일 

로 에러추적 

 

WARNING: LLE Configuration discovered! Note that LLE has been deprecated. You should upgrade to SSL to secure network links. 

 

자꾸 이 에러가 나온다.

 

 

 

 

 

 

 

 

 

 

 

 


tmboot -y 

 

 

 

WSH 기동 확인

 

실패한 것이다. 

 

client가 WSL에 init 이 되지 않은 것 같다.

 LIBTUX_CAT:248: ERROR: System init function failed, Uunixerr = 

 

 

해결 방안은 init 시키는 건데 어떻게 하는가...

 

 

 

 

tmshutdown 

 

tmloadcf -y ubbsimple  

 

위 명령어 둘을 차례대로 다시 하니 WSH가 어플리케이션에 정상적으로 연결됐다고 하는 것 같다.

 

151722.node1!tmloadcf.4194886.1.-2: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151722.node1!tmloadcf.4194886.1.-2: CMDTUX_CAT:872: INFO: TUXCONFIG file /ofm/jwchoi/sw/tp/tuxedo12.2.2.0.0/samples/atmi/simpapp/tuxconfig has been updated
151734.node1!BBL.19989202.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit, Patch Level (none)
151734.node1!BBL.19989202.1.0: LIBTUX_CAT:262: INFO: Standard main starting
151734.node1!WSL.8978802.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151734.node1!WSL.8978802.1.0: LIBTUX_CAT:262: INFO: Standard main starting
151734.node1!WSH.27459992.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151734.node1!WSH.27459992.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151734.node1!WSH.30212668.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151734.node1!WSH.30212668.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151734.node1!WSH.25363186.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151734.node1!WSH.25363186.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151734.node1!WSH.33685770.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151734.node1!WSH.33685770.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151734.node1!WSH.11469380.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151734.node1!WSH.11469380.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151734.node1!WSH.32375404.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151734.node1!WSH.32375404.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.35652138.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.35652138.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.34734704.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.34734704.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.18154110.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.18154110.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.35520938.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.35520938.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.27590958.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.27590958.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.34865832.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.34865832.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.46727574.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.46727574.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.23266008.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.23266008.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.62783798.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.62783798.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.66126086.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.66126086.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.22413866.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.22413866.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.39715528.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.39715528.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.55771548.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.55771548.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application
151735.node1!WSH.15663598.1.0: 08-26-2022: Tuxedo Version 12.2.2.0.0, 64-bit
151735.node1!WSH.15663598.1.0: WSNAT_CAT:1030: INFO: Work Station Handler joining application

WSH 기동 확인 (WSNAT_CAT:1030)

 

정상적으로 연결된 것이 맞는 것 같다.

다시 TOUPPER 서비스를 수행해보자.

[node1@jwchoi:/ofm/jwchoi/sw/tp/tuxedo12.2.2.0.0/samples/atmi/simpapp]# tmadmin
tmadmin - Copyright (c) 1996-2016 Oracle.
All Rights Reserved.
Distributed under license by Oracle.
Tuxedo is a registered trademark.

> pclt
     LMID         User Name       Client Name    Time    Status  Bgn/Cmmt/Abrt
--------------- --------------- --------------- -------- ------- -------------
simple          jwchoi          WSH              0:01:32 IDLE    0/0/0
simple          jwchoi          WSH              0:01:32 IDLE    0/0/0
simple          jwchoi          WSH              0:01:32 IDLE    0/0/0
simple          jwchoi          WSH              0:01:32 IDLE    0/0/0
simple          jwchoi          WSH              0:01:32 IDLE    0/0/0
simple          jwchoi          WSH              0:01:32 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          WSH              0:01:31 IDLE    0/0/0
simple          jwchoi          tmadmin          0:00:03 IDLE    0/0/0

> psr
Prog Name      Queue Name  2ndQueue Name  Grp Name      ID RqDone Load Done Current Service
---------      ----------  ----------     --------      -- ------ --------- ---------------
WSL            01000.01000                WSLGRP      1000      0         0 (  IDLE )
BBL            123457                     simple         0      1        50 (  IDLE )

 

 

 

 


안된 이유를 알았다. 

 

WSL은 통신을 위해서 띄워지는 것이기 때문에 AP server가 있어야한다는 사실을 까맣게 잊고 있었다.

 

아는 사실을 간과하였다.

 

항상 로직을 떠올리면서 프로그래밍 해야한다는 것이 중요하다는 것을 느꼈다.

물론 모든 로직을 구성한 상태에서 (완벽히) 프로그래밍을 해야 실수를 줄인다.

 

실수를 줄이자.

 

 

해결한 방법은 위에서 말했듯이, WSH와 통신할 AP server 를 하나 띄워줘야했다는 것이다.

 

 

 

ubbsimple 을 다시 설정해줬다면 tuxedo를 재실행 해보자.

 

 

 

드디어 된다.

 

 

client가 tuxedo의 WSL를 통해 service를 호출하였다.

 

완성 

 


 

 

리눅스 서버에서도 띄워보자.

 

환경변수파일을 ubbsimple2 로 새로 만들어서 진행하였다.

 

실수하지말자

 

 

 

하지만 서버가 띄워지지 않았다.

 

 

왜 안뜨지?

 

내가 만든 AP server는 simpserv 인데 실행되지 않았다.

 

 

왤까?

 

- 내가 buildclient -w 와 buildserver를 해주지 않았기 때문이다.

 

각각 WSL을 연결시켜주고 서버에 서비스를 build 해주는 역할을 한다.

 

 

만들어보자 

 

만들었으면 tmadmin -r 로 어드민 접속을 하여 

 

psr , psc, pclt 명령어로 확인해본다.

 

 

모두 잘 떠있다.

 

 

완료

이틀을 고민했다.

 

 

 

1번 장비에서 tuxedo를 설치하고 기동하여 buildclient, buildserver 를 이용하여 컴파일 후 클라이언트와 서버 프로세스를 각각 실행시켜서 클라이언트가 서버에 있는 서비스를 호출하는 방식이 원활하게 진행되었다.

 

하지만 

 

2번 장비에서도 tuxedo를 설치하고 기동하여 동일하게 buildclient, buildserver를 해줬고 서비스를 호출하기 위해서 

아무리 사용해봐도 서비스 호출이 되지 않았다.

 

WSNADDR은 1번 장비와 2번 장비, 두 곳 모두 설정이 되지 않았는데 어떻게 1번장비는 바로 서비스를 호출할 수 있었던 걸까?

 

왜 그런걸까? 잘 모르겠더라...

 

그래서 

 

오라클 엔지니어 분의 기술블로그에 글을 남겼다.

 

client가 AP server 단의 service를 직접 함수로 호출하여 가져올 수 있나요? 라는 글의 질문이었다.

 

답변은 


" 우선 턱시도 및 Tmax와 같은 TP 모니터에서 클라이언트 서비스 호출은 TCP를 이용하는 Network 방식과 Shared Memory를 이용하는 Pile 방식이 있습니다. 그렇기 때문에, 클라이언트에 WSNADDR 설정이 없이 서비스를 호출시 성공한 것은 Shared Memory를 이용한 Pipe 방식으로 통신이 되었기 때문입니다.
이와 같은 Shared Memory 방식 경우, Unix/Linux 환경에서는 Permission 영향을 받기 때문에 권한 설정이 중요합니다. "

 

라고 오셨다.

 

아 좀 이해됐다!

 

Shared Memory가 뭔데? 

오라클 턱시도 환경변수에서, shared memory는 BB와 WSL의 제어, ISL 프로세스를 위해 사용된다고 한다.

또한 하나의 어플리케이션은 자신의 목적에 따라 shared memory를 사용한다고 한다.

 

간단하게 설명하면 shared memory는 서로 다른 프로세스 간의 양뱡향 통신을 가능하도록 한다.

 

 


 

그래서 ?

 

 

따라서 1번 장비는 shared memory를 통해서 서로 다른 프로세스 간 서비스를 호출하고 받을 수 있었지만 ( 지금 나는 이것을 WSNADDR 역할을 한다고 본다. 개인적인 생각... 더 자세하게 공부하여서 이곳에 정리하겠다.) , 2번 장비에서 서비스를 호출하지 못했던 이유는 WSL과 WSH 접속이 이루어지지 않았던 것이다.

통신을 하지못하면 결국에는 서로 다른 장비에서 같은 AP server 단의 서비스를 호출하지 못한다.

(1번 장비의 AP Server단의 service를 가져오려면  WSH WSL (tcp ip) 통신이 되어야하는데 연결되지 않았기 때문에 서비스 호출이 불가한 것이다) 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ld: 0711-224 WARNING 에러

2022. 8. 25. 09:25

Oracle 제품 기동시 

Warning:
OPatch found the word "warning" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
ld: 0711-224 WARNING: Duplicate symbol: .aio_nwait_timeout64
ld: 0711-224 WARNING: Duplicate symbol: aio_nwait_timeout64
ld: 0711-224 WARNING: Duplicate symbol: .aio_nwait64
ld: 0711-224 WARNING: Duplicate symbol: aio_nwait64
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-773 WARNING: Object /../oracle/<SID>/fs1/FMW_Home/webtier/lib32/libgeneric11.a[sdbgrfu.o], imported symbol timezone
  Symbol was expected to be local. Extra instructions
  are being generated to reference the symbol.

이런 에러가 나오면 가볍게 무시해도 된다.

 

 

These warnings can be safely ignored

 

오라클 설치 중 root.sh 와 orainstRoot.sh 역할


 

1. root.sh

 

usr/local/bin 의 경로에 "dbhome", "oraenv", "coraenv" 파일을 생성한다.
이 파일에는 오라클 제품에 대한 권한 설정과 root 유저에 관련된 설정 작업을 한다
product 정보 및 엔진의 HOME directory를 저장하기 위함이다.

 

 

2. orainstRoot.sh

 

it creates the inventory pointer file, 즉 orainstRoot.sh 파일을 실행하게 되면
/etc/orainst.loc 파일이 생성된다.
이 파일은 orainventory의 위치와 이를 다루는 유닉스 계정 그룹 명이 기록된다.

 

inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall

 

 

 

좋은 글이 있어서 가져왔습니다.

감사합니다.

출처 : http://cafe.naver.com/ocmkorea/4984

 

오라클 설치시 root.sh 와 orainstRoot.sh 역할

대한민국 모임의 시작, 네이버 카페

cafe.naver.com

 

https://positivemh.tistory.com/87?category=925203 

 

오라클 설치 시 root.sh 와 orainstRoot.sh 역할

오라클 설치 중 root.sh 와 orainstRoot.sh 역할 1. root.sh usr/local/bin 의 경로에 "dbhome", "oraenv", "coraenv" 파일을 생성한다. 이 파일에는 오라클 제품에 대한 권한 설정과 root 유저에 관련된 설정..

positivemh.tistory.com

 

java.lang.UnsatisfiedLinkError ~ 에러  (상세 에러코드와 에러지점은 아래에 내리시면 보입니다!)

 

 

IBM AIX  7.2에 Tuxedo 설치 중에 마지막 단계에서 난 에러이다.

 

해결 방안 : 에러코드 0509-026을 구글링 했을 때, JAVA 버전이 32bit 이냐, 64bit 냐 라는 글이 계속 나왔다. 난 분명 JAVA8 64bit을 설치했기에 의심도 없었고, java -version 를 실행했을 때 

 

$ java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 8.0.5.35 - pap6480sr5fp35-20190418_01(SR5 FP35))
IBM J9 VM (build 2.9, JRE 1.8.0 AIX ppc64-64-Bit Compressed References 20190417_414854 (JIT enabled, AOT enabled)
OpenJ9   - 777635f
OMR      - 16b77d7
IBM      - 72459d3)
JCL - 20190409_01 based on Oracle jdk8u211-b25

 

다음과 같은 정보를 보면서 확신했고, AIX 64bit에 JAVA 64bit를 설치하였기에 의심도 없었다.

 

그리고 JAVA_HOME 환경변수 설정도 완벽하게 했다고 생각했다.

 

 

완벽하긴 했다...

 

 

근데 /usr 디렉토리로 들어가니 Java8 디렉토리가 있고 Java8_64 디렉토리가 있었다.

난 처음에 Java8 을 환경변수로 설정해줬었다. (내가 이상한건가?)

사실 이게 뭔 차이인지도 아직 잘 모르겠다...

아시는 분이 있다면 자삭 공유 부탁드립니다...!

 

뭔가 느낌이 쎄해서 속는 셈 치고 

/usr/Java8_64/jre

로 환경변수를 설정해줬다.

 

되더라...

 

 

이 에러를 해결하고 났을 때 느낀점은 

 

장비에 오라클 64bit를 설치받았다면 자바도 64bit를 내려받고 환경변수를 설정해줘야 설치할 때 에러가 나지 않는다는 점이다.

 

 

구글링을 2시간 넘게 뒤적이면서 LD_LIBRARY_PATH 환경변수를 바꿔보기도 하고 여러가지 뻘짓을 한 상태여서 지친 상태였다. 

해결하고나니 희노애락이 몰려온다. 

 

 

 

 

<에러 지점을 긁어왔습니다.>

Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB.   Actual 16384 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2022-08-24_04-30-06PM. Please wait ...Oracle Universal Installer, Version 12.2.0.1.0 Production
Copyright (C) 1999, 2014, Oracle. All rights reserved.

java.lang.UnsatisfiedLinkError: /tmp/OraInstall2022-08-24_04-30-06PM/oui/lib/aix/liboraInstaller.so (   0509-022 Cannot load module /tmp/OraInstall2022-08-24_04-30-06PM/oui/lib/aix/liboraInstaller.so.
        0509-026 System error: Cannot run a file that does not have a valid format.)
        at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1462)
        at java.lang.System.load(System.java:571)
        at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:364)
        at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:128)
        at oracle.sysman.oii.oiip.oiipg.OiipgFileSystem.changePermission(OiipgFileSystem.java:2257)
        at oracle.sysman.oii.oiix.OiixFileOps.changePermission(OiixFileOps.java:2184)
        at oracle.sysman.oii.oiix.OiixFileOps.changePermissions(OiixFileOps.java:2116)
        at oracle.sysman.oii.oiit.OiitLockHeartbeat.<init>(OiitLockHeartbeat.java:172)
        at oracle.sysman.oii.oiit.OiitTargetLocker.getReaderLock(OiitTargetLocker.java:475)
        at oracle.sysman.oii.oiii.OiiiTargetAreaControl.grabReaderLock(OiiiTargetAreaControl.java:373)
        at oracle.sysman.oii.oiic.OiicInstallSession.setAreaControls(OiicInstallSession.java:1509)
        at oracle.sysman.oii.oiic.OiicInstallSession.<init>(OiicInstallSession.java:1036)
        at oracle.sysman.oii.oiic.OiicSessionWrapper.createNewSession(OiicSessionWrapper.java:876)
        at oracle.sysman.oii.oiic.OiicSessionWrapper.<init>(OiicSessionWrapper.java:192)
        at oracle.sysman.oii.oiic.OiicInstaller.init(OiicInstaller.java:512)
        at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:968)
        at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:906)
Exception java.lang.UnsatisfiedLinkError: oraInstaller (Not found in java.library.path) occurred..
java.lang.UnsatisfiedLinkError: oraInstaller (Not found in java.library.path)
        at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1462)
        at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:1414)
        at java.lang.System.loadLibrary(System.java:584)
        at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:380)
        at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:128)
        at oracle.sysman.oii.oiip.oiipg.OiipgFileSystem.changePermission(OiipgFileSystem.java:2257)
        at oracle.sysman.oii.oiix.OiixFileOps.changePermission(OiixFileOps.java:2184)
        at oracle.sysman.oii.oiix.OiixFileOps.changePermissions(OiixFileOps.java:2116)
        at oracle.sysman.oii.oiit.OiitLockHeartbeat.<init>(OiitLockHeartbeat.java:172)
        at oracle.sysman.oii.oiit.OiitTargetLocker.getReaderLock(OiitTargetLocker.java:475)
        at oracle.sysman.oii.oiii.OiiiTargetAreaControl.grabReaderLock(OiiiTargetAreaControl.java:373)
        at oracle.sysman.oii.oiic.OiicInstallSession.setAreaControls(OiicInstallSession.java:1509)
        at oracle.sysman.oii.oiic.OiicInstallSession.<init>(OiicInstallSession.java:1036)
        at oracle.sysman.oii.oiic.OiicSessionWrapper.createNewSession(OiicSessionWrapper.java:876)
        at oracle.sysman.oii.oiic.OiicSessionWrapper.<init>(OiicSessionWrapper.java:192)
        at oracle.sysman.oii.oiic.OiicInstaller.init(OiicInstaller.java:512)
        at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:968)
        at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:906)
SEVERE:Abnormal program termination. An internal error has occured. Please provide the following files to Oracle Support : 

"Unknown"
"Unknown"
"Unknown"
Exception in thread "main" java.lang.NoClassDefFoundError: oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps (initialization failure)
        at java.lang.J9VMInternals.initializationAlreadyFailed(J9VMInternals.java:97)
        at oracle.sysman.oii.oiio.oiiol.OiiolTextLogger.appendErrorText(OiiolTextLogger.java:1837)
        at oracle.sysman.oii.oiio.oiiol.OiiolTextLogger.appendErrorText(OiiolTextLogger.java:1774)
        at oracle.sysman.oii.oiic.OiicSilentInterfaceManager.displayAlert(OiicSilentInterfaceManager.java:477)
        at oracle.sysman.oii.oiic.OiicSilentInterfaceManager.displayAlert(OiicSilentInterfaceManager.java:456)
        at oracle.sysman.oii.oiif.oiifm.OiifmAlert.displayAlert(OiifmAlert.java:335)
        at oracle.sysman.oii.oiif.oiifm.OiifmAlert.displayAlert(OiifmAlert.java:288)
        at oracle.sysman.oii.oiif.oiifm.OiifmAlert.displayAlert(OiifmAlert.java:238)
        at oracle.sysman.oii.oiif.oiifm.OiifmAlert.displayError(OiifmAlert.java:364)
        at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:1024)
        at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:906)
Caused by: java.lang.UnsatisfiedLinkError: oraInstaller (Not found in java.library.path)
        at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1462)
        at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:1414)
        at java.lang.System.loadLibrary(System.java:584)
        at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:380)
        at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:128)
        at oracle.sysman.oii.oiip.oiipg.OiipgFileSystem.changePermission(OiipgFileSystem.java:2257)
        at oracle.sysman.oii.oiix.OiixFileOps.changePermission(OiixFileOps.java:2184)
        at oracle.sysman.oii.oiix.OiixFileOps.changePermissions(OiixFileOps.java:2116)
        at oracle.sysman.oii.oiit.OiitLockHeartbeat.<init>(OiitLockHeartbeat.java:172)
        at oracle.sysman.oii.oiit.OiitTargetLocker.getReaderLock(OiitTargetLocker.java:475)
        at oracle.sysman.oii.oiii.OiiiTargetAreaControl.grabReaderLock(OiiiTargetAreaControl.java:373)
        at oracle.sysman.oii.oiic.OiicInstallSession.setAreaControls(OiicInstallSession.java:1509)
        at oracle.sysman.oii.oiic.OiicInstallSession.<init>(OiicInstallSession.java:1036)
        at oracle.sysman.oii.oiic.OiicSessionWrapper.createNewSession(OiicSessionWrapper.java:876)
        at oracle.sysman.oii.oiic.OiicSessionWrapper.<init>(OiicSessionWrapper.java:192)
        at oracle.sysman.oii.oiic.OiicInstaller.init(OiicInstaller.java:512)
        at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:968)
        ... 1 more

 

Oracle 제품을 설치 하면서 가장 많이 듣는 말 중에 하나가 oraInventory이라는 것이다. 이것이 아무 것도 모를때는 아!~ 그냥 설치 하면 되는 구나 하는데 나중에 oraInventory가 꼬이기 시작 하면 대책이 없는 경우가 많이 발 생한다.

그래서 이번에는 oraInventory에 관하여 이야기 하려 한다.

 

 

oraInventory 란?

oraInventory은 Oracle Software 제품의 관한 정보와 Server에 설치 되어 있는 Oracle_Home의 정보를 가지고 있는 일종의 Repository(Directory)이다.

Inventory는 Oracle Software 제품의 관한 정보와 Server에 설치 되어 있는 Oracle_Home에 대한 내용을 XML형태로 존재 한는 파일을 이야기 하면 이런 파일을 XML Inventory라고 말한다. 예전에는 XML Inventory가 아닌 binary 형태로 존재 하는 Binary형태로 존재하는 Binary Inventory를 사용 했다.

이러한 Inventory는 Global Inventory(Central Inventory)와 Local Inventory(Oracle Home Inventory) 2가지가 존재 한다.

 

Global Inventory

Global Inventory는 Server에 설치 되어 있는 모든 Oracle 제품의 관한 정보를 유지 한다. Server에 설치 되어 있는 모든 Oracle 제품이란 Oracle database, Oracle Application Server, Collaboration Suite, SOA suite, Forms/Reports Server, Discoverer Server와 같은 Oracle 제품군을 이야기 한다.

Global Inventory의 위치는 /etc (on Linux) 또는 /var/opt/oracle (solaris)에 존재 하는 oraInst.loc파일이 명시 되어 있는 곳에 존재한다.

만약 당신이 Server에 설치 되어 있는 Oracle 제품군을 알고 싶으면 oraInst.loc에 명시 되어 있는 oraInventory밑에 ContentsXML 밑에 inventory.xml 파일을 열어 보면 확인 할 수 있다.

 

Local Inventory

Oracle_Home에 존재하는 local Inventory는 Oracle_Home이 포함하는 Oracle 제품군에 관한 정보를 담고 있다.

 

Multiple Global Inventory

한대의 Server에서서 2개 이상의 Global Inventory를 가지는 것이 Multiple Global Inventory이라고 불린다. Multiple Global Inventory를 사용 하는 이유는 한대의 Server의 동일한 Oracle 제품을 2개 이상 설치 하려 할때 유용하다.

그러나 Oracle 제품을 Upgrade를 하거나 Patch 작업을 진행 하기 전에 항상 oralnst.loc파일을 확인 해야 한다.

 

 

 

출처 : https://cafe.naver.com/ocmkorea.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=4984 

 

Cloud World & OCMKOREA : 네이버 카페

Cloud(docker, kubernetes, AWS, GCP..), Bigdata(R, Python), RDBMS 컨설팅 및 정보공유 카페 입니다.

cafe.naver.com

 

설치환경 : IBM AIX version 7.2

 

1. SFTP를 사용하여 내려받은 tuxedo zip file을 AIX Unix 서버에 보내준다.

 

 

2. 설치를 필요로하는 디렉토리로 잘 전송됐는지 확인 후, unzip tma* (* 자동완성기능)으로 파일을 풀어준다!

 

 

3. 설치가 완료되었으면 Disk1 디렉토리가 생성된 것을 확인할 수 있다.

 

 

 

4. ~/Disk/install 디렉토리에 들어와보면 설치 쉘스크립트 파일들이 있다. 이 중 runInstaller.sh 라는 쉘스크립트를 사용하여 설치를 한다.

 

 

5. 왜 에러나지? .. 실수했다. 뭐지? 하면서 에러코드를 찾아봤다.

  이제 알았다. linux 버전을 받았네? 

 

 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋ;;; 나도...

 

6. 다시 받으러 가자. 내가 받아야할 것은 IBM AIX 64..

 

링크는 

https://www.oracle.com/middleware/technologies/tuxedo-downloads.html

 

Oracle Tuxedo Downloads

We’re sorry. We could not find a match for your search. We suggest you try the following to help find what you’re looking for: Check the spelling of your keyword search. Use synonyms for the keyword you typed, for example, try "application" instead of

www.oracle.com

 

7. 다시 unzip 하기 ( Disk1과 linux 파일은 rm -rf로 과감히 지우기) 

삭제하지 않고 unzip 하게 되면 replace ~ 뭐라뭐라 워닝이 뜬다.

 

8. 설치가 완료되고 Disk1/install 로 이동하여 runInstaller.sh 를 실행시켜줘야한다.

 

 

 

 

9. 쉽지 않다. JAVA_HOME is not set. 

 

자바가 설치되어있는지 확인한다. java -version

자바가 설치되어있지만 환경변수 설정이 되지 않았다...!

export JAVA_HOME=자바가 설치되어있는 디렉토리​

 

 

설정 한 후에  echo로 경로 확인

echo $JAVA_HOME

 

 

 

다시 설치를 해보자.

 

 

(이미 설치가 된 자바 경로는 기억이 안난다면 find와 env 로 찾아보자)

 

 

10. JAVA_HOME 경로가 설정되었으면 아래처럼 진행이 된다.

 

 

Central Inventory를 선택하였다.

잘 진행되나 싶더니 에러가 났다.

 

/etc/oraInst.loc ... 이미 이 경로로 인벤토리가 존재한다는 것 같고 

'/oracle/app/grid/orInventory '인벤토리에 접근할 권한이 없다는 것 같다.

 


추후 해결된 문제 

=> 센트럴 인벤토리는 이미 기존에 있는 것을 찾는다. 그렇기 때문에 가지고 있는 .loc 파일을 만들어서 oraInventory 디렉토리를 들고 .loc 파일을 넣어둔다. 

물론 경로 지정도 vi 편집모드로 해야한다.

 

그리고 2. Private Inventory를 선택하여 설치를 진행하면 된다. 

 

(이것 때문에 하루를 잡아먹은 것 같다.)

 

 

oraInst.loc 는 root 계정으로 권한이 잡혀있다.

나는 관리자가 아니기 때문에 권한변경이나 경로변경 또한 하지 못한다.

그럼 어떻게 해야할까? => 2번으로 진행하자.

 

어떻게 해결할지 생각해봐야한다. => 2번으로 진행하자.

.

.

.

일단 잘 모르겠으니, 2번인 Private Inventory로 설치해야겠다. 

 

이 경우 oraInst.loc가 있는 절대경로를 입력해주어야할 것이다. 

(위에 말했듯이, 기존에 있는 oraInst.loc 파일을 내가 원하는 디렉토리를 만들어서 그곳에 cp로 복사 붙여넣기 하면 된다. 

그리고 다시 경로 지정을 해줘야한다.) 경로라 하면 oraInst.loc 가 있는 경로까지이다.

 

 

11.  2번도 안된다... 이유는 이것도 잘 모르겠다. 

해결했다.

 

그런데 리눅스 서버에서 설치할 때 Central Inventory로 선택 후 설치를 진행 했을 때는 문제가 없었다.

 

Enter a number: 1
 /etc/oraInst.loc exists

위와 똑같은 워딩이 나왔지만 왜 AIX 에서는 장문의 에러가 나올까? 

 

이해가 잘 되지 않아서 여쭤보아야겠다.

 

해결했다!

 


해결 과정 

 

설치가 완료되면 oraInst.loc 파일도 저절로 tp 디렉토리에 생겼다. 내용은 동일하다.

 

vi oraInst.loc
oraInst.loc 의 경로 까지

 

 

 

ORACLE_HOME은 /ofm/jwchoi/sw/tp 로 설치 시 바로 지정해주었다.&nbsp; &nbsp; &nbsp;ORACLE_HOME_NAME도.

 

 


 

 

설치가 잘 진행되는 과정 

 

AIX 장비에 tuxedo 설치가 된 화면.

 

 

다음 포스팅은 AIX에서 tuxedo 미들웨어가 기동하는 것을 포스팅 해보겠습니다.

'Middleware > Tuxedo' 카테고리의 다른 글

[Tuxedo] java.lang.UnsatisfiedLinkError 에러  (0) 2022.08.24
[Oracle] oraInventory 는 무엇인가?  (0) 2022.08.24
[Tuxedo] tmshutdown 명령어  (0) 2022.08.23
[Tuxedo] tmboot 명령어  (0) 2022.08.23
[Tuxedo] tuxedo 명령어  (0) 2022.08.23

[Tuxedo] tmshutdown 명령어

2022. 8. 23. 14:44

tmshutdown 명령어는 tuxedo 기동을 종료 시에 사용

 

 

주로 사용하는 옵션은 아래 표와 같습니다.

 

tmboot (tuxedo 기동 명령어) 와 비슷하지만 추가적으로 유용하게 사용할 수 있는 옵션들은 아래와 같습니다.

ex) 

 

tmshutdown -g GRP1 -s svr1

: GRP1에 속해있는 svr1 서버 프로세스를 종료한다.

 

 

 

tmshutdown -cy w1 

: 전체 종료

 

 

 


tmshutdown -y

 

tuxedo@/sw/tp/tuxedo12.2.2.0.0/samples/atmi/simpapp > tmshutdown -y
Shutting down all admin and server processes in /sw/tp/tuxedo12.2.2.0.0/samples/atmi/simpapp/tuxconfig

Shutting down server processes ...

Server Id = 1 Group Id = GROUP1 Machine = simple: shutdown succeeded

Shutting down admin processes ...

Server Id = 0 Group Id = simple Machine = simple: shutdown succeeded
2 processes stopped.

 

 

[Tuxedo] tmboot 명령어

2022. 8. 23. 14:32

tmboot 명령어는 TUXEDO의 기동 시에 사용합니다. 

 

Tuxedo의 관리 프로세스는 DDBL, BBL 등 엔진 프로세스를 의미합니다. 

그리고 

AP Server는 업무를 위해 개발한 비즈니스 로직을 담고 있는 프로세스를 의미합니다.

 

 

 

주로 tuxedo를 기동하기 위해 사용하는 옵션은 표와 같습니다.

 

 

 

 

ex)

tmboot -g GRP1 -s svr1 

: GRP1에 속해있는 srv1 서버 프로세스를 기동한다

 

 

 

 

 


tmboot -y 

 

 

tuxedo@/sw/tp/tuxedo12.2.2.0.0/samples/atmi/simpapp > tmboot -y
Booting all admin and server processes in /sw/tp/tuxedo12.2.2.0.0/samples/atmi/simpapp/tuxconfig
INFO: Oracle Tuxedo, Version 12.2.2.0.0, 64-bit, Patch Level (none)

Booting admin processes ...

exec BBL -A :
process id=12819 ... Started.

Booting server processes ...

exec simpserv -A :
process id=12822 ... Started.
2 processes started.

+ Recent posts