Skip Headers
Oracle® Fusion Middleware WebLogic Tuxedo Connector Administration Guide for Oracle WebLogic Server
12c Release 1 (12.1.1)

Part Number E24978-01
Go to Documentation Home
Home
Go to Table of Contents
Contents
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

6 How to Manage Oracle WebLogic Tuxedo Connector in a Clustered Environment

This chapter provides information on how to administer and configure the Oracle WebLogic Tuxedo Connector for use in a clustered environment:

This chapter includes the following sections:

For more information on WebLogic Server Clusters, see Using Clusters for Oracle WebLogic Server.

Oracle WebLogic Tuxedo Connector Guidelines for Clustered Environments

Use the following guidelines when deploying Oracle WebLogic Tuxedo Connector in a clustered environment:

How to Configure for Clustered Nodes

Configuring WTC servers for a clustered WebLogic Server (WLS) environment is the same as configuring WTC for a non-clustered WLS environment. Configure a WTC server for each node in a cluster that you intend to deploy a JATMI-based EJB. Then target each WTC server to their intended WebLogic Server. There should only be one WTC server per WebLogic Server node.

Limitations for Clustered Nodes

For every WebLogic Server that has a JATMI-based EJB deployed, you must configure it with a WTC server. The high availability depends on the WebLogic Server cluster's own HA ability. There is no special capability to failover/failback among the WTC servers.

How to Configure OutBound Requests to Tuxedo Domains

The load balancing and failover of the outbound requests from WebLogic Server depend on the WebLogic Server EJB and MDB.

For more information on WebLogic Server Clusters, see "Communications in a Cluster" in Using Clusters for Oracle WebLogic Server. Oracle WebLogic Tuxedo Connector also provides domain-level failover and failback capabilities. For more information, see Configuring Failover and Failback.

Example Clustered Oracle WebLogic Tuxedo Connector Configuration

The following configuration provides an example of Oracle WebLogic Tuxedo Connector in a clustered environment. The cluster consists of an administration server (wtcAServer) and three managed servers (wtcMServer1, wtcMServer2, wtcMServer3). Each managed server has a configured WTC Service that contains the same service (TOUPPER) in as an imported service.

Example 6-1 Example Clustered Oracle WebLogic Tuxedo Connector Configuration

<name>mydomain</name>
   <security-configuration>
   <name>mydomain</name>
   <realm>
     <sec:authentication-provider
          xsi:type="wls:default-authenticatorType"></sec:authentication-provider>
     <sec:authentication-provider xsi:type="wls:default-identity-asserterType">
         <sec:active-type>AuthenticatedUser</sec:active-type>
     </sec:authentication-provider>
     <sec:role-mapper xsi:type="wls:default-role-mapperType"></sec:role-mapper>
     <sec:authorizer xsi:type="wls:default-authorizerType"></sec:authorizer>
     <sec:adjudicator xsi:type="wls:default-adjudicatorType"></sec:adjudicator>
     <sec:credential-mapper xsi:type="wls:default-credential-mapperType"></sec:credential-mapper>
     <sec:cert-path-provider
         xsi:type="wls:web-logic-cert-path-providerType"></sec:cert-path-provider>
<sec:cert-path-builder>WebLogicCertPathProvider</sec:cert-path-builder>
     <sec:user-lockout-manager></sec:user-lockout-manager>
     <sec:security-dd-model>Advanced</sec:security-dd-model>
<sec:combined-role-mapping-enabled>false</sec:combined-role-mapping-enabled>
     <sec:name>myrealm</sec:name>
   </realm>
   <default-realm>myrealm</default-realm>
<credential-encrypted>{3DES}O0Qw7QBG3+cmemXbtKhHPJL2QLw7tqSYkoWqBtU17W+IoPebpoNai/T3SdtxBOwVHOJJPi
        /sA8JMJ9MAM4i3KqVgd26A311z</credential-encrypted>
   <web-app-files-case-insensitive>os</web-app-files-case-insensitive>
<compatibility-connection-filters-enabled>true</compatibility-connection-filters-enabled>
   <node-manager-username>weblogic</node-manager-username>
