プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Server WebLogic Tuxedo Connectorの管理
12c (12.2.1.3.0)
E90366-01
目次へ移動
目次

前
前へ
次
次へ

4 Oracle WebLogic Tuxedo Connectorの接続とサービスの制御

この章では、WebLogic Server アプリケーションとTuxedo環境の間の接続とサービスの管理方法について説明します。Oracle WebLogic Tuxedo Connectorでは、Tuxedoアクセス・ポイント間の通信に必要な相互運用属性に類似した属性を使用します。

この章の内容は以下のとおりです。

接続の動的な管理

WebLogic Server管理コンソールまたはWLSTスクリプト言語を使用して、個々の接続を動的に表示、開始および停止できます。提供されているツールを使用してWTCサーバー接続を開始および停止する方法については、以下の節を参照してください。

WebLogic Server Administration Consoleの使用

WebLogic Server管理コンソールを使用して、Oracle WebLogic Tuxedo Connector接続を開始および停止できます。WTCサーバー接続の開始についてはOracle WebLogic Server管理コンソール・オンライン・ヘルプWTCサーバー接続の開始およびWTCサーバー接続の停止についてはWTCサーバー接続の停止を参照してください。

WebLogic Scripting Tool (WLST)の使用

listConnectionsConfigured()属性を使用して構成された接続を表示したり、startConnection()属性を使用して個々の接続を開始したり、stopConnection()属性を使用して個々の接続を停止したりできます。個々の接続を動的に管理する方法の詳細は、『WebLogic Scripting Toolの理解』を参照してください。

接続の表示

WebLogic Scripting Tool (WLST)でlistConnectionsConfigured()属性を使用して、ドメインの接続を動的に表示できます。cmo.listConnectionsConfigured()を実行すると、DSessConnInfo構造の配列への参照が返されます。これは、次のようにローカルのWLST変数に格納するのが便利です。

wls:/mydomain/serverRuntime/WTCRuntime/WTCService> r=cmo.listConnectionsConfigured()

DSessConnInfoインスタンスには、ローカル・アクセス・ポイントID、リモート・アクセス・ポイントID、およびステータス(ブール型、true = 接続、false = 非接続)があります。例:

wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print r[0].getLocalAccessPointId()
WLSDOM
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print r[0].getRemoteAccessPointId()
TUXDOM
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print r[0].isConnected()
0

接続の開始

WebLogic Scripting Tool (WLST)でstartConnection()属性を使用して、アクセス・ポイントの個々の接続を動的に開始できます。

1つのローカル・アクセス・ポイントと1つのリモート・アクセス・ポイントの間の接続を開始するには、引数に両方のアクセス・ポイントIDを指定します。例:

cmo.startConnection('WLSDOM','TUXDOM')

1つのローカル・アクセス・ポイントとすべての関連するリモート・アクセス・ポイントの間の接続を開始するには、引数にローカル・アクセス・ポイントIDを指定します。例:

cmo.startConnection('WLSDOM')

接続の停止

WebLogic Scripting Tool (WLST)でstopConnection()属性を使用して、アクセス・ポイントの個々の接続を動的に停止できます。

1つのローカル・アクセス・ポイントと1つのリモート・アクセス・ポイントの間の接続を停止するには、引数に両方のアクセス・ポイントIDを指定します。例:

cmo.stopConnection('WLSDOM','TUXDOM')

所定のローカル・アクセス・ポイントに関連するすべての接続を停止するには、引数にローカル・アクセス・ポイントIDを指定します。例:

cmo.stopConnection('WLSDOM')

次のコード・リストは、WLSTを使用して接続を動的に表示、開始、および停止する例です。

例4-1 接続の動的な表示、開始、および停止

