![]() |
![]() |
|
|
JUAN: Why do we need this here? Perhaps it should be an appendix to this book.
The topic includes the following sections:
Note: The client applications in the Production sample application work in the same manner as the client applications in the Wrapper sample application.
For troubleshooting information and the latest information about using the Production sample application, refer to Readme.txt
in the \production
directory. For a walkthrough of the scalability tasks in the Production sample application, see Scaling CORBA C++ Server Applications.
The topic includes the following sections:
Development Process for the Production Sample Application
This topic describes the development process required when scaling a WLE application. These steps are in addition to the development process outlined in <HYPERLINK to "The Basic Sample Application">.
Note:
The steps in this section have been done for you and are included in the Production sample application.
During the development process, to support factory-based routing, you make modifications to the Object Management Group (OMG) Interface Definition Language (IDL) definitions for the following operations:
OMG IDL
For information about implementing factory-based routing, see <HYPERLINK to Creating C++ Server Applications>.
During the development process, you specify a STU_ID
value when creating a Registrar
object. The STU_ID
value defines to which server group the request from the client application is routed.
In the Production sample application, the University server application creates the Teller
object the same as a client application. Therefore, an ACT_NUM value needs to be specified when creating a Teller
object.
During development, you need to modify the invocation to the TP::create_object_reference()
operation for the RegistrarFactory
and TellerFactory
objects to include an NVlist
that specifies routing criteria. The criteria
parameter of the TP::create_object_reference()
operation specifies a list of named values to be used for factory-based routing, as follows:
Client Application
Server Application
The value of the criteria
parameter must match exactly the routing criteria name, field, and field type specified in the ROUTING
section of the UBBCONFIG
file.
For information about implementing factory-based routing in a factory, see <HYPERLINK to Creating C++ Server Applications>.
The UBBCONFIG
file in the Production sample application is modified to:
UBBCONFIG File
During development, modify the UBBCONFIG
file in the following way to configure replicated server application processes and server groups:
Replicating Server Application Processes and Server Groups
Specifies a unique administrative ID for the server machine.
Table 3-1 Parameters Specified in the SERVERS Section
Parameter
Description
The MIN and MAX parameters determine the degree to which a given server application can process requests in parallel on a given object. During run time, the system administrator can examine resource bottlenecks and start additional server processes, if necessary. In this sense, the application is scaled by the system administrator.
The following example shows lines from the GROUPS and SERVERS sections of the UBBCONFIG file for the Production sample application.
*GROUPS
APP_GRP1
LMID = SITE1
GRPNO = 2
TMSNAME = TMS
APP_GRP2
LMID = SITE1
GRPNO = 3
TMSNAME = TMS
ORA_GRP1
LMID = SITE1
GRPNO = 4
OPENINFO = "ORACLE_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir
=.+MaxCur=5"
CLOSEINFO = ""
TMSNAME = "TMS_ORA"
ORA_GRP2
LMID = SITE1
GRPNO = 5
OPENINFO = "ORACLE_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir
=.+MaxCur=5"
CLOSEINFO = ""
TMSNAME = "TMS_ORA"
*SERVERS
# By default, activate 2 instances of each server
# and allow the administrator to activate up to 5
# instances of each server
DEFAULT:
MIN = 2
MAX = 5
tellp_server
SRVGRP = ORA_GRP1
SRVID = 10
RESTART = N
tellp_server
SRVGRP = ORA_GRP2
SRVID = 10
RESTART = N
billp_server
SRVGRP = APP_GRP1
SRVID = 10
RESTART = N
billp_server
SRVGRP = APP_GRP2
SRVID = 10
RESTART = N
univp_server
SRVGRP = ORA_GRP1
SRVID = 20
RESTART = N
univp_server
SRVGRP = ORA_GRP2
SRVID = 20
RESTART = N
For each interface for which you want to enable factory-based routing, you need to define the following information in the UBBCONFIG file:
During the development process, make the following changes to the UBBCONFIG
file:
The following example shows the FACTORYROUTING identifier for the Registrar and Teller objects in the Production sample application:
INTERFACES
"IDL:beasys.com/UniversityP/Registrar:1.0"
FACTORYROUTING = STU_ID
"IDL:beasys.com/BillingP/Teller:1.0"
FACTORYROUTING = ACT_NUM
Table 3-2 Parameters Specified in the ROUTING Section
Parameter
Description
The following example shows the ROUTING section of the UBBCONFIG file used in the Production sample application:
*ROUTING
STU_ID
FIELD = "student_id"
TYPE = FACTORY
FIELDTYPE = LONG
RANGES = "100001-100005:ORA_GRP1,100006-100010:ORA_GRP2"
ACT_NUM
FIELD = "account_number"
TYPE = FACTORY
FIELDTYPE = LONG
RANGES = "200010-200014:APP_GRP1,200015-200019:APP_GRP2"
The example shows that Registrar objects for students with IDs 100001 through 100005 are instantiated in ORA_GRP1 , and students with IDs 100006 through 100010 are instantiated in ORA_GRP2. Likewise, Teller objects for accounts 200010 through 200014 are instantiated in APP_GRP1, and accounts 200015 through 200019 are instantiated in APP_GRP2 .
Note: The names of the server groups in the GROUPS section must exactly match the group names specified in the ROUTING section.
During development, you need to change the activation policy of the Registrar , RegistrarFactory , Teller , and TellerFactory objects from process to method. For information about defining activation and transaction policies for CORBA objects, see <HYPERLINK to Creating C++ Server Applications>.
To set up the Production sample application, complete the following steps:
The following sections describe these steps.
Note:
Before you can build or run the Production sample application, you need to perform the steps in <HYPERLINK to "Setting Up Your Environment">.
The files for the Production sample application are located in the following directories:
Windows NT
drive
:\
WLEdir
\samples\corba\university\production
UNIX
/usr/
WLEdir
/samples/corba/university/production
In addition, you need to copy the utils
directory into your work directory. The utils
directory contains files that set up logging, tracing, and access to the University database.
Use the files listed in Table 3-3 to create the Production sample application.
Step 1: Copy the Files for the Production Sample Application into a Work Directory
During the installation of the WLE software, the sample application files are marked as read-only. Before you can edit the files or build the files in the Production sample application, you need to change the protection of the files you copied into your work directory, as follows:
Windows NT
prompt>attrib -r drive:\
workdirectory
\*.*
UNIX
prompt>chmod u+rw /
workdirectory
/*.*
Use the following command to set the environment variables used to build the client and server applications in the Production sample application:
Windows NT
prompt>setenvp
UNIX
prompt>/bin/ksh
prompt>. ./setenvp.sh
Use the following command to initialize the University database used with the Production sample application:
Windows NT
prompt>nmake -f makefilep.nt initdb
UNIX
prompt>make -f makefilep.mk initdb
Use the following command to load the UBBCONFIG
file:
Windows NT
prompt>tmloadcf -y ubb_p.nt
UNIX
prompt>tmloadcf -y ubb_p.mk
The build process for the UBBCONFIG
file prompts you for an application password. This password will be used to log on to the client applications. Enter the password and press Enter. You are then prompted to verify the password by entering it again.
The transaction log records the transaction activities in a WLE application. During the development process you need to define the location of the transaction log (specified by the TLOGDEVICE
parameter) in the UBBCONFIG
file. For the Production sample application, the transaction log is placed in your work directory.
You need to perform the following steps to open the transaction log for the Production sample application:
Step 2: Change the Protection on the Files for the Production Sample Application
Step 3: Set the Environment Variables
Step 4: Initialize the University Database
Step 5: Load the UBBCONFIG File
Step 6: Create a Transaction Log
tmadmin
crdl -b
blocks
-z
directorypath
crlog -m SITE1
where
The following is an example of the command on Windows NT:
crdl -b 500 -z c:\mysamples\university\production\TLOG
During the development process, you would use the buildobjclient and buildobjserver commands to build the client and server applications. However, for the Production sample application, this step has been done for you. The directory for the Production sample application contains a makefile that builds the client and server sample applications.
Use the following commands to build the CORBA C++ client and server application in the Production sample application:
Windows NT
prompt>nmake -f makefilep.nt
UNIX
prompt>make -f makefilep.mk
To build the CORBA Java client application:
Windows NT
prompt>nmake -f makefilep.nt javaclient
UNIX
prompt>make -f makefilep.mk javaclient
For information about starting the ActiveX client application, see Starting the ActiveX Client Application.
For more information about the buildobjclient and buildobjserver commands, see the <HYPERLINK to C++ Programming Reference>.
To run the Production sample application, complete the following steps:
The following sections described these steps in detail.
Start the system and sample application server applications in the Production sample application by entering the following command:
prompt>tmboot -y
This command starts the server processes described in Table 3-4:
Step 1: Start the Server Application
Process |
Description |
---|---|
Transaction management services, including the NameManager and the FactoryFinder services.
|
|
Before using another sample application, enter the following command to stop the system and sample application server processes:
prompt>tmshutdown
This topic includes the following sections:
Start the CORBA C++ client application in the Production sample application by perform the following steps:
Starting the CORBA C++ Client Application
prompt>univp_client
Note: The CORBA C++ client application in the Production sample application works in the same manner as the CORBA C++ client application in the Wrapper sample application.
Before you can start the CORBA Java client application, you need to change the value of the Port and Host parameters in UnivPApplet.html to match the host name and port number specified in the ISL parameter in the UBBCONFIG file. For example:
<param name=port value=2500>
<param name=host value=BEANIE>
Start the CORBA Java client application in the Production sample application by performing the following steps:
prompt>appletviewer UnivPApplet.html
A logon window appears.
Note: The CORBA Java client application in the Production sample application works in the same manner as the CORBA Java client application in the Wrapper sample application.
Note: For the University sample applications, the task of loading the OMG IDL for the CORBA interfaces into the Interface Repository is automated by the makefile .
Before you can start the ActiveX client application, you must use the Application Builder to create ActiveX bindings for the CORBA interfaces.
To create an ActiveX binding for a CORBA interface:
The IIOP Listener window appears.
The Logon window appears.
The Application Builder window appears. All the CORBA interfaces loaded in the Interface Repository appear in the Services window of the Application Builder.
A confirmation window appears.
The Application Builder creates the following:
The type library file is named DI modulename_interfacename .tlb .
Perform the following steps to run the ActiveX client application:
The IIOP Listener window appears.
The Logon window appears.
Note: The ActiveX client application in the Production sample application works in the same manner as the ActiveX client application in the Wrapper sample application.
|
Copyright © 1999 BEA Systems, Inc. All rights reserved.
|