<node-manager-password-encrypted>{3DES}37KMzVTzxZ9VFxCFSVGWzA==</node-manager-password-encrypted>
     <enforce-strict-url-pattern>false</enforce-strict-url-pattern>
   </security-configuration>
   <security>
     <realm>wl_default_realm</realm>
     <password-policy>wl_default_password_policy</password-policy>
   </security>
   <wtc-server>
     <name>WTCServer1</name>
     <target>wtcMServer1</target>
     <wtc-local-tux-dom>
         <name>ltd0</name>
         <access-point>WDOM1</access-point>
         <access-point-id>WDOM1</access-point-id>
         <security>NONE</security>
         <connection-policy>ON_STARTUP</connection-policy>
         <block-time>30000</block-time>
         <nw-addr>//mymachine:20401</nw-addr>
     </wtc-local-tux-dom>
     <wtc-remote-tux-dom>
         <name>rtd0</name>
         <access-point>TDOM1</access-point>
         <access-point-id>TDOM1</access-point-id>
         <local-access-point>WDOM1</local-access-point>
         <nw-addr>//123.123.123.123:20301</nw-addr>
     </wtc-remote-tux-dom>
     <wtc-remote-tux-dom>
         <name>rtd1</name>
         <access-point>TDOM2</access-point>
         <access-point-id>TDOM2</access-point-id>
         <local-access-point>WDOM1</local-access-point>
         <nw-addr>//123.123.123.123:20302</nw-addr>
     </wtc-remote-tux-dom>
     <wtc-export>
         <name>exp0</name>
         <resource-name>TOLOWER</resource-name>
         <local-access-point>WDOM1</local-access-point>
         <ejb-name>tuxedo.services.TOLOWERHome</ejb-name>
         <remote-name>TOLOWER</remote-name>
     </wtc-export>
     <wtc-export>
         <name>exp1</name>
         <resource-name>EJBLSleep</resource-name>
         <local-access-point>WDOM1</local-access-point>
         <ejb-name>tuxedo.services.TOLOWERHome</ejb-name>
         <remote-name>EJBLSleep</remote-name>
     </wtc-export>
     <wtc-import>
         <name>imp0</name>
         <resource-name>TOUPPER</resource-name>
         <local-access-point>WDOM1</local-access-point>
         <remote-access-point-list>TDOM2,TDOM1</remote-access-point-list>
     </wtc-import>
     <wtc-import>
         <name>imp1</name>
         <resource-name>LSleep</resource-name>
         <local-access-point>WDOM1</local-access-point>
         <remote-access-point-list>TDOM2,TDOM1</remote-access-point-list>
     </wtc-import>
   </wtc-server>
   <wtc-server>
     <name>WTCServer2</name>
     <target>wtcMServer2</target>
     <wtc-local-tux-dom>
         <name>ltd0</name>
         <access-point>WDOM2</access-point>
         <access-point-id>WDOM2</access-point-id>
         <security>NONE</security>
         <connection-policy>ON_STARTUP</connection-policy>
         <block-time>30000</block-time>
         <nw-addr>//mymachine:20402</nw-addr>
     </wtc-local-tux-dom>
     <wtc-remote-tux-dom>
         <name>rtd0</name>
         <access-point>TDOM1</access-point>
         <access-point-id>TDOM1</access-point-id>
         <local-access-point>WDOM2</local-access-point>
         <nw-addr>//123.123.123.123:20301</nw-addr>
     </wtc-remote-tux-dom>
     <wtc-remote-tux-dom>
         <name>rtd1</name>
         <access-point>TDOM2</access-point>
         <access-point-id>TDOM2</access-point-id>
         <local-access-point>WDOM2</local-access-point>
         <nw-addr>//123.123.123.123:20302</nw-addr>
     </wtc-remote-tux-dom>
     <wtc-export>
         <name>exp0</name>
         <resource-name>TOLOWER</resource-name>
         <local-access-point>WDOM2</local-access-point>
         <ejb-name>tuxedo.services.TOLOWERHome</ejb-name>
         <remote-name>TOLOWER</remote-name>
     </wtc-export>
     <wtc-export>
         <name>exp1</name>
         <resource-name>EJBLSleep</resource-name>
         <local-access-point>WDOM2</local-access-point>
         <ejb-name>tuxedo.services.TOLOWERHome</ejb-name>
         <remote-name>EJBLSleep</remote-name>
     </wtc-export>
     <wtc-import>
         <name>imp0</name>
         <resource-name>TOUPPER</resource-name>
         <local-access-point>WDOM2</local-access-point>
         <remote-access-point-list>TDOM2,TDOM1</remote-access-point-list>
     </wtc-import>
     <wtc-import>
         <name>imp1</name>
         <resource-name>LSleep</resource-name>
         <local-access-point>WDOM2</local-access-point>
         <remote-access-point-list>TDOM2,TDOM1</remote-access-point-list>
     </wtc-import>
   </wtc-server>
   <wtc-server>
     <name>WTCServer3</name>
     <target>wtcMServer3</target>
     <wtc-local-tux-dom>
         <name>ltd0</name>
         <access-point>WDOM3</access-point>
         <access-point-id>WDOM3</access-point-id>
         <security>NONE</security>
         <connection-policy>ON_STARTUP</connection-policy>
         <block-time>30000</block-time>
         <nw-addr>//mymachine:20403</nw-addr>
     </wtc-local-tux-dom>
     <wtc-remote-tux-dom>
         <name>rtd0</name>
         <access-point>TDOM1</access-point>
         <access-point-id>TDOM1</access-point-id>
         <local-access-point>WDOM3</local-access-point>
         <nw-addr>//123.123.123.123:20301</nw-addr>
     </wtc-remote-tux-dom>
     <wtc-remote-tux-dom>
         <name>rtd1</name>
         <access-point>TDOM2</access-point>
         <access-point-id>TDOM2</access-point-id>
         <local-access-point>WDOM3</local-access-point>
         <nw-addr>//123.123.123.123:20302</nw-addr>
     </wtc-remote-tux-dom>
     <wtc-export>
         <name>exp0</name>
         <resource-name>TOLOWER</resource-name>
         <local-access-point>WDOM3</local-access-point>
         <ejb-name>tuxedo.services.TOLOWERHome</ejb-name>
         <remote-name>TOLOWER</remote-name>
     </wtc-export>
     <wtc-export>
         <name>exp1</name>
         <resource-name>EJBLSleep</resource-name>
         <local-access-point>WDOM3</local-access-point>
         <ejb-name>tuxedo.services.TOLOWERHome</ejb-name>
         <remote-name>EJBLSleep</remote-name>
     </wtc-export>
     <wtc-import>
         <name>imp0</name>
         <resource-name>TOUPPER</resource-name>
         <local-access-point>WDOM3</local-access-point>
         <remote-access-point-list>TDOM2,TDOM1</remote-access-point-list>
     </wtc-import>
     <wtc-import>
         <name>imp1</name>
         <resource-name>LSleep</resource-name>
         <local-access-point>WDOM3</local-access-point>
         <remote-access-point-list>TDOM2,TDOM1</remote-access-point-list>
     </wtc-import>
   </wtc-server>
   <server>
     <name>wtcAServer</name>
     <native-io-enabled>true</native-io-enabled>
     <ssl>
         <name>wtcAServer</name>