java weblogic.WLST
wls:/offline> connect('weblogic','weblogic')
wls:/mydomain/serverConifg> cd('WTCServers')
wls:/mydomain/serverConfig/WTCServers> cd('myWTC')
wls:/mydomain/serverConfig/WTCServers/myWTC> cd('LocalTuxDoms')
wls:/mydomain/serverConfig/WTCServers/myWTC/LocalTuxDoms> ls()
dr--   TDOM2
wls:/mydomain/serverConfig/WTCServers/myWTC/LocalTuxDoms> cd('../../..')
wls:/mydomain/serverConfig> serverRuntime()
wls:/mydomain/serverRuntime> cd('WTCRuntime')
wls:/mydomain/serverRuntime/WTCRuntime> cd('WTCService')
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> r=cmo.listConnectionsConfigured() 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print r[0].getLocalAccessPointId()
TDOM2
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print r[0].getRemoteAccessPointId()
TDOM1
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print r[0].isConnected()
0
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> cmo.startConnection('TDOM2','TDOM1') 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> r=cmo.listConnectionsConfigured() 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print r[0].isConnected() 
1
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> cmo.stopConnection('TDOM2','TDOM1') 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> r=cmo.listConnectionsConfigured() 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print r[0].isConnected() 
0 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> disconnect() 
wls:/offline> exit() 

構成属性の変更

WebLogic Scripting Tool (WLST)を使用して、構成属性を動的に変更できます。

次のコード・リストは、setInteroperate()属性を変更する例です。

例4-2 構成属性の変更

java weblogic.WLST
wls:/offline> connect('weblogic','weblogic')
wls:/mydomain/serverConifg> edit()
wls:/mydomain/edit> startEdit()
wls:/mydomain/edit> cd("WTCServers/myWTC")
wls:/mydomain/edit/WTCServers/myWTC> cd("LocalTuxDoms")
wls:/mydomain/edit/WTCServers/myWTC/LocalTuxDoms> cd("TDOM2")
wls:/mydomain/edit/WTCServers/myWTC/LocalTuxDoms/TDOM2> cmo.setInteroperate("Yes")
wls:/mydomain/edit/WTCServers/myWTC/LocalTuxDoms/TDOM2> validate()
wls:/mydomain/edit/WTCServers/myWTC/LocalTuxDoms/TDOM2> showChanges()

Changes that are in memory and saved to disc but not yet activated are:

MBean Changed           : mydomain:Name=TDOM2,Type=WTCLocalTuxDom,WTCServer=myWTC
Operation Invoked       : modify
Attribute Modified      : Interoperate
Attributes Old Value    : No
Attributes New Value    : Yes
Server Restart Required : false

wls:/mydomain/edit/WTCServers/myWTC/LocalTuxDoms/TDOM2> save()
wls:/mydomain/edit/WTCServers/myWTC/LocalTuxDoms/TDOM2> activate(block="true")
wls:/mydomain/edit/WTCServers/myWTC/LocalTuxDoms/TDOM2> disconnect()
wls:/offline> exit()

WTCサービスの中断と再開

WebLogic Server管理コンソールまたはWLSTを使用して、特定のWTCサーバー上のサービスを中断および再開できます。WTCサーバー上でインポートされたサービスが中断されると、WTCサーバーに送信された、そのサービスに対するすべてのJATMIクライアント・リクエストは、TPException.TPENOENTを送出して即座に返されます。明示的に再開されるまで、そのサービスは使用可能になりません。

中断されているエクスポートされたサービスに割り当てられた、TuxedoクライアントからWTCへのサービス・リクエストの場合、そのサービス・リクエストは実際のサービスを呼び出すことなくTPENOENTを出して返されます。すでに受信されたサービス・リクエストや処理中のサービス・リクエストは引続き処理され、中断操作の影響を受けません。

「WTCサービスの動的な中断と再開」を参照してください

提供されているツールを使用してWTCサービスを中断および再開する方法については、以下の節を参照してください。

WebLogic Server Administration Consoleの使用

WebLogic Server管理コンソールを使用して、Oracle WebLogic Tuxedo Connectorサービスを中断および再開できます。WTCサービスを中断する方法についてはWTCサービスの中断およびWTCサービスを再開する方法についてはWTCサービスの再開を参照してください。

