Figure 3‑1 shows a simple Domains configuration consisting of two Oracle Tuxedo CORBA applications.
This text file, known as the UBBCONFIG file, names a domain and identifies the group and server entry for a domain gateway server. No attributes of domain gateways are specified in the
UBBCONFIG file; all such attributes are in the
Domains configuration file (explained next).
This text file, known as the DMCONFIG file, describes the remote domains that are connected to this domain—the local domain. One
DMCONFIG file is required for each domain participating in a Domains configuration. If a domain is not connecting to another domain, the
DMCONFIG file is not needed.
This text file, known as factory_finder.ini, specifies which factories can be searched for or found across domain boundaries. One
factory_finder.ini file is required for each domain participating in a CORBA Domains configuration. If a domain is not connecting to another domain, the
factory_finder.ini file is not needed.
You must carefully coordinate the factory_finder.ini file with the
DMCONFIG so that they both have information about the same connected domains and provide the same connectivity.
•
|
UBBCONFIG, the Oracle Tuxedo configuration file
|
•
|
DMCONFIG, the Domains configuration file
|
The domain_name must be 1 to13 characters long. For example:
domain_name is the name that will be referenced in the
DM_EXPORT and
DM_IMPORT sections of the related
DMCONFIG file. In that file, the
domain_name will be referenced as:
In this example, LGWGRP is a name chosen by a user (perhaps an abbreviation for “Local Gateway Group”).
In most documentation for the DMCONFIG file, the focus is on the configuring of Oracle Tuxedo ATMI domains to share
services, a concept not applicable to Oracle Tuxedo CORBA environments. For an Oracle Tuxedo CORBA Domains environment, a “service” is simply the name of an Oracle Tuxedo domain that can service Oracle Tuxedo CORBA requests.
•
|
DM_LOCAL (also known as DM_LOCAL_DOMAINS)
|
Note:
|
The DM_LOCAL section must precede the DM_REMOTE section.
|
#
# BEA Tuxedo CORBA Domains Configuration File
#
*DM_RESOURCES
VERSION=Experimental8.9
Note:
|
The ACCESSPOINTID parameter in this listing may be replaced with the DOMAINID parameter, and the RACCESSPOINT parameter may be replaced with the RDOM parameter. This listing uses the improved DMCONFIG terminology.
|
The DM_RESOURCES section specifies global Domains configuration information, specifically a user-supplied configuration version string. The only parameter in this section is
VERSION=string, where
string is a field in which users can enter a version number for the current
DMCONFIG file. This field is not checked by the software.
In the sample DMCONFIG file, the
VERSION parameter is set to
Experimental8.9:
The DM_LOCAL section, also known as the
DM_LOCAL_DOMAINS section, defines one or more
local domain access points (logical names). For each local domain access point that you define, you specify a domain gateway group (
TDOMAIN, ...) for the access point in this section, and—for the CORBA environment—you specify in the
DM_EXPORT section the
domain_name of the local Oracle Tuxedo domain available through the access point. The local domain will be available through the local domain access point to CORBA clients in one or more remote Oracle Tuxedo domains.
The DM_LOCAL section must have one
and only one entry for each domain gateway group defined in the
UBBCONFIG file. Each entry specifies the parameters required for the domain gateway processes running in that group.
where LocalAccessPoint is the local domain access point identifier (logical name) that you choose to represent a gateway group defined in the
UBBCONFIG file. Note that the local domain access point is not the same name as the
domain_name or the gateway group that is specified in the
UBBCONFIG file. Rather, a local domain access point is a name used only within the
DMCONFIG file to provide an extra level of insulation from potential changes in the
UBBCONFIG file (changes in
UBBCONFIG will affect only the defined parameters for the local domain access point, not the logical name of the local domain access point used throughout the
DMCONFIG file).
The TYPE parameter is required to specify the use of TDomain gateways for Oracle Tuxedo CORBA environments.
The ACCESSPOINTID parameter, also known as
DOMAINID, is used to identify the gateway group associated with this local domain access point for purposes of security when setting up connections to remote domains. The gateway server group specified in the
GWGRP parameter uses this string during any security checks. It has no required relationship to the
domain_name found in the
RESOURCES section of the
UBBCONFIG file.
ACCESSPOINTID must be unique across both local and remote domains. The value of
string can be a sequence of characters (for example,
“BA.CENTRAL01”), or a sequence of hexadecimal digits preceded by
0x (for example,
“0x0002FF98C0000B9D6”).
ACCESSPOINTID must be 32 octets or fewer in length. If the value is a string, it must be 32 characters or fewer (counting the trailing
NULL).
identify LDOM as the local domain access point associated with the local TDomain gateway group having server group name
LGWGRP (as specified in the
UBBCONFIG file). If the domain gateway is ever involved in a domain-to-domain security check, it goes by the name
MUTT.
Optional parameters in the DM_LOCAL section describe resources and limits used in the operation of domain gateways. For a description of these parameters, see reference page
DMCONFIG(5) in
Oracle Tuxedo File Formats, Data Descriptions, MIBs, and System Processes Reference.
The DM_REMOTE section, also known as the
DM_REMOTE_DOMAINS section, defines one or more
remote domain access points (logical names). For each remote domain access point that you define, you specify a domain gateway group (
TDOMAIN, ...) for the access point in this section, and—for the CORBA environment—you specify in the
DM_IMPORT section the
domain_name of the remote Oracle Tuxedo domain available through the access point. The remote domain will be available through the remote domain access point to CORBA clients in the local domain.
where RemoteAccessPoint is a remote domain access point identifier (logical name) that you choose for a particular remote domain to be accessed by a particular gateway group defined in the
UBBCONFIG file. Note that a remote domain access point is not the same name as the
domain_name or the gateway group that is specified in the local or remote domain’s
UBBCONFIG file. Rather, a remote domain access point is a name used only within the
DMCONFIG to provide an extra level of insulation from potential changes in
UBBCONFIG (changes in
UBBCONFIG will affect only the defined parameters for the remote domain access point, not the logical name of the remote domain access point used throughout the
DMCONFIG file).
The TYPE parameter is required to specify the use of TDomain gateways for Oracle Tuxedo CORBA environments.
The ACCESSPOINTID parameter, also known as
DOMAINID, is used to identify the remote domain associated with this remote domain access point for purposes of security when setting up a connection to the remote domain. The gateway uses this string during any security checks.
ACCESSPOINTID has no required relationship to the
domain_name found in the
RESOURCES section of the
UBBCONFIG file.
ACCESSPOINTID must be unique across both local and remote domains. The value of
string can be a sequence of characters (for example,
“BA.BANK01”), or a sequence of hexadecimal digits preceded by
0x (for example,
“0x0002FF98C0000B9D6”).
ACCESSPOINTID must be 32 octets or fewer in length. If the value is a string, it must be 32 characters or fewer (counting the trailing
NULL).
identify TDOM1 as a remote domain access point name associated with a local TDomain gateway group. If the domain gateway is ever involved in a domain-to-domain security check with a partner gateway, the gateway expects that partner to go by the name
JEFF.
The DM_EXPORT section, also known as the
DM_LOCAL_SERVICES section, specifies in a CORBA environment the
domain_name of the Oracle Tuxedo domain to be exported through a local domain access point defined in the
DM_LOCAL section. The Oracle Tuxedo domain specified for a local domain access point is available to CORBA clients on one or more remote Oracle Tuxedo domains. The
DM_EXPORT section is required for a CORBA Domains configuration.
service [LACCESSPOINT=local access point name]
[ACL=...]
where
service is of the form:
This domain_name is the name assigned to the
DOMAINID parameter in the
RESOURCES section of the local
UBBCONFIG file. Entering this name in the
DM_EXPORT section means that the local domain accepts CORBA requests from remote domains. Also possible is to specify a
service entry that accepts requests for a domain name other than the domain name of the local domain, in the case where the local domain acts as a pass-through for routing purposes.
The optional parameter, ACL, specifies the name of the access control list (ACL) to be used by the local domain to restrict requests made to the local domain by remote Oracle Tuxedo CORBA domains. The name of the ACL is defined in the
DM_ACCESS_CONTROL section of the
DMCONFIG file. If this parameter is not specified, access control is not performed for remote requests to the local domain.
The DM_IMPORT section, also known as the
DM_REMOTE_SERVICES section, specifies in a CORBA environment the
domain_name of the Oracle Tuxedo domain to be imported through a remote domain access point defined in the
DM_REMOTE section. The Oracle Tuxedo domain specified for a remote domain access point is available to CORBA clients on the local domain. The
DM_IMPORT section is required for a CORBA Domains configuration.
service [RACCESSPOINT=remote domain access point]
[LACCESSPOINT=local domain access point]
[TRANTIME=...]
where service is of the form:
This domain_name is the name assigned to the
DOMAINID parameter in the
RESOURCES section of the remote
UBBCONFIG file. Entering this name in the
DM_IMPORT section means that the remote domain accepts CORBA requests from the local domain. Also possible is to specify a
service entry that accepts requests for a domain name other than the domain name of the remote domain, in the case where the remote domain acts as a pass-through for routing purposes.
mean that the remote domain with name JEFF and associated with remote domain access point
TDOM1 accepts CORBA requests through any local domain access point defined in the
DM_LOCAL section.
The DM_ACCESS_CONTROL section specifies one or more access control list (ACL) names and associates one or more remote domain access points with each specified ACL name. You can use the
ACL parameter in the
DM_EXPORT section by setting
ACL=ACL_NAME to restrict access to a local domain exported through a particular local domain access point to just those remote domain access points associated with the
ACL_NAME.
where ACL_NAME is an
identifier used to specify an access control list; it may contain no more than 15 characters.
ACLIST = identifier [
,identifier]
where an ACLIST is composed of one or more remote domain access point names separated by commas. The wildcard character (*) can be used to specify that all the remote domain access points defined in the
DM_REMOTE section can access a local domain.
The DM_TDOMAIN section defines the network addressing information for the TDomain gateways implementing the Oracle Tuxedo CORBA domains. The
DM_TDOMAIN section should have:
In the DM_TDOMAIN section, you can also define the configuration for one or more remote domain access points associated with one or more WebLogic Server applications, to combine Tuxedo CORBA servers and WebLogic Server Enterprise JavaBean (EJB) servers in an application. For details, see
“Interoperability with Oracle WebLogic Server” on page 2‑1 in
Oracle Tuxedo Interoperability.
where AccessPoint is an identifier value used to identify either (1) a local domain access point in the
DM_LOCAL section or (2) a remote domain access point in the
DM_REMOTE section.
If string has the form
"0xhex-digits" or
"\\xhex-digits", it must contain an even number of valid hex digits. These forms are translated internally into a character array containing TCP/IP addresses. The addresses may also be in either of the following two forms:
"//hostname:port_number"
"//#.#.#.#:port_number"
In the first of these formats, hostname is resolved to a TCP/IP host address at the time the address is bound, using the locally configured name resolution facilities accessed via
gethostbyname(3c). The
"#.#.#.#" is the dotted decimal format, where each
# represents a decimal number in the range 0 to 255.
Port_number is a decimal number in the range 0 to 65535 (the hexadecimal representations of the string specified).
mean that the TDomain gateway belonging to gateway group LGWGRP—as stated in the
DM_LOCAL section for the
LDOM access point—is configured to listen at address
"//sanfran.kmart.com:2507" for connection requests from remote domains. The TDomain gateway is also configured to initiate a connection to
"//sanhose.kmart.com:3186" when sending requests to the remote domain associated with the
TDOM1 access point.
The factory_finder.ini file identifies the remote factory objects that can be used in the local domain. It also identifies the local factory objects that can be used in remote domains.
The factory_finder.ini file contains two sections,
DM_REMOTE_FACTORIES and
DM_LOCAL_FACTORIES. As clarified in the following display, the format of the
factory_finder.ini file is modeled after the syntax used in the
DMCONFIG file:
*DM_REMOTE_FACTORIES
"local_factory_id.factory_kind"
DOMAINID="domain_id"
RNAME="remote_factory_id.factory_kind"
...
*DM_LOCAL_FACTORIES
"factory_id.factory_kind"
...
where AccountFactory is the name used to register the factory in the local domain’s FactoryFinder,
MyAccountFactoryDomain is the name of the remote domain, and
MyAccountFactory is the name used to register the factory in the remote domain’s FactoryFinder.
The DM_REMOTE_FACTORIES section specifies which factory objects in remote domains are available (imported) to the local domain. Identifiers for remote factory objects are listed in this section. The identifier, under which the object is registered, including a
kind value of
FactoryInterface, must be listed in this section. For example, the entry for a remote factory object to be registered by the TP Framework with the identifier
Teller in domain
Norwest would be specified as:
If the RNAME is not specified, the
factory_kind must be specified in the factory name, and the factory name must be enclosed in quotation marks; otherwise, the NameManager is not able to locate the appropriate factory. An entry that does not contain a
factory_kind value is not defaulted with a value of
FactoryInterface.
The DM_LOCAL_FACTORIES section specifies which factory objects in the local domain are available (exported) to remote domains. This section can be used in the following ways:
•
|
If the DM_LOCAL_FACTORIES section is not present in a factory_finder.ini, or is present but empty, all factory objects in the local domain are available to remote domains. This software behavior allows administrators an easy means to make local factory objects available to remote domains without having to provide an entry for every factory object in the local domain.
|
•
|
If the DM_LOCAL_FACTORIES section is present in a factory_finder.ini file but contains the reserved keyword NONE, none of the factory objects in the local domain are available to remote domains. Using the NONE keyword allows administrators to restrict access without having to provide an entry for every factory object in the local domain.
|
The factory_kind must be specified for the NameManager to locate the appropriate factory object. An entry that does not contain a
factory_kind value is not defaulted with a value of
FactoryInterface. This software behavior allows for the use of the CORBA NamingService.
Note:
|
The factory ID must have .FactoryInterface at the end. For simplicity, in discussions about test configurations, the .FactoryInterface is left off, but it should appear in the factory_finder.ini file.
|
•
|
UBBCONFIG(5)in Oracle Tuxedo File Formats, Data Descriptions, MIBs, and System Processes Reference
|
•
|
DMCONFIG(5)in Oracle Tuxedo File Formats, Data Descriptions, MIBs, and System Processes Reference
|
•
|
factory_finder.ini(5)in Oracle Tuxedo File Formats, Data Descriptions, MIBs, and System Processes Reference
|
•
|
In the factory_finder.ini file, use the RNAME parameter so that an alias is used by the local NameManager. Choosing this method means that you must also modify local clients to use the alias to access the remote factory object. The listing “Assigning an Alias to a Remote Factory” on page 3‑16 shows an example of a factory_finder.ini file that uses the RNAME parameter to create an alias.
|
When adding a new domain with factory objects to the DM_REMOTE_FACTORIES section of the
factory_finder.ini file, you must shut down and restart the Master NameManager. For more information about NameManager, see
TMFFNAME(5)in
Oracle Tuxedo File Formats, Data Descriptions, MIBs, and System Processes Reference.
A directly connected Domains configuration, or “n-way” configuration, is reasonable when the number of domains is small, but each new domain added to the configuration requires two, four, ... or more new gateways. At some point, you may consider giving up speed of delivery for ease of management of domain connections by configuring indirectly connected domains.
Listing 3‑4 and
Listing 3‑5 show the
UBBCONFIG files for three directly connected domains:
Here,
There, and
Yonder. To use these files, you must replace
host with the name of the local machine.
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
#
#
# RESOURCES
#
*RESOURCES
IPCKEY 123312
DOMAINID HereD
MASTER LAPP
MODEL SHM
LDBAL N#
# MACHINES
#
*MACHINES
<host>
LMID=LAPP
APPDIR="/tst1/wle4.2/test_dom/t07:
/tst1/wle4.2/dec_unix/wlemdomai"
TUXCONFIG="/tst1/wle4.2/test_dom/tuxconfig"
TUXDIR="/lclobb/lc"
MAXWSCLIENTS=10
#
# GROUPS
#
*GROUPS
DEFAULT: LMID=LAPP
ICEGRP GRPNO=11 OPENINFO=NONE
GROUP1 GRPNO=21 OPENINFO=NONE
LDMGRP GRPNO=3
LGWGRP GRPNO=4
#
# SERVERS
#
*SERVERS
DEFAULT: CLOPT="-A"
DMADM SRVGRP=LDMGRP SRVID=1
GWADM SRVGRP=LGWGRP SRVID=1
GWTDOMAIN SRVGRP=LGWGRP SRVID=2
TMSYSEVT SRVGRP=ICEGRP SRVID=1
TMFFNAME SRVGRP=ICEGRP SRVID=2
CLOPT="-A -- -N -M -f <FF ini file for Here>"
TMFFNAME SRVGRP=ICEGRP SRVID=3 CLOPT="-A -- -N"
TMFFNAME SRVGRP=ICEGRP SRVID=4 CLOPT="-A -- -F"
<App Server Name> SRVGRP=GROUP1 SRVID=2
ISL SRVGRP=GROUP1 SRVID=1
CLOPT="-A -- -d /dev/tcp -n //<host>:<port>"
#
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
# RESOURCES
#
*RESOURCES
IPCKEY 133445
DOMAINID ThereD
MASTER LAPP1
MODEL SHM
LDBAL N
#
# MACHINES
#
*MACHINES
<host>
LMID=LAPP1
APPDIR="D:\test_dom\t07;D:\Iceberg\qa\orb\bld\wlemdomain"
TUXCONFIG="D:\test_dom\tuxconfig"
TUXDIR="D:\Iceberg"
MAXWSCLIENTS=10
#
# GROUPS
#
*GROUPS
DEFAULT LMID=LAPP1
ICEGRP GRPNO=11 OPENINFO=NONE
GROUP1 GRPNO=21 OPENINFO=NONE
LDMGRP GRPNO=3
LGWGRP GRPNO=4
#
# SERVERS
#
*SERVERS
DEFAULT: CLOPT="-A"
DMADM SRVGRP=LDMGRP SRVID=1
GWADM SRVGRP=LGWGRP SRVID=1
GWTDOMAIN SRVGRP=LGWGRP SRVID=2
TMSYSEV SRVGRP=ICEGRP SRVID=1
TMFFNAME SRVGRP=ICEGRP SRVID=2
CLOPT="-A -- -N -M -f
<FF ini file for There>"
TMFFNAME SRVGRP=ICEGRP SRVID=3 CLOPT="-A -- -N"
TMFFNAME SRVGRP=ICEGRP SRVID=4 CLOPT="-A -- -F"
<App Server Name> SRVGRP=GROUP1 SRVID=2
ISL SRVGRP=GROUP1 SRVID=1
CLOPT="-A -- -d /dev/tcp -n //
<host>:
<port>"
#
# SERVICES
#
*SERVICES
# Copyright (c) 1999 BEA Systems, Inc.
# All rights reserved
#
# RESOURCES
#
*RESOURCES
IPCKEY 123334
DOMAINID YonderD
MASTER LAPP
MODEL SHM
LDBAL N
#
# MACHINES
#
*MACHINES
<host>
LMID=LAPP
APPDIR="/tst1/wle4.2/test_dom/t07p:
/tst1/wle4.2/
<host3>/wlemdomain"
TUXCONFIG="/tst1/wle4.2/test_dom/
<host3>/tuxconfig"
TUXDIR="/lclobb/lc"
MAXWSCLIENTS=10
#
# GROUPS
#
*GROUPS
DEFAULT: LMID=LAPP
ICEGRP GRPNO=11 OPENINFO=NONE
GROUP1 GRPNO=21 OPENINFO=NONE
LDMGRP GRPNO=3
LGWGRP GRPNO=4
#
# SERVERS
#
*SERVERS
DEFAULT: CLOPT="-A"
DMADM SRVGRP=LDMGRP SRVID=1
GWADM SRVGRP=LGWGRP SRVID=1
GWTDOMAIN SRVGRP=LGWGRP SRVID=2
TMSYSEVT SRVGRP=ICEGRP SRVID=1
TMFFNAME SRVGRP=ICEGRP SRVID=2
CLOPT="-A -- -N -M"
TMFFNAME SRVGRP=ICEGRP SRVID=3 CLOPT="-A -- -N"
TMFFNAME SRVGRP=ICEGRP SRVID=4 CLOPT="-A -- -F"
<App Server Name> SRVGRP=GROUP1 SRVID=2
ISL SRVGRP=GROUP1 SRVID=1
CLOPT="-A -- -d /dev/tcp -n //
<host>:
<port>"
#
# SERVICES
#
*SERVICES
Listing 3‑6,
Listing 3‑7 and
Listing 3‑8 show the
DMCONFIG files for three directly connected domains:
Here,
There, and
Yonder. To use these listings in a Domains configuration, you must replace
host1 with the name of the local machine for the
Here domain, replace
host2 with the name of the local machine for the
There domain, and replace
host3 with the name of the local machine for the
Yonder domain.
LDOM1 NWADDR="//<host1>:<tcpport>"
TDOM1 NWADDR="//<host2>:<tcpport>"
TDOM2 NWADDR="//<host3>:<tcpport>"
#
# DM_EXPORT
#
*DM_EXPORT
"//HereD"
#
# DM_IMPORT
#
*DM_IMPORT
LDOM1 NWADDR="//<host1>:<tcpport>"
TDOM1 NWADDR="//<host2>:<tcpport>"
TDOM2 NWADDR="//<host3>:<tcpport>"
#
# DM_EXPORT
#
*DM_EXPORT
"//ThereD"
#
# DM_IMPORT
#
*DM_IMPORT
LDOM1 NWADDR="//<host1>:<tcpport>"
TDOM1 NWADDR="//<host2>:<tcpport>"
TDOM2 NWADDR="//<host3>:<tcpport>"
#
# DM_EXPORT
#
*DM_EXPORT
"//YonderG"
#
# DM_IMPORT
#
*DM_IMPORT
Listing 3‑9 and
Listing 3‑10 show the
factory_finder.ini files for the
Here and
There domains. The
Yonder domain does not require a
factory_finder.ini file.