<identity-and-trust-locations>FilesOrKeyStoreProviders</identity-and-trust-locations>
     </ssl>
     <listen-port>5472</listen-port>
     <tunneling-enabled>true</tunneling-enabled>
   </server>
   <server>
     <name>wtcMServer1</name>
     <native-io-enabled>true</native-io-enabled>
     <ssl>
         <name>wtcMServer1</name>
<identity-and-trust-locations>FilesOrKeyStoreProviders</identity-and-trust-locations>
     </ssl>
     <listen-port>7701</listen-port>
     <cluster>wtcCluster</cluster>
     <listen-address>mymachine</listen-address>
     <tunneling-enabled>true</tunneling-enabled>
     <jta-migratable-target>
         <user-preferred-server>wtcMServer1</user-preferred-server>
         <cluster>wtcCluster</cluster>
     </jta-migratable-target>
   </server>
   <server>
     <name>wtcMServer2</name>
     <native-io-enabled>true</native-io-enabled>
     <ssl>
         <name>wtcMServer2</name>
<identity-and-trust-locations>FilesOrKeyStoreProviders</identity-and-trust-locations>
     </ssl>
     <listen-port>7702</listen-port>
     <cluster>wtcCluster</cluster>
     <listen-address>mymachine</listen-address>
     <tunneling-enabled>true</tunneling-enabled>
     <jta-migratable-target>
         <user-preferred-server>wtcMServer2</user-preferred-server>
         <cluster>wtcCluster</cluster>
     </jta-migratable-target>
   </server>
   <server>
     <name>wtcMServer3</name>
     <native-io-enabled>true</native-io-enabled>
     <ssl>
         <name>wtcMServer3</name>