WebLogic Scripting Tool (WLST)の使用

WLSTでWTCRuntimeMBeanを介して、Oracle WebLogic Tuxedo Connectorサービスを中断および再開できます。サービスのステータスをチェックすることもできます。

WTCサービスのステータス・チェック

サービスのステータスを判別するには、引数にSvcNameLDOM、またはRDomListを指定します。例:

int WTCService.getServiceStatus(String SvcName)

この場合、対象となるWTCサーバーのSvcNameという名前を持つすべてのインポートされたサービスおよびエクスポートされたサービスのステータスが返されます。'SvcName'という同じリソース名を持つインポートされたサービスまたはエクスポートされたサービスが複数ある場合、そのうち少なくとも1つのサービスが使用可能であれば、ステータスはAVAILABLEが返されます。'SvcName'という同じリソース名を持つインポートされたサービスまたはエクスポートされたサービスが複数あり、中断されているサービスと使用不能なサービスが混在している場合、ステータスはSUSPENDEDが返されます。すべてのサービスが使用不能の場合、ステータスはUNAVAILABLEが返されます。一致するサービスが見つからない場合は、TPException.TPENOENTが送出されます。

返されるステータスの有効な値を表4-1に示します。

表4-1 サービスのステータス値

ステータス値 説明

WTCServiceStatus.SUSPENDED

サービスは管理者によって中断されています。

WTCServiceStatus.AVAILABLE

サービスは中断されておらず、アクセス可能です。

WTCServiceStatus.UNAVAILABLE

サービスは中断されていないが、このサービスを提供するリモートTuxedo GWTDomainゲートウェイで使用可能な接続がないためアクセスできません。

WTCサービスの中断

WTCサーバーによって公開されているインポートされたサービスまたはエクスポートされたサービスを中断できます。管理者によって中断されているサービスは、WTCサーバーが再デプロイされるか、WLSサーバーが再起動されるか、またはサービスが管理者によって再開されるときにのみ使用可能になります。

使用可能なサービスを中断するには、引数にSvcNameLDOM、またはRDomListを指定します。例:

Void WTCRuntimeMBean.suspendService(String SvcName, boolean isImported)

この場合、指定された名前を持つすべてのインポートされたサービスまたはエクスポートされたサービスが中断されます。isImportedがtrueの場合はインポートされたサービスのみが中断され、falseの場合はエクスポートされたサービスのみが中断されます。一致するサービスが見つからない場合は、TPException.TPENOENTが送出されます。

WTCサービスの再開

WTCサーバーによって公開されている、ステータスがSUSPENDEDのインポートされたサービスまたはエクスポートされたサービスを再開できます。管理者によって中断されているサービスは、WTCサーバーが再デプロイされるか、WLSサーバーが再起動されるか、またはサービスが管理者によって再開されるときにのみ使用可能になります。

中断されているサービスを再開するには、引数にSvcNameLDOM、またはRDomListを指定します。例:

void WTCRuntimeMBean.resumeService(String SvcName)

この場合、対象となるWTCサーバーのSvcNameという名前を持つすべてのインポートされたサービスおよびエクスポートされたサービスが再開されます。一致するサービスが見つからない場合は、TPException.TPENOENTが送出されます。

WTCサービスの動的な中断と再開

WebLogic Server管理コンソールまたはWLSTを使用して、特定のWTCサーバー上のサービスを中断および再開できます。WTCサーバー上でインポートされたサービスが中断されると、WTCサーバーに送信された、そのサービスに対するすべてのJATMIクライアント・リクエストは、TPException.TPENOENTを送出して即座に返されます。明示的に再開されるまで、そのサービスは使用可能になりません。

動的なステータスはインポートされたサービスのみに適用されます。使用可能な、またはその可能性のあるTDomainセッションが少なくとも1つあれば、インポートされたサービスはAVAILABLEになります。使用可能なTDomainセッションがない場合にのみ、SUSPENDEDになります。WTCRemoteTuxDomの接続ポリシー解決がON_DEMANDの場合、TDomainセッションは存在しなくても常に使用可能です。WTCRemoteTuxDomの接続ポリシー解決がINCOMING_ONLYまたはON_STARTUPの場合、TDomainセッションは、接続が確立され、そのTDomainセッションが存在するときのみ使用可能になります。

