WebLogic Tuxedo Connector Admin Guide
WebLogic Tuxedo Connector Admin Guide
Server ®
WebLogic Tuxedo
Connector
Administration Guide
Version 9.0
Revised: July, 22, 2005
Copyright
Copyright © 2005 BEA Systems, Inc. All Rights Reserved.
This document introduces the BEA WebLogic Tuxedo Connector™ application development
environment. This document provides information on how to configure and administer the
WebLogic Tuxedo Connector to interoperate between WebLogic Server and Tuxedo.
The document is organized as follows:
z Chapter 7, “Using FML with WebLogic Tuxedo Connector,” discusses the Field
Manipulation Language (FML) and describes how the WebLogic Tuxedo Connector uses
FML.
Audience
This document is intended for system administrators and application developers who are
interested in building distributed Java applications that interoperate between WebLogic Server
and Tuxedo environments. It assumes a familiarity with the WebLogic Server, Tuxedo, and Java
programming.
Related Information
The BEA corporate Web site provides all documentation for WebLogic Server and Tuxedo.
For more information about Java and Java CORBA applications, refer to the following sources:
Documentation Conventions
The following documentation conventions are used throughout this document.
Convention Usage
Convention Usage
monospace Code samples, commands and their options, Java classes, data types,
text directories, and file names and their extensions. Monospace text also
indicates text that you enter from the keyboard.
Examples:
import java.util.Enumeration;
chmod u+w *
config/examples/applications
.java
config.xml
float
. Indicates the omission of items from a code example or from a syntax line.
.
.
The following sections summarize the concepts and functionality of WebLogic Tuxedo
Connector for this release of WebLogic Server:
z Known Limitations
z Platform Support
z Licensing
z Ability to call WebLogic Server applications from Tuxedo applications and vice versa.
z Transaction support.
z Ability to provide interoperability between CORBA Java and CORBA C++ server
applications.
z Ability to provide interoperability between Remote Method Invocation (RMI) over Internet
Inter-ORB Protocol (IIOP) applications and Tuxedo CORBA remote objects.
z Ability to use WebLogic Integration to manage workflow across Tuxedo ATMI services.
z Simple implementation. The WebLogic Tuxedo Connector does not require modification of
existing Tuxedo application code.
– Existing Tuxedo clients call WebLogic Server EJBs through the WebLogic Tuxedo
Connector.
– New or modified WebLogic Server clients call Tuxedo services through WebLogic
Tuxedo Connector.
Known Limitations
WebLogic Tuxedo Connector has the following limitations:
z Support for runtime MBean exists, so the configuration can be modified after deployment.
There is an exception in tBridge. Both tBridge Globals and tBridge Redirect changes will
not be in effect until WTC is undeployed and redeployed.
z Does not support Tuxedo 8.1 GWTDOMAIN TCP and APP KeepAlive functionality.
z WebLogic Tuxedo Connector does not support Tuxedo 6.5 running on OS/390 platform.
z WebLogic Tuxedo Connector offers a similar but different API than Jolt.
z Jolt enables the development of generic Java clients and other Web server applications that
the WebLogic Tuxedo Connector does not.
z Jolt does not provide a mechanism for an integrated WebLogic Server-Tuxedo transaction.
Users should use Jolt as a solution instead of the WebLogic Tuxedo Connector when a generic
Java client or other Web server application is required and WebLogic Server is not part of the
solution.
Platform Support
See our Platforms Support page at http://e-docs.bea.com/platform/suppconfigs/index.html for the
most accurate and current information regarding platform support.
Licensing
Note: For more information on WebLogic Server licensing information, see Installing and
Updating License Files at
http://e-docs.bea.com/wls/docs90/../../common/docs90/install/license.html.
This section provides licensing information for the WebLogic Tuxedo Connector:
z An appropriate Tuxedo LLE license and an appropriate WebLogic Server SSL license is
required to use encryption.
The following sections describe how to configure the WebLogic Tuxedo Connector.
Tuxedo Changes
Note: For more information on Tuxedo domains, see the Using the Tuxedo Domains
Component.
Tuxedo users need to make the following environment changes:
z If the existing Tuxedo application does not use domains, then the domain servers must be
added to the TUXCONFIG of the application. A new DMCONFIG must be created with a
Tuxedo /T Domain entry corresponding to the WebLogic Tuxedo Connector instantiation.
z WebLogic Tuxedo Connector requires that the Tuxedo domain always have encoding
turned on. MTYPE should always be unset or set to NULL in the DMCONFIG file.
z Create Java clients or servers. For more information on creating WebLogic Tuxedo
Connector clients or servers, see the WebLogic Tuxedo Connector Programmer’s Guide.
z Configure the WebLogic Tuxedo Connector using the WebLogic Server console,
command-line interface, or WLST. For more information on how to configure the
WebLogic Tuxedo Connector, see “Configuring WebLogic Tuxedo Connector for Your
Applications” on page 2-2.
z If the WebLogic Tuxedo Connector ACL Policy is set to Local, access to local services
does not depend on the CredentialPolicy. The Tuxedo remote domain DOMAINID must
be authenticated as a local WebLogic Server user. For more information, see “User
Authentication” on page 3-15.
WTCResources Specifies global field table classes, view table classes, and
application passwords for domains. Defines your Resources
when configured using the Administration Console.
Support for MBSTRING is provided using
RemoteMBEncoding and MBEncodingMapFile
attributes
2. Locate the Interoperability node in the left pane, then expand the WTC Service.
4. Follow the instructions in the Online Help. For links to the Online Help, see Table 2-1.
The following table shows the connectivity tasks, listed in typical order in which you perform
them. You may change the order; just remember you must configure an object before associating
or assigning it.
1 Creating a WTC On the General tab in the right pane, you set the attributes
Service for Name and Deployment Order.
2 Creating a Local Set the attributes that describe your local Tuxedo access
Tuxedo Access Point point in the General, Connections, and Security tabs. You
must configure at least one local Tuxedo access point.
3 Creating a Remote Set the attributes that describe your remote Tuxedo
Tuxedo Access Point domains in the Local APs tab.
4 Creating Exported Set the attributes that describe your exported WebLogic
Services Server services in the Exported tab.
5 Creating Imported Set the attributes that describe your imported Tuxedo
Services services in the Imported tab.
6 Creating a Password Set the attributes that describe your passwords in the
Configuration Password tab.
7 Creating a Resource Set the attributes that describe your WebLogic Tuxedo
Connector resources in the Resources tab.
8 Creating a Tuxedo Set the global configuration information for the transfer of
Queuing Bridge messages between WebLogic Server and Tuxedo.
Connection
9 Creating a tBridge Sets the attributes used to specify the source, target,
Redirection direction, and transport of a message between WebLogic
Server and Tuxedo
1. From the command line, change directories to the location of the WebLogic Server
application. Copy the setExamplesEnv script located at
WL_HOME\samples\domains\examples to your application directory.
Set PasswordKey
Note: For more information on PasswordKey, see “Configuring a Password Configuration” on
page 3-13.
Use PasswordKey to specify the key used by the weblogic.wtc.gwt.genpassword utility to
encrypt passwords:
JAVA_OPTIONS=-Dweblogic.wtc.PasswordKey=mykey
Set encoding
To transfer non-ascii (multibyte) strings between WebLogic Server and Tuxedo applications, you
must configure WebLogic Tuxedo Connector to provide character set translation. WebLogic
Tuxedo Connector uses a WebLogic Server property to match the encoding used by all the
Tuxedo remote domains specified in a WebLogic Tuxedo Connector service. If you require more
than one coding set running simultaneously, you will require WebLogic Tuxedo Connector
services running in separate WebLogic Server instances.
To enable character set translation, update the JAVA_OPTIONS variable in your server start
script. Example:
JAVA_OPTIONS=-Dweblogic.wtc.encoding=codesetname
where codesetname is the name of a supported codeset used by a remote Tuxedo domain.
See Supported Encodings at http://java.sun.com/j2se/1.3/docs/guide/intl/encoding.doc.html
for list of supported base and extended coding sets.
You may not be able to select the exact encoding name to match the encoding used by the remote
domain. In this situation, you should select an encoding name that is equivalent to the remote
domain.
Example:
Enabling this causes user data to be dumped after the connection is connected. If no other
debugging properties are enabled, then this will be the only WTC information dumped, except
normal WTC error/informational messages. The dump is available in the WLS server log file.
The dump has the following format.
z You may have more than one WTC Service in your configuration.
z You cannot target 2 or more WTC Services to the same server. A server can only be a
target for one WTC Service.
z Any configuration changes implemented in a WTC Service after a target server is selected
will not be updated in the target server instance. You must remove the WTC Service from
the server and then add the updated WTC Service add to the target server. For more
information on selecting a target server, see Assign a WTC Service to a Server.
Note: For more information on the WebLogic Server management, including the WebLogic
Tuxedo Connector, see the WebLogic Server MBean Reference at
http://e-docs.bea.com/wls/docs90/wlsmbeanref/index.html.
The following sections describe how to establish connectivity and provide security between
WebLogic Server applications and Tuxedo environments. WebLogic Tuxedo Connector uses
attributes that are analogous to the interoperability attributes required for the communication
between Tuxedo access points.
The following sections provide WebLogic Tuxedo Connector configuration information:
z User Authentication
z How to Configure WebLogic Tuxedo Connector to Provide Security between Tuxedo and
WebLogic Server
z Link-Level Encryption
The WTC remote access point has four connection policies: ON_DEMAND, INCOMING_ONLY,
ON_STARTUP, and LOCAL. The default is LOCAL. When you specify LOCAL for the remote access
point connection policy setting, the local access point connection policy is used. The remote
access point connection policy takes precedence over the local access point connection policy.
The local access point connection policy works as a backup for remote access point connection.
At the WTC startup, WTC processes through all the remote access point definitions and decides
the actual connection policy similar to the following table.
The following information clarifies the interaction between the connection policy for the local
access point, the connection policy for the remote access point, and the settings of these
parameters at the remote domain.
z If you set MaxRetries to a number, the access point tries to establish a connection the
specified number of times before quitting.
A connection policy of LOCAL indicates that a remote domain connection policy is explicitly
defaulted to the local domain ConnectionPolicy attribute value. If the remote access point
ConnectionPolicy is not defined, the system uses the setting specified by the associated local
access point.
z Listing Connections
Using the WebLogic Scripting Tool (WLST), you can dynamically list the connections for
a domain with the listConnectionsConfigured() attribute. When you run
cmo.listConnectionsConfigured(), a reference to an array of DSessConnInfo
structures is returned. It is convenient to save this in a local WLST variable, such as
wls:/mydomain/serverRuntime/WTCRuntime/WTCService>
r=cmo.listConnectionsConfigured()
Each DSessConnInfo instance has a local access point ID, remote access point ID, and
status (boolean, true = connected, false = not connected). For example,
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
z Starting Connections
Using the WebLogic Scripting Tool (WLST), you can dynamically start individual
connections for an access point with the startConnection() attribute.
To start a connection between a local and a remote access point, specify the access point
IDs in the arguments. For example,
z Stopping Connections
Using the WebLogic Scripting Tool (WLST), you can dynamically stop individual
connections for an access point with the stopConnection() attribute.
To stop a connection between a local and a remote access point, specify the access point
IDs in the arguments. For example,
cmo.stopConnection('WLSDOM','TUXDOM')
To stop all connections involving a given local access point, specify the local access point
ID in the argument. For example,
cmo.stopConnection('WLSDOM')
The following code list is an example of dynamically listing, starting and stopping connections
using WLST.
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()
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:
A connection policy of 0n Demand is unsuitable for failback as it operates on the assumption that
the remote access point is always available. If you do not specify ON_STARTUP or
INCOMING_ONLY as your connection policy, your servers cannot fail over to the alternate remote
access points that you have specified with the Tuxedo RDOM parameter.
Note: A remote access point is available if a network connection to it exists; a remote access
point is unavailable if a network connection to it does not exist.
z Create Remote Tuxedo Access Points configurations for each remote access point.
z Create Imported Services configurations that specify the service provided by each remote
access point.
Suppose a service, TOUPPER, is available from two remote access points: TDOM1 and TDOM3.
Your WTC Service would include two Remote Tuxedo Access Point configurations and two
Imported Services configurations in your WTC Service. The WTC Service defined in the
config.xml file would contain the following:
<wtc-server>
<name>WTCsimpapp</name>
<wtc-local-tux-dom>
<access-point>TDOM2</access-point>
<access-point-id>TDOM2</access-point-id>
<connection-policy>ON_DEMAND</connection-policy>
<interoperate>no</interoperate>
<nw-addr>//123.123.123.123:5678</nw-addr>
<name>myLoclTuxDom</name>
<security>NONE</security>
</wtc-local-tux-dom>
<wtc-remote-tux-dom>
<access-point>TDOM1</access-point>
<access-point-id>TDOM1</access-point-id>
<local-access-point>TDOM2</local-access-point>
<nw-addr>//123.123.123.123:1234</nw-addr>
<name>myRTuxDom</name>
</wtc-remote-tux-dom>
<wtc-remote-tux-dom>
<access-point>TDOM3</access-point>
<access-point-id>TDOM3</access-point-id>
<access-point-id>>TDOM2</access-point-id>
<nw-addr>//234.234.234.234:5555</nw-addr>
<name>2ndRemoteTuxDom</name>
</wtc-remote-tux-dom>
<wtc-export>
<ejb-name>tuxedo.services.TOLOWERHome</ejb-name>
<local-access-point>TDOM2</local-access-point>
<name>myExportedResources</name>
<resource-name>TOLOWER</resource-name>
</wtc-export>
<wtc-import>
<local-access-point>TDOM2</local-access-point>
<name>myImportedResources</name>
<remote-access-point-list>TDOM1</remote-access-point-list>
<remote-name>TOUPPER</remote-name>
</wtc-import>
<wtc-import>
<local-access-point>TDOM2</local-access-point>
<name>2ndImportedResources</name>
<remote-access-point-list>TDOM3</remote-access-point-list>
<remote-name>TOUPPER</remote-name>
z Incoming connections
If the remote access point DOM1 migrates from host mercury to host mars, the WDOM can contact
DOM1 at “//mars:4001”.
The order of network address specified in the list provides order preference. For WDOM,
“//pluto:4100” is the first choice for creating a listening endpoint and “//saturn:4101” is
the second choice. For remote access point DOM1, “//mercury:4001” is the first choice to create
a connection from WDOM to DOM1 and “//mars:4001” is the second choice.
<wtc-server>
<name>myWTCserver</name>
....
<wtc-local-tux-dom>
<name>WDOM</name>
<access-point>WDOM</access-point>
<access-point-id>WDOM</access-point-id>
<nw-addr>//pluto:4100,//saturn:4101</nw-addr>
</wtc-local-tux-dom>
<wtc-remote-tux-dom>
<name>TDOM</name>
<access-point>DOM1</access-point>
<access-point-id>DOM1</access-point-id>
<local-access-point>WDOM</local-access-point>
<nw-addr>//mercury:4001,//mars:4001</nw-addr>
</wtc-remote-tux-dom>
.....
</wtc-server>
z Domain Password—this feature enforces security between two or more access points.
Connections between the local and remote access points are authenticated using password
pairs defined in the Password configuration of your WTC Service. You use the
weblogic.wtc.gwt.genpasswd utility to create encrypted local and remote passwords.
The Security attribute in the Security tab of the local Tuxedo access point of your WTC Service
must match the SECURITY attribute of the *DM_LOCAL_DOMAINS section of the Tuxedo
domain configuration file.
z If the security type of the local Tuxedo access point in your WTC Service does not match
the security type of the *DM_LOCAL_DOMAINS or if the passwords do not match, the
connection fails.
z The Password configuration of your WTC Service does not store clear text passwords.
Usage
Call the utility without any arguments to display the command line options.
Example:
$ java weblogic.wtc.gwt.genpasswd
Call the utility with a key value, password to encrypt, and the type of password.
Example:
$ java weblogic.wtc.gwt.genpasswd Key1 LocalPassword1 local
The utility will respond with the encoded password and password IV. Cut and paste the results
into the appropriate fields in Password configuration of your WTC Service.
Local Password : my_password
where
z Cut and paste the string of characters represented by my_password into the Password field.
z Cut and paste the string of characters represented by my_passwordIV into the
PasswordIV field.
Examples
This section provides examples of each of the password element types.
Local Passwords
The following example uses key1 to encrypt “LocalPassword1” as the password of the local
access point.
Remote Passwords
The following example uses mykey to encrypt “RemotePassword1” as the password for the
remote access point.
$ java weblogic.wtc.gwt.genpasswd mykey RemotePassword1 remote
Remote Password : A/DgdJYOJunFUFJa62YmPgsHan8pC02zPT0T7EigaVg=
Remote Password IV : ohYHxzhYHP0=
App Passwords
The following example uses mykey to encrypt “test123” as the application password.
$ java weblogic.wtc.gwt.genpasswd mykey test123 application
App Password : uou2MALQEZgNqt8abNKiC9ADN5gHDLviqO+Xt/VjakE=
App Password IV : eQuKjOaPfCw=
User Authentication
Access Control Lists (ACLs) limit the access to local services within a local access point by
restricting the remote Tuxedo access point that can execute these services. Inbound policy from
a remote Tuxedo access point is specified using the AclPolicy attribute. Outbound policy
towards a remote Tuxedo domain is specified using the CredentialPolicy attribute. This
2. Click on Realms.
4. Click on Users.
c. Click apply.
z TpUsrFile Plug-in
z LDAP Plug-in
z Custom Plug-in
z Anonymous Users
TpUsrFile Plug-in
The TpUsrFile plug-in provides traditional Tuxedo TpUserFile functionality for users who do not
need single point security administration or custom security authentication. Use the following
steps to configure WebLogic Tuxedo Connector to provide security between Tuxedo and
WebLogic Server applications using the TpUsrFile plug-in AppKey Generator:
z Configuring the Local Tuxedo Access Point for the TpUsrFile Plug-in
z Configure the Remote Tuxedo Access Point for the TpUsrFile Plug-in
Configuring the Local Tuxedo Access Point for the TpUsrFile Plug-in
Set the security attribute in the Security tab of the local Tuxedo access point of your WTC
Service to match the SECURITY parameter of the *DM_LOCAL_DOMAINS section of the
Tuxedo domain configuration file.
3. Set the Allow Anonymous attribute for your environment. If you select to allow anonymous
users to access Tuxedo, you must set the value of the Default AppKey to be used by
anonymous users. For more information on anonymous users, see “Anonymous Users” on
page 3-21.
5. Set the value of the Tp Usr File attribute to the full path to the user password file.
You must have a copy of the Tuxedo tpusr file in your WebLogic Server environment.
Copy the tpusr file from TUXEDO to the WebLogic Server application environment or
generate your own tpusr file. For more information on how to create a Tuxedo tpusr file,
see How to Enable User-Level Authentication at
http://e-docs.bea.com/tuxedo/tux90/sec/secadm.htm#1239966.
z All TpUsrFile attribute values are ignored if the TpUsrFile Plug-in is not selected as the
AppKey Generator, regardless of location.
z If the Resources configuation does not have TpUsrFile attribute values, the TpUsrFile
attribute value must be specified in the remote Tuxedo access point configurations. The
cached user record information is ignored.
z If the Resources and remote Tuxedo access point configurations contain TpUsrFile
attribute values, the attribute values in the remote Tuxedo access points are used. The
cached user record information is ignored.
z If the remote Tuxedo access point configurations do not have TpUsrFile attribute values,
the TpUsrFile attribute value must be specified in the Resources configuration. The cached
user record is used, which improves system performance. However, this restricts the user to
have the same identity in all remote Tuxedo access points.
LDAP Plug-in
The LDAP plug-in provides single point security administration that allows you to maintain user
security information in a WebLogic Server embedded LDAP server and use the WebLogic Server
Console to administer the security information from a single system. Requires Tuxedo 8.1 and
higher.Use the following steps to configure WebLogic Tuxedo Connector to provide security
between Tuxedo and WebLogic Server applications using the LDAP Plug-in AppKey Generator:
z Configure the Local Tuxedo Access Point for the LDAP Plug-in
z Configure the Remote Tuxedo Access Point for the LDAP Plug-in
Configure the Local Tuxedo Access Point for the LDAP Plug-in
Set the security attribute in the Security tab of the local Tuxedo access point of your WTC
Service to match the SECURITY parameter of the *DM_LOCAL_DOMAINS section of the
Tuxedo domain configuration file.
Configure the Remote Tuxedo Access Point for the LDAP Plug-in
Configure the Security tab of the remote Tuxedo access point of your WTC Service to establish
an inbound and outbound Access Control List (ACL) policy.
Perform the following steps to prepare the WebLogic Server environment:
5. If necessary, set the value of the Tuxedo UID Keyword attribute and Tuxedo GID attribute.
Default values are provided. These keywords for the Tuxedo user ID (UID) is used to
extract the Tuxedo UID and GID in the user record of the embedded LDAP database.
Custom Plug-in
Note: For information on how to create a Custom Plug-in, see How to Create a Custom AppKey
Plug-in athttp://e-docs.bea.com/wls/docs90/wtc_atmi/CustomAppKey.html.
The Custom plug-in provides the ability for you to create customized security authentication. Use
the following steps to configure WebLogic Tuxedo Connector to provide security between
Tuxedo and WebLogic Server applications using the Custom Plug-in AppKey Generator:
z Configure the Local Tuxedo Access Point for the Custom Plug-in
z Configure the Remote Tuxedo Access Point for the Custom Plug-in
Configure the Local Tuxedo Access Point for the Custom Plug-in
Set the security attribute in the Security tab of the local Tuxedo access point of your WTC
Service to match the SECURITY parameter of the *DM_LOCAL_DOMAINS section of the
Tuxedo domain configuration file.
Configure the Remote Tuxedo Access Point for the Custom Plug-in
Configure the Security tab of the remote Tuxedo access point of your WTC Service to establish
an inbound and outbound Access Control List (ACL) policy.
Perform the following steps to prepare the WebLogic Server environment:
3. Set the Allow Anonymous attribute for your environment. If you select to allow anonymous
users to access Tuxedo, you must set the value of the Default AppKey to be used by
anonymous users. For more information on anonymous users, see “Anonymous Users” on
page 3-21.
5. Set the value of the Custom AppKey Class attribute to the full pathname to your Custom
AppKey generator class. This class is loaded when the WTC Service is started.
6. Set the value of the Custom AppKey Param attribute to the optional parameters that you
may require to use your Custom AppKey class when it is initialized when the WTC Service
starts.
Anonymous Users
The Allow Anonymous attribute on the Security tab of a remote Tuxedo access point specifies
whether the anonymous user is allowed to access Tuxedo. If the anonymous user is allowed to
access Tuxedo, the value of the Default AppKey attribute is used for TpUsrFile and LDAP
AppKey plug-ins. The TpUsrFile and LDAP plug-ins do not allow users that are not defined in
user database to access Tuxedo unless the Allow Anonymous attribute is enabled. Interaction
with the Custom AppKey plug-in depends on the design of the Custom AppKey generator.
The default value of the Default AppKey is -1. If you wish to use this value, you must make sure
that your Tuxedo environment has a user assigned to that key value. You should avoid assigning
the Default AppKey value to 0. In some systems, this specifies the user as root.
z How to Administer and Configure WebLogic Tuxedo Connector for Inbound RMI-IIOP
2. Configure Remote Tuxedo Access Points for your Tuxedo CORBA domain.
z Set Local Access Point to the value of the Local Access Point attribute of your
Remote Tuxedo Access Point.
z Set the Remote Access Point List to the value of the Access Point Id attribute of
the Remote Tuxedo Access Point.
For information on how to develop client applications that call a Tuxedo CORBA service using
a WebLogic Server EJB, see the WebLogic Tuxedo Connector Programmer’s Guide at
http://e-docs.bea.com/wls/docs90/wtc_atmi/index.html.
<wtc-server>
<name>WTCsimpappCNS</name>
<wtc-local-tux-dom>
<access-point>examples</access-point>
<access-point-id>examples</access-point-id>
<connection-policy>ON_DEMAND</connection-policy>
<nw-addr>//123.123.123.123:5678</nw-addr>
<name>myLoclTuxDom</name>
<security>NONE</security>
</wtc-local-tux-dom>
<wtc-remote-tux-dom>
<access-point>TUXDOM</access-point>
<access-point-id>TUXDOM</access-point-id>
<local-access-point>examples</local-access-point>
<nw-addr>//123.123.123.123:1234</nw-addr>
<name>myRTuxDom</name>
</wtc-remote-tux-dom>
<wtc-import>
<local-access-point>examples</local-access-point>
<name>myImportedResources</name>
<remote-access-point-list>TUXDOM</remote-access-point-list>
<remote-name>//simpapp</remote-name>
</wtc-import>
</wtc-server>
The following example Tuxedo UBB configuration file has a DOMAINID name of simpapp. The
DOMAINID name is used in the Resource Name attribute of the Imported Services configuration
of your WTC Service.
Listing 4-2 Example Tuxedo UBB File for a CORBA Server Application
*RESOURCES
IPCKEY 55432
DOMAINID simpapp
MASTER SITE1
MODEL SHM
LDBAL N
*MACHINES
"YODA"
LMID=SITE1
APPDIR="your APPDIR"
TUXCONFIG="APPDIR\tuxconfig"
TUXDIR="your TUXDIR"
MAXWSCLIENTS=10
*GROUPS
SYS_GRP
LMID=SITE1
GRPNO=1
APP_GRP
LMID=SITE1
GRPNO=2
*SERVERS
DEFAULT:
RESTART=Y
MAXGEN=5
TMSYSEVT
SRVGRP=SYS_GRP
2. Register WebLogic Server (WLS) Naming Service in the Tuxedo domain’s CosNaming
namespace by entering the following command:
cnsbind -o ior.txt your_bind_name
where
your_bind_name is the CosNaming service object name from your Tuxedo
application.
The ior.txt file contains the URL of the WebLogic Server’s domain Naming Service.
corbaloc:tgiop:myServer/NameService
where
*DM_RESOURCES
VERSION=U22
*DM_LOCAL_DOMAINS
TDOM1 GWGRP=SYS_GRP
TYPE=TDOMAIN
DOMAINID="TDOM1"
BLOCKTIME=20
MAXDATALEN=56
MAXRDOM=89
*DM_REMOTE_DOMAINS
TDOM2 TYPE=TDOMAIN
DOMAINID="TDOM2"
*DM_TDOMAIN
TDOM1 NWADDR="//123.123.123.123:1234"
TDOM2 NWADDR="//234.234.234.234:5678"
*DM_REMOTE_SERVICES
"//myServer"
where
myServer is the server name that is running the WTC Service.
z If you require muliple servers, the server names must be unique in the first 13 characters.
z You can use the complete name of your server name in the ior.txt file if it exceeds 13
characters. For example: corbaloc:tgiop:examplesServer/NameService
2. Configure Remote Tuxedo Access Point. Outbound RMI-IIOP requires two additional
elements: Federation URL and Federation Name.
z Set Federation URL to the URL for a foreign name service that is federated into the
JNDI. This must be the same URL used by the EJB to obtain the initial context used to
access the remote Tuxedo CORBA object.
z Set Local Access Point to the value of the Local Access Point attribute of your
Remote Tuxedo Access Point.
.
.
.
<wtc-server>
<name>WTCtrader</name>
<wtc-local-tux-dom>
<access-point>TDOM2</access-point>
<access-point-id>TDOM2</access-point-id>
<connection-policy>ON_DEMAND</connection-policy>
<nw-addr>//123.123.123.123:5678</nw-addr>
<name>myLoclTuxDom</name>
<scurity>NONE</security>
</wtc-local-tux-dom>
<wtc-remote-tux-dom>
<access-point>TDOM1</access-point>
<access-point-id>TDOM1</access-point-id>
<federation-name>tuxedo.corba.remote</federation-name>
<federation-url>corbaloc:tgiop:simpapp/NameService</federation-url>
<local-access-point>TDOM2</local-access-point>
<nw-addr>//123.123.123.123:1234</nw-addr>
<name>myRTuxDom</name>
</wtc-remote-tux-dom>
<wtc-import>
<local-access-point>TDOM2</local-access-point>
<name>myImportedResources</name>
<remote-access-point-list>TDOM1</remote-access-point-list>
<remote-name>//simpapp</remote-name>
</wtc-import>
</wtc-server>
.
.
.
Note: For more information on WebLogic Server Clusters, see Using WebLogic Server
Clusters at http://e-docs.bea.com/wls/docs90/cluster/index.html.
The following sections provide information on how to administer and configure the WebLogic
Tuxedo Connector for use in a clustered environment:
z Because the binding is not replicated in other servers in a cluster, all the WebLogic Servers
in the cluster must have a configured WebLogic Tuxedo Connector that includes an
Imported Services tab that defines any imported services required. If one server in the
cluster does not have a WebLogic Tuxedo Connector deployed, the Enterprise Java Bean
(EJB) or Message Driven Bean (MDB) won't be able to find a Tuxedo Connection Factory
for that connection.
z WebLogic Tuxedo Connector does not support inbound TGIOP in clustered environments.
<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+IoPebpo
Nai/T3SdtxBOwVHOJJPi/sA8JMJ9MAM4i3KqVgd26A311z</credential-encrypted>
<web-app-files-case-insensitive>os</web-app-files-case-insensitive>
<compatibility-connection-filters-enabled>true</compatibility-connection-filte
rs-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>
<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-server>
<server>
<name>wtcAServer</name>
<native-io-enabled>true</native-io-enabled>
<ssl>
<name>wtcAServer</name>
<identity-and-trust-locations>FilesOrKeyStoreProviders</identity-and-trust-loc
ations>
</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-loc
ations>
</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-loc
ations>
</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>
<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>
Load Balancing
Note: For more information on load balancing for the Tuxedo environment, see Tuxedo 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 WebLogic Tuxedo Connector instance that provides an exported service that
is accessible to the Tuxedo client.
*DM_IMPORT
Fail Over
Notes: For more information on failover with Tuxedo Domains, see Specifying Domains
Failover and Failback on Tuxedo.
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
The following sections provide information on the Tuxedo Queuing Bridge functionality and
configuration.
z Priority Mapping
z Error Queues
The following features determine the functionality of the Tuxedo Queuing Bridge:
z The Tuxedo Queuing Bridge uses Java Messaging Service (JMS) to provide an interface to
a Tuxedo /Q or a Tuxedo service.
z The Tuxedo Queuing Bridge provides simple translation between XML and FML32 to
provide connectivity to existing Tuxedo systems.
1. A JMS client, such as a web enabled WLPI application, places a message to be processed by
Tuxedo on a JMS Queue. If this message was part of a transaction, the transaction commits.
2. The message is removed from the JMS queue to be processed by the Tuxedo Queuing
Bridge Converter.
3. The Tuxedo Queuing Bridge Converter checks the message type and converts supported
JMS types to JATMI buffer types.
z Translation errors are sent to the wlsServerErrorDestination queue and the message is
acknowledged in the JMS session.
z Messages with a redirect set to JmsQ2TuxQ use JATMI tpenqueue to deliver the message
to a Tuxedo queue.
z Messages with a redirect set to JmsQ2TuxS use JATMI tpcall to deliver the message to a
Tuxedo service.
5. The tpenqueue is successful or tpcall is successful and the return results are placed in the
replyQ. The message is acknowledged in the JMS session.
z If the tpenqueue or tpcall fails, Tuxedo Queuing Bridge delivers the message to the
wlsServerErrorDestination queue and the message is acknowledged in the JMS
session. If a wlsServerErrorDestination queue is not configured, the message is
discarded and the Tuxedo Queuing Bridge processes the next available unacknowledged
message.
3. Tuxedo Queuing Bridge uses JATMI tpdequeue to forward the message from Tuxedo and
places the message in the JMS queue.
z If a message cannot be redirected to a JMS queue for any reason after the specified retries
have been exhausted, the message is put into the tuxErrorDestination queue within the
same queue space as the Tuxedo queue.
z If the Tuxedo Queuing Bridge is not able to put the message into the
tuxErrorDestination queue for any reason, an error is logged and the message is lost.
z Transactions are not used when retrieving messages from the JMS location and placing
them on the Tuxedo queue or invoking a Tuxedo service.
z Tuxedo Queuing Bridge is thread intensive. A thread is used to transport each message
from JMS queue to Tuxedo. A polling thread is required to monitor the configured Tuxedo
queue.
z The XML/FML translator is intended to construct simple message structures. For more
information on XML to FML conversion see, FML32 Considerations.
Error Logging
WebLogic Tuxedo Connector errors are logged to the WebLogic Server error log.
z JmsQ2TuxQ: Reads from a given JMS queue and transports the messages to the specified
Tuxedo /Q.
z JmsQ2TuxS: Reads from a given JMS queue, synchronously calls the specified Tuxedo
service, and places the reply back onto a specified JMS queue.
z Target Access Point specifies the name of the access point is TDOM2.
z ReplyQ specifies the name of a JMS reply queue is RPLYQ. Use of this queue causes
tpenqueue to provide TMFORWARD functionality.
From: JMS Message Type To: WebLogic Tuxedo Connector JATMI (Tuxedo)
BytesMessage TypedCArray
<target-name>weblogic.jms.Tux2JmsQueue</target-name>
<translate-fml>NO</translate-fml>
</wtc-tbridge-redirect>
z Source Access Point specifies the name of the access point is TDOM2.
z TranslateFML set to Flat specifies that the data is translated from FML to XML by the
Tuxedo Queuing Bridge.
The following table provides information on TuxQ2JmsQ message mapping:
TypedCArray BytesMessage
TypedXML TextMessage
z Target Access Point specifies the name of the access point is TDOM2.
z TranslateFML set to FLAT specifies that when a JMS message is received, the message is
in XML format and is converted into the corresponding FML32 data buffer. The message
is then placed in a tpcall with arguments TDOM2 and TOUPPER. The resulting message is
then translated from FML32 into XML and placed on the weblogic.jms.Tux2JmsQueue.
The following table provides information on the JMSQ2TuxX message mapping:
JMS Message Type WebLogic Tuxedo Connector JATMI JMS Message Type
(Tuxedo)
Priority Mapping
WebLogic Tuxedo Connector supports multiple Tuxedo Queuing Bridge redirect instances. In
many environments, using multiple redirect instances significantly improves application
scalability and performance. However, it does randomizes the order in which messages are
processed. Although priority mapping does not guarantee ordering, it does provides a mechanism
to react to messages based on an assigned importance. If the order of delivery must be guaranteed,
use a single Tuxedo Queuing Bridge redirect instance.
Use Priority Mapping to map priorities between the JMS and Tuxedo.
z JmstoTux
z TuxtoJms
Defaults are provided for all values, shown below in pairs of value:range.
TuxtoJms- 1-10:0 | 11-20:1 | 21-30:2 | 31-40:3 | 41-50:4| 51-60:5 | 61-70:6 | 71-80:7 | 81-90:8 |
91-100:9
For this configuration, a JMS message of priority 7 is assigned a priority of 78 in the Tuxedo /Q.
A Tuxedo /Q with a priority of 47 is assigned a JMS priority of 4.
Error Queues
When Tuxedo Queuing Bridge encounters a problem retrieving messages from Tuxedo Queue or
JMS Queue after the retry interval:
Limitations
The Tuxedo Queuing Bridge error queues have the following limitations:
z Tuxedo Error Destination can be specified only once. Any error queue name
associated with the ErrorDestination implies that all the QSPACEs have the same error
queue name available.
z When there is an error, the message is put back in the source QSPACE. Assuming the
QSPACE is corrupted or full, subsequent messages would be lost.
z There is no way to drop messages on error. All messages are received or none are received.
Note: For more information on how to integrate applications, see BEA WebLogic Integration
at http://e-docs.bea.com/wli/docs81/index.html.
The WebLogic Tuxedo Connector Tuxedo Queuing Bridge provides the necessary infrastructure
for WebLogic Integration users to integrate Tuxedo applications into their business workflows.
The following sections discuss WebLogic Integration - Tuxedo interoperability using the
WebLogic Tuxedo Connector.
z Using the defined Business Operation invoke the JATMI tpcall() method specifying the
service name.
z 1:1 relationship between JMS queue and the call to a Tuxedo service.
z 1:1 relationship between the response from the Tuxedo service and a JMS queue.
z Once the message is on the JMS queue then Tuxedo Queuing Bridge moves the message to
the target Tuxedo service.
z The WebLogic Integration event node waits on the response queue for a response message.
z Once the message is on the JMS queue then Tuxedo Queuing Bridge moves the message to
the target Tuxedo /Q on a per message basis.
z Once the message is committed on Tuxedo /Q, the message is forwarded via the Tuxedo /T
Domain Gateway to the WebLogic Tuxedo Connector Tuxedo Queuing Bridge and target
JMS queue.
z Messages which cannot be forwarded from Tuxedo are enqueued on a Tuxedo /Q error
queue.
z A workflow is created that waits for the message on the JMS queue. It is defined in the
Start workflow node or in the Event node of an existing workflow instance.
Example:
JAVA_OPTIONS=-Dweblogic.wtc.TraceLevel=100000
Enabling this causes user data to be dumped after the connection is connected. If no other
debugging properties are enabled, then this will be the only WTC information dumped, except
normal WTC error/informational messages. The dump is available in the WLS server log file.
The dump has the following format.
z A WebLogic Tuxedo Connector session is ended by removing a WTC Service from the
WebLogic server or when you shutdown the WebLogic server.
z Set the TraceLevel and enable Debug mode. Repeat the connectivity test and check the
WebLogic Tuxedo Connector and Tuxedo log files for error messages.
z Avoid using machine names or localhost. Always use an IP address when specifying a
network location.
z If you are migrating from WebLogic Server 6.x and your applications use security, you
need to set PasswordKey as a WebLogic Server property. For more information, see “How
to Set WebLogic Tuxedo Connector Properties” on page 2-7.
z Check the WebLogic Tuxedo Connector configuration against the Tuxedo remote domain.
The remote domain must match the name of a remote domain configured in WebLogic
Tuxedo Connector.
For example: If the name simpapp is configured in the Tuxedo DMCONFIG
*DM_LOCAL_DOMAINS section, then this name must match the name in your
Remote Tuxedo Access Point Access Point Id attribute.