<identity-and-trust-locations>FilesOrKeyStoreProviders</identity-and-trust-locations>
     </ssl>
     <listen-port>7703</listen-port>
     <cluster>wtcCluster</cluster>
     <listen-address>mymachine</listen-address>
     <tunneling-enabled>true</tunneling-enabled>
     <jta-migratable-target>
         <user-preferred-server>wtcMServer3</user-preferred-server>
         <cluster>wtcCluster</cluster>
     </jta-migratable-target>
   </server>
   <cluster>
     <name>wtcCluster</name>
     <multicast-address>239.0.0.20</multicast-address>
     <multicast-port>7700</multicast-port>
     <multicast-ttl>1</multicast-ttl>
   </cluster>
   <configuration-version>9.0.0.0</configuration-version>
   <file-realm>
     <name>wl_default_file_realm</name>
   </file-realm>
   <realm>
     <name>wl_default_realm</name>
     <file-realm>wl_default_file_realm</file-realm>
   </realm>
   <password-policy>
     <name>wl_default_password_policy</name>
   </password-policy>
   <migratable-target>
     <name>wtcMServer1 (migratable)</name>
     <user-preferred-server>wtcMServer1</user-preferred-server>
     <cluster>wtcCluster</cluster>
   </migratable-target>
   <migratable-target>
     <name>wtcMServer2 (migratable)</name>
     <user-preferred-server>wtcMServer2</user-preferred-server>
     <cluster>wtcCluster</cluster>
   </migratable-target>
   <migratable-target>
     <name>wtcMServer3 (migratable)</name>
     <user-preferred-server>wtcMServer3</user-preferred-server>
     <cluster>wtcCluster</cluster>
   </migratable-target>
   <web-app-container>
     <relogin-enabled>true</relogin-enabled>
     <allow-all-roles>true</allow-all-roles>
<filter-dispatched-requests-enabled>true</filter-dispatched-requests-enabled>
     <rtexprvalue-jsp-param-name>true</rtexprvalue-jsp-param-name>
<jsp-compiler-backwards-compatible>true</jsp-compiler-backwards-compatible>
   </web-app-container>
   <admin-server-name>wtcAServer</admin-server-name>
</domain>

How to Configure Inbound Requests from Tuxedo Domains

Load balancing and failover of inbound requests from Tuxedo depend on the Tuxedo domain DMCONFIG configuration.

Load Balancing

The following is a sample Tuxedo DMCONFIG that load balances from Tuxedo to clustered WTC. This configuration has three nodes in a WebLogic Server cluster. Each node has a single properly configured Oracle WebLogic Tuxedo Connector instance that provides an exported service that is accessible to the Tuxedo client.

*DM_IMPORT
TOUPPER LDOM=tuxedo_dom RDOM=WDOM1 LOAD=50
TOUPPER LDOM=tuxedo_dom RDOM=WDOM2 LOAD=50
TOUPPER LDOM=tuxedo_dom RDOM=WDOM3 LOAD=50

For more information on load balancing for the Tuxedo environment, see "Tuxedo Load Balancing".

Fail Over

The following is a sample Tuxedo DMCONFIG that uses a more sophisticated configuration that load balances between the WebLogic Server nodes as well as illustrate Tuxedo failover capability. The Tuxedo domain must be configured with a Connection Policy of On Startup or Incoming Only to enable Domains-level failover/failback.

*DM_IMPORT
TOUPPER LDOM=tuxedo_dom RDOM=WDOM1,WDOM2,WDOM3 LOAD=50
TOUPPER LDOM=tuxedo_dom RDOM=WDOM2,WDOM3,WDOM1 LOAD=50
TOUPPER LDOM=tuxedo_dom RDOM=WDOM3,WDOM1,WDOM2 LOAD=50

For more information on failover with Tuxedo Domains, see "Specifying Domains Failover and Failback on Tuxedo".