次のコード・リストは、WLSTを使用して接続を動的に表示、開始、および停止する例です。

例4-3 サービスの動的な中断および再開

java weblogic.WLST 
wls:/offline> connect('weblogic','weblogic','t3://localhost:7001')
wls:/mydomain/serverConfig> serverRuntime()
wls:/mydomain/serverRuntime> cd('WTCRuntime/WTCService')
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> ls() 
-r-- Name WTCService
-r-- ServiceStatus weblogic.wtc.gwt.DServiceInfo[weblogic.wtc.gwt.DServiceInfo@1947a96]
-r-- Type WTCRuntime 
-r-x getServiceStatus Integer :
                 String(java.lang.String),String(java.lang.String),String(java.lang.String)
-r-x getServiceStatus Integer : String(localAccessPoint),String(svcName)
-r-x getServiceStatus Integer : String(localAccessPoint),String(svcName),Boolean(isImport)
-r-x getServiceStatus Integer : String(svcName)
-r-x getServiceStatus Integer : String(svcName),Boolean(isImport)
-r-x listConnectionsConfigured weblogic.wtc.gwt.DSessConnInfo[] : 
-r-x resumeService Void : String(localAccessPoint),String(remoteAccessPointList),String(svcName)
-r-x resumeService Void : String(localAccessPoint),String(svcName)
-r-x resumeService Void : String(localAccessPoint),String(svcName),Boolean(isImport)
-r-x resumeService Void : String(svcName)
-r-x resumeService Void : String(svcName),Boolean(isImport)
-r-x startConnection Void : String(LDomAccessPointId)
-r-x startConnection Void : String(LDomAccessPointId),String(RDomAccessPointId)
-r-x stopConnection Void : String(LDomAccessPointId)
-r-x stopConnection Void : String(LDomAccessPointId),String(RDomAccessPointId)
-r-x suspendService Void : String(localAccessPoint),String(remoteAccessPointList),String(svcName)
-r-x suspendService Void : String(localAccessPoint),String(svcName)
-r-x suspendService Void : String(localAccessPoint),String(svcName),Boolean(isImport)
-r-x suspendService Void : String(svcName)
-r-x suspendService Void : String(svcName),Boolean(isImport) 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> status=cmo.getServiceStatus()
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print status[0].getServiceName()
TOUPPER
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print
         weblogic.wtc.gwt.WTCServiceStatus.svcTypeToString(status[0].getServiceType())
IMPORT
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print
         weblogic.wtc.gwt.WTCServiceStatus.statusToString(status[0].getStatus())
AVAILABLE
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> cmo.suspendService('TOUPPER')
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> status=cmo.getServiceStatus()
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print
         weblogic.wtc.gwt.WTCServiceStatus.statusToString(status[0].getStatus())
SUSPENDED
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> cmo.resumeService('TOUPPER') 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> status=cmo.getServiceStatus()
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print
         weblogic.wtc.gwt.WTCServiceStatus.statusToString(status[0].getStatus())
AVAILABLE
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print status[0].getServiceName()
TOUPPER 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> cmo.suspendService('TDOM1','TOUPPER') 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> status=cmo.getServiceStatus()
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print status[0].getServiceName()
TOUPPER
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print
         weblogic.wtc.gwt.WTCServiceStatus.statusToString(status[0].getStatus())
SUSPENDED
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> cmo.resumeService('TDOM1','TOUPPER') 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> status=cmo.getServiceStatus()
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print status[0].getServiceName()
TOUPPER
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> print
         weblogic.wtc.gwt.WTCServiceStatus.statusToString(status[0].getStatus())
AVAILABLE
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> 
wls:/mydomain/serverRuntime/WTCRuntime/WTCService> disconnect()
wls:/offline> exit()