BEA Logo BEA WebLogic Enterprise Release 5.1

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

 

   WebLogic Enterprise Doc Home   |   Naming   |   Previous Topic   |   Next Topic   |   Contents   |   Index

Using the Name Service Sample Application

 

This topic includes the following sections:

 


How the Name Service Sample Application Works

The Name Service sample application is a modification of the Simpapp sample application. The Name Service sample application uses a namespace to store the SimpleFactory object. The server application creates the SimpleFactory object and binds the object to the namespace. The client application connects to the namespace, resolves the name of the SimpleFactory object, and then invokes methods on the SimpleFactory. There are C++ and Java versions of the Name Service sample application. Figure 5-1 illustrates how the Name Service sample application works.

Figure 5-1 The Name Service Sample Application

The Name Service sample application implements the CORBA interfaces listed in Table 5-1:

Table 5-1 CORBA Interfaces for the Name Service Sample Application

Interface

Description

Operation

SimpleFactory

Creates object references to the Simple object

find_simple()

Simple

Converts the case of a string

to_upper()

to_lower()

Listing 5-1 shows the simple.idl file that defines the CORBA interfaces in the Name Service sample application.

Listing 5-1 OMG IDL Code for the Name Service Sample Application


#pragma prefix "beasys.com"

interface Simple
{
//Convert a string to lower case (return a new string)
string to_lower(in string val);

     //Convert a string to upper case (in place)
void to_upper(inout string val);
};

interface SimpleFactory
{
Simple find_simple();
};

 


Building and Running the Name Service Sample Application

To build and run the Name Service sample application, complete the following steps:

  1. Copy the files for the Name Service sample application into a work directory.

  2. Change the protection attribute on the files for the Name Service sample application.

  3. Verify the environment variables.

  4. Execute the runme command.

Step 1: Copy the Files for the Name Service Sample Application into a Work Directory

You need to copy the files for the Name Service sample application into a work directory on your local machine. The following sections detail the directory location and sources files for the C++ and Java versions of the Name Service sample application.

C++ Version of the Name Service Sample Application

The files for the C++ version of the Name Service sample application are located in the following directories:

Windows NT

drive:\WLEdir\samples\corba\cnssimpapp

UNIX

/usr/local/WLedir/samples/corba/cnssimpapp

You will use the files listed in Table 5-2 to build and run the C++ version of the Name Service sample application.

Table 5-2 Files Included in the C++ Version of the Name Service Sample Application

File

Description

Simple.idl

The OMG IDL code that declares the Simple and SimpleFactory interface.

Simples.cpp

The C++ source code for the server application in the Name Service sample application.

Simplec.cpp

The C++ source code for the client application in the Name Service sample application.

Simple_i.cpp

The C++ source code that implements the Simple and SimpleFactory methods.

Simple_i.h

The C++ header file that defines the implementation of the Simple and SimpleFactory methods.

Readme.txt

This file provides the latest information about building and running the C++ version of the Name Service sample application.

runme.cmd

The Windows NT batch file that builds and runs the C++ version of the Name Service sample application.

runme.ksh

The UNIX Korn shell script that builds and executes the C++ version of the Name Service sample application.

makefile.mk

The makefile for the C++ version of the Name Service sample application on the UNIX operating system. This file is used to manually build the C++ version of the Name Service sample application. Refer to the Readme.txt file for information about manually building the C++ version of the Name Service sample application. The UNIX make command needs to be in the path of your machine.

makefile.nt

The makefile for the C++ version of the Name Service sample application on the Windows NT operating system. This makefile can be used directly by the Visual C++ nmake command. This file is used to manually build the C++ version of the Name Service sample application. Refer to the Readme.txt file for information about manually building the C++ version of the Name Service sample application. The Windows NT nmake command needs to be in the path of your machine.

Java Version of the Name Service Sample Application

The files for the Java version of the Name Service sample application are located in the following directories:

Windows NT

drive:\WLEdir\samples\corba\cnssimpapp_java

UNIX

/usr/local/WLedir/samples/corba/cnssimpapp_java

You will use the files listed in Table 5-3 to build and run the Java Name Service sample application.

Table 5-3 Files Included in the Java Version of the Name Service Sample Application

File

Description

Simple.idl

The OMG IDL code that declares the Simple and SimpleFactory interfaces.

ServerImpl.java

The Java source code that overrides the Server.initialize and Server.release methods.

SimpleClient.java

The Java source code for the client application in the Name Service sample application.

SimpleFactoryImpl.java

The Java source code that implements the SimpleFactory methods.

SimpleImpl.java

The Java source code that implements the Simple methods.

Simple.xml

The Server Description File used to associate activation and transaction policy values with CORBA interfaces. For the Java version of the Name Service sample application, the Simple and SimpleFactory interfaces have an activation policy of method and a transaction policy of optional.

Readme.txt

The file that provides the latest information about building and running the Java version of the Name Service sample application.

runme.cmd

The Windows NT batch file that builds and runs the Java version of the Name Service sample application.

runme.ksh

The UNIX Korn shell script that builds and executes the Java version of the Name Service sample application.

makefile.mk

The makefile for the Java version of the Name Service sample application on the UNIX operating system. This file is used to manually build the Name Service sample application. Refer to the Readme.txt file for information about manually building the Name Service sample application. The UNIX make command needs to be in the path of your machine.

makefiles.nt

The makefile for the Name Service sample application on the Windows NT operating system. This file is used to manually build the Java version of the Name Service sample application. Refer to the Readme.txt file for information about manually building the Name Service sample application. The Windows NT nmake command needs to be in the path of your machine.

Step 2: Change the Protection Attribute on the Files for the Name Service Sample Application

During the installation of the WLE software, the sample application files are marked read-only. Before you can edit or build the files in the Name Service sample application, you need to change the protection attribute of the files you copied into your work directory, as follows:

Windows NT

prompt>attrib -r drive:\workdirectory\*.*

UNIX

prompt>/bin/ksh

ksh prompt>chmod u+w /workdirectory/*.*

On the UNIX operating system platform, you also need to change the permission of runme.ksh to give execute permission to the file, as follows:

ksh prompt>chmod +x runme.ksh

Step 3: Verify the Settings of the Environment Variables

Before building and running the Name Service sample application, you need to ensure that certain environment variables are set on your system. In most cases, these environment variables are set as part of the installation procedure. However, you need to check the environment variables to ensure they reflect correct information.

Table 5-4 lists the environment variables required to run the Name Service sample application.

Table 5-4 Required Environment Variables for the Name Service Sample Application

Environment Variable

Description

APPDIR

The directory path where you copied the sample application files. For example:

Windows NT

APPDIR=c:\work\cnssimpapp

UNIX

APPDIR=/usr/work/cnssimpapp

TUXCONFIG

The directory path and name of the configuration file. For example:

Windows NT

TUXCONFIG=c:\work\cnssimpapp\tuxconfig

UNIX

TUXCONFIG=/usr/work/cnssimpapp/tuxconfig

JDKDIR

The directory path where you installed the JDK software. For example:

Windows NT

JDKDIR=c:\jdk1.2.2

UNIX

JDKDIR=/usr/local/jdk1.2.1

You need to specify this parameter only if you plan to use the Java version of the Name Service sample application.

JAVA_HOME

The directory path where you installed the JDK software. For example:

Windows NT

JAVA_HOME=c:\JDK1.2

UNIX

JAVA_HOME=/usr/local/JDK1.2

You need to define this environment variable only when you use the Java version of the Name Service sample application.

RESULTSDIR or
JRESULTSDIR

A subdirectory of APPDIR where files that are created as a result of executing the runme command are stored. For example:

Windows NT

RESULTSDIR=c:\workdirectory\

UNIX

RESULTSDIR=/usr/local/workdirectory/

When using the Java version of the Name Service sample application, specify the JRESULTSDIR environment variable.

To verify that the information for the environment variables defined during installation is correct, complete the following steps:

Windows NT

  1. From the Start menu, select Settings.

  2. From the Settings menu, select the Control Panel.

    The Control Panel appears.

  3. Click the System icon.

    The System Properties window appears.

  4. Click the Environment tab.

    The Environment page appears.

  5. Check the settings of the environment variables.

UNIX

ksh prompt>printenv TUXDIR

ksh prompt>printenv JAVA_HOME

To change the settings, complete the following steps:

Windows NT

  1. On the Environment page in the System Properties window, click the environment variable you want to change or enter the name of the environment variable in the Variable field.

  2. Enter the correct information for the environment variable in the Value field.

  3. Click OK to save the changes.

UNIX

ksh prompt>export TUXDIR=directorypath

ksh prompt>export JAVA_HOME=directorypath

Step 4: Execute the runme Command

The runme command automates the following steps:

  1. Setting the system environment variables.

  2. Loading the UBBCONFIG file.

  3. Compiling the code for the client application.

  4. Compiling the code for the server application.

  5. Starting the server application using the tmboot command.

  6. Starting the client application.

  7. Stopping the server application using the tmshutdown command.

    Note: You can also run the Name Service sample application manually. The steps for manually running the Name Service sample application are described in the Readme.txt file.

To build and run the Name Service sample application, enter the runme command, as follows:

Windows NT

prompt>cd workdirectory

prompt>runme

UNIX

ksh prompt>cd workdirectory

ksh prompt>./runme.ksh

The Name Service sample application runs and prints the following messages:

Testing simpapp
cleaned up
prepared
built
loaded ubb
booted
ran
shutdown
saved results
PASSED

Table 5-5 lists the C++ files in the work directory generated by the runme command.

Table 5-5 C++ Files Generated by the runme Command

File

Description

Simple_c.cpp

Generated by the idl command, this file contains the client stubs for the SimpleFactory and Simple interfaces.

Simple_c.h

Generated by the idl command, this file contains the client definitions of the SimpleFactory and Simple interfaces.

Simple_s.cpp

Generated by the idl command, this file contains the server skeletons for the SimpleFactory and Simple interfaces.

Simple_s.h

Generated by the idl command, this file contains the server definition for the SimpleFactory and Simple interfaces.

.adm/.keybd

A file that contains the security encryption key database. The subdirectory is created by the tmloadcf command in the runme command.

results

A directory generated by the runme command.

Table 5-6 lists the Java files in the work directory generated by the runme command.

Table 5-6 Java Files Generated by the runme Command

File

Description

SimpleFactory.java

Generated by the m3idltojava command for the SimpleFactory interface. The SimpleFactory interface contains the Java version of the OMG IDL interface. It extends org.omg.CORBA.Object.

SimpleFactoryHolder.java

Generated by the m3idltojava command for the SimpleFactory interface. This class holds a public instance member of type SimpleFactory. The class provides operations for out and inout arguments that are included in CORBA, but that do not map exactly to Java.

SimpleFactoryHelper.java

Generated by the m3idltojava command for the SimpleFactory interface. This class provides auxiliary functionality, notably the narrow method.

_SimpleFactoryStub.java

Generated by the m3idltojava command for the SimpleFactory interface. This class is the client stub that implements the SimpleFactory.java interface.

_SimpleFactoryImplBase.java

Generated by the m3idltojava command for the SimpleFactory interface. This abstract class is the server skeleton. It implements the SimpleFactory.java interface. The user-written server class SimpleFactoryImpl extends _SimpleFactoryImplBase.

Simple.java

Generated by the m3idltojava command for the Simple interface. The Simple interface contains the Java version of the OMG IDL interface. It extends org.omg.CORBA.Object.

SimpleHolder.java

Generated by the m3idltojava command for the Simple interface.This class holds a public instance member of type Simple. The class provides operations for out and inout arguments that CORBA has but that do not match exactly to Java.

SimpleHelper.java

Generated by the m3idltojava command for the Simple interface. This class provides auxiliary functionality, notably the narrow method.

_SimpleStub.java

Generated by the m3idltojava command for the Simple interface. This class is the client stub that implements the Simple.java interface.

_SimpleImplBase.java

Generated by the m3idltojava command for the Simple interface. This abstract class is the server skeleton. It implements the Simple.java interface. The user-written server class SimpleImpl extends _SimpleImplBase.

Simple.ser

The Server Descriptor File generated by the buildjobjserver command in the runme command.

Simple.jar

The server Java Archive file generated by the buildjavaserver command in the runme command.

.adm/.keybd

A file that contains the security encryption key database. The subdirectory is created by the tmloadcf command in the runme command.

results

A directory generated by the runme command.

Table 5-7 lists files in the RESULTS or JRESULTS directory generated by the runme command.

Table 5-7 Files in the results Directory Generated by the runme Command

File

Description

input

Contains the input that the runme command provides to the Java client application.

output

Contains the output produced when the runme command executes the Java client application.

expected_output

Contains the output that is expected when the Java client application is executed by the runme command. The data in the output file is compared to the data in the expected_output file to determine whether or not the test passed or failed.

log

Contains the output generated by the runme command. If the runme command fails, check this file for errors.

setenv.cmd

Contains the commands to set the environment variables needed to build and run the Java Name Service sample application on the Windows NT operating system platform.

setenv.ksh

Contains the commands to set the environment variables needed to build and run the Java Name Service sample application on the UNIX operating system platform.

stderr

Generated by the tmboot command, which is executed by the runme command. If the -noredirect JavaServer option is specified in the UBBCONFIG file, the System.err.println method sends the output to the stderr file instead of to the ULOG file.

stdout

Generated by the tmboot command, which is executed by the runme command. If the -noredirect JavaServer option is specified in the UBBCONFIG file, the System.out.println method sends the output to the stdout file instead of to the ULOG file.

tmsysevt.dat

Contains filtering and notification rules used by the TMSYSEVT (system event reporting) process. This file is generated by the tmboot command in the runme command.

tuxconfig

A binary version of the UBBCONFIG file.

ubb

The UBBCONFIG file for the Java Name Service sample application.

ULOG.<date>

A log file that contains messages generated by the tmboot command.

Using the Name Service Sample Application

Run the server application in the Name Service sample application, as follows:

Windows NT

prompt>tmboot

UNIX

ksh prompt>tmboot

Run the client application in the Name Service sample application, as follows:

Windows NT

prompt>java -classpath %CLIENTCLASSPATH%
-DTOBJADDR=%TOBJADDR% SimpleClient
String?
Hello World
HELLO WORLD
hello world

UNIX

ksh prompt>java -classpath $CLIENTCLASSPATH
/m3envobj.jar -DTOBJADDR=$TOBJADDR SimpleClient
String?
Hello World
HELLO WORLD
hello world

Before using another sample application, enter the following commands to stop the Name Service sample application and to remove unnecessary files from the work directory:

Windows NT

prompt>tmshutdown -y

prompt>nmake -f makefile.nt clean

UNIX

ksh prompt>tmshutdown -y

ksh prompt>make -f makefile.mk clean