[Top] [Prev]

BEA ObjectBroker Release Notes

BEA ObjectBroker Version: 4.1
Date: May 1998

Overview

The purpose of this release is to incorporate fixes to known problems and to update operating system and compiler support to current versions that are year-2000-ready.

Platform Coverage

The following platforms are supported for this release:

The following platforms or platform versions have been retired as of this release:

Year 2000 Readiness

ObjectBroker Version 4.1 is year-2000-ready. In addition, platform support has been upgraded to include year-2000-ready operating system versions.

Problems Fixed

This section lists and describes problems that were fixed in Version 4.1, Version 4.0, and Version 3.0 of ObjectBroker.

ObjectBroker Version 4.1

The following problems are fixed in Version 4.1 of ObjectBroker:

ObjectBroker Version 4.0

The following problems are fixed in Version 4.0 of ObjectBroker and are included in the Version 4.1 release:

In addition to adding this code to the server program, on Windows NT the ObjectBroker agent service must be allowed to interact with the desktop. To enable this interaction:

    1. In the Control Panel, double-click on Services.

    2. In the Services window, locate and double-click on ObjectBroker for Windows NT.

    3. In the Service window, click on Allow Service to Interact with Desktop; click on OK.

    4. In the Services window, while ObjectBroker is highlighted, clock on Stop and then click on Start, to restart the ObjectBroker agent service.

    5. The user autostarting the server should either be in the Administrators group or the default path for the user's account must point to an existing directory that is writable by that account. For more information, refer to the second item under "ObjectBroker Version 3.0"

ObjectBroker Version 3.0

The following problems, which were fixed in Version 3.0 of ObjectBroker, are included in the ObjectBroker Version 4.1 release:

New Features in ObjectBroker V4.1

No new features were added to ObjectBroker V4.1.

Features Removed from ObjectBroker V4.1

The features listed in the following sections were removed from ObjectBroker V4.1.

Removed DCE Security Support

In ObjectBroker Version 4.1, support has been retired for DCE Security.

Removed Support for Asynchronous Communication Using MessageQ

In ObjectBroker Version 4.1, support has been retired for asynchronous communication using BEA MessageQ.

New Features in ObjectBroker V4.0

This section describes new functionality available in Version 4.0 of ObjectBroker. New information is available about the following ObjectBroker functionality:

Tracing

The ObjectBroker Trace facility allows you to record the startup procedure, output, and errors of an ObjectBroker server or client application.

The Trace facility for the R (resolution) and I (invocation) flags has been enhanced to provide more information when errors occur during server startup and method resolution failures.

The following new trace flag is available:
Trace Flag Description

K

Precedes each trace message with a timestamp. When the K flag is specified, each trace message is displayed with the following format:

"Day Month Year Hour:Minute:Second Year" "trace_message_text"

For a description of how to use the Trace facility to debug ObjectBroker client and server applications, refer to the ObjectBroker Administration Guide.

The obbmset and SET AGENT commands have new options that permit dynamic setting of tracing on running server applications and the ObjectBroker agent. the syntax of the options are as follows:
Unix, Windows NT, Windows 95 OpenVMS Description

-t

/TFLAGS

Dynamically changes the trace flags on the ObjectBroker agent or the server application.

To change the trace flags on the server application, include the -u option and the UUID of the server application on the command line. If you do not include the -u option and the UUID, only the trace flags on the ObjectBroker agent will be changed.

-f filename

/TFILE=filename

Changes the trace file from the default. Enter the name of the file to which you want to direct trace output.

-u uuid

/TUUID=uuid

Set or resets the trace flags on the specified server application through the ObjectBroker agent. Specify the UUID to indicate the particular instance of a server application. Use the obbmsho command to see a list of running server applications and their UUIDs.

-n computer-name

/NODE=node-name

Specifies the name of the node on which the server application or the ObjectBroker agent on which you want to set or reset trace flags is running. This option defaults to the node on which the ObjectBroker agent is running.

For a complete description of the obbmset and SET AGENT commands and their options, refer to ObjectBroker Commands and Utilities.

Event Logging

You can debug your client or server application using events seen by the ObjectBroker agent. You cannot access this information using the Trace facility. When you enable event logging:

Note that to enable error logging, you must be logged in to a privileged account.

Obbmdcfg Command Options

Use the obbmdcfg command options in the following table to log ObjectBroker agent events. See Table 1-1 for a list of all the events logged for each option.

Option Error Logging Level

-en

NONE

-ee

ERROR

-es

SECURITY

-eo

OBJECT

-ep

PROCESS

-ea

ALL

The default is -en (NONE).

The obbmdcfg command is used on the UNIX, Windows NT, and Windows 95 platforms. Refer to the ObjectBroker Commands and Utilities manual for a complete description of the obbmdcfg command. See ObjectBroker Designing and Building Applications for more information about logging agent events.

This command changes the permanent configuration but does not affect a currently running ObjectBroker agent.

MODIFY CONFIGURATION Command Options

Use the arguments to the /EVENT_LOGGING option of the MODIFY CONFIGURATION command in the following table to log ObjectBroker agent events. For example, to specify level ERROR, enter the following command:

$ MODIFY CONFIGURATION/EVENT_LOGGING=ERROR my-config

See Table 1-1 for a list of all the events logged for each option.
Argument Error Logging Level

NONE

NONE

ERROR

ERROR

SECURITY

SECURITY

OBJECT

OBJECT

PROCESS

PROCESS

ALL

ALL

The default is NONE.

The MODIFY CONFIGURATION command is used on the OpenVMS platform. Refer to the ObjectBroker Commands and Utilities manual for a complete description of the MODIFY CONFIGURATION command. See ObjectBroker Designing and Building Applications for more information about logging agent events.

This command changes the permanent configuration but does not affect a currently running ObjectBroker agent.

Modifying the Event Logging Level on a Running ObjectBroker Agent

When you change the event logging level in a configuration, you do not change the logging level of a currently running ObjectBroker agent; you simply specify the logging level to be used when an ObjectBroker agent is started using that configuration.

To modify the event logging level of the currently running ObjectBroker agent, perform the following steps:

  1. Enter one of the following commands to determine the configuration name:

    UNIX, Windows NT, and Windows 95

    >obbshcfg

    OpenVMS

    $APPL/BRO SHOW CONFIG

  2. Enter one of the following commands to modify the event logging level in the current configuration:

    UNIX, Windows NT, and Windows 95

    >obbshcfg -e level "config-name"

    OpenVMS

    $APPL/BRO MOD CONFIG /EVENT_LOGGING=level "config-name"

  3. Enter one of the following commands to reopen the event log:

    UNIX, Windows NT, and Windows 95

    >obbmset -A -R

    OpenVMS

    $APPL/BRO SET AGENT /REOPEN LOG

See the ObjectBroker Commands and Utilities manual for more information about these commands.

Event Logging Levels

You can use the obbmdcfg -e or MODIFY CONFIGURATION /EVENT_LOGGING command to control which ObjectBroker agent events are logged. This command allows you to select a level of events to be logged. Table 1-1 shows these levels and their respective events. Table 1 Event Logging Levels

Logging Level
Event NONE ERROR SECURITY OBJECT PROCESS ALL

ObjectBroker Agent

Startup

Shutdown

Information

Error

Warning

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Authentication

Startup

Shutdown

Invalid User Name

No Identity Found

No Proxy Found

Error

Warning

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Application

Startup

Select

Set

Register

Unregister

Terminate

Dead

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Changes in Generated Server Application Code

The following enhancements have been made to the generated server application code:

Stopping Running Implementations

Before upgrading ObjectBroker or removing it from your system, you must stop all the running implementations. An option that stops all running implementations has been added to the obbmstp and the STOP SERVER_PROCESS commands.

The syntax is as follows:
Table 1
UNIX,
Windows NT,
Windows 95
OpenVMS Description

obbmstp -l

APPLIC/BROKER STOP SERVER_PROCESS /ALL

Stops all running implementations and returns a status message

Obbmstp -l -a

APPLIC/BROKER STOP SERVER_PROCESS /ALL /ABORT

Stops all running implementations including implementations with a Terminate status

One of the following messages is returned:
Table 1
Message Description

OBB_INV_NOSRVTOSTOP

There are no running implementations.

OBB_CMD_CANTSTOPALL

There are insufficient privileges to stop all requested servers.

OBB_INV_NOTAUTHORIZED

Some of the running implementations have been stopped; however, the client is not authorized to stop all the running implementations.

For a complete description of the obbmstp and STOP SERVER_PROCESS commands, refer to the ObjectBroker Commands and Utilities manual. For more information about upgrading your ObjectBroker release or removing ObjectBroker from your system, refer to the ObjectBroker Installation Guide.

Smaller Security Registry File

With this version of ObjectBroker, the size of the Security Registry file is significantly smaller than with previous versions of ObjectBroker, particularly when a large number of proxies has been defined.

Setting Proxies, Authorization, and Security on Multiple Entities

ObjectBroker Version 4.0 provides a new feature that lets you take the following actions on multiple entities by specifying those entities in input files:

When you execute these actions using input files, the respective actions are completed in a single operation. For example, to add a proxy for each of the entries in the file my_proxy_file.dat, you can now enter the following command:

# obbaddpxy -f my_proxy_file.dat

New Command Options

ObjectBroker provides the following two new options that you can use with the commands that affect the above actions:

Commands with Which You Can Use These New Options

The commands with which you can use these two new options are as follows:

Command UNIX, Windows NT and Windows 95 OpenVMS

Add proxy

obbaddpxy

APPLICATION/BROKER ADD PROXY

Remove proxy

obbrmpxy

APPLICATION/BROKER REMOVE PROXY

Grant authorization

obbgrath

APPLICATION/BROKER GRANT AUTHORIZATION

Revoke authorization

obbrvath

APPLICATION/BROKER REVOKE AUTHORIZATION

Set security

obbstsec

APPLICATION/BROKER SET SECURITY

See the ObjectBroker Commands and Utilities manual for details on using these commands.

Generating the Input Files

Each of the commands that support the new options accept as input the output generated with the show proxy, show authorization, and show security commands. To make changes to multiple entries simultaneously, direct the output of the show command to a file, modify the entries in that file, and then input that file to the command that affects the desired changes.

For example, to change the security settings for multiple implementations on a UNIX system:

  1. Enter the obbshsec command (show security), directing the output to a file:

    # obbshsec > my-security-file

  2. Edit the generated output file, entering the changes you want to subsequently make with the obbstsec command.

  3. Enter the obbstsec command, specifying the file as input:

    # obbstsec -f my-security-file

The following sections describe the input files that you can use with all the affected commands.

File for Adding or Removing Multiple Proxies

Each entry in the input file has the following format:

local_username remote_username remote_hostname

Note the following guidelines:

File for Granting/Revoking Authorization of Multiple Implementations

Each entry in the input file has the following format:

ImplName
U[sername]: user1 [user2] [usern]
[method-name]

Note the following guidelines:

File for Setting Security on Multiple Implementations

Each entry in the input file has the following format:

ImplName
Authentication SecurityContextDeletion SecurityPrincipal Model

Note the following guidelines:

Additional Output for the Show Implementation Command

With ObjectBroker Version 3.0 and earlier, the obbmsho (or SHOW IMPLEMENTATION on OpenVMS) command shows only the registered implementation name and its UUID.

With ObjectBroker Version 4.0, the output of the show implementation command is expanded to include the following information for the implementation:

All registered implementations store this information in the partition database. In many cases, especially if all implementations are shown, too much information could be provided.

The -v option for UNIX, Windows NT, and Windows 95 (or the /VERBOSE option for OpenVMS) has been provided to control this problem. If you specify the -v (or /VERBOSE) option, all of the information about an implementation or implementations is shown. Without the option, the obbmsho and SHOW IMPLEMENTATION commands provide the name and ID only.

Option Syntax

UNIX, Windows NT, and Windows 95

-v

Example:

# obbmsho -R -v

OpenVMS

/VERBOSE

Example:

$ APPLIC/BROKER SHOW IMPLEMENTATION /VERBOSE

Example Output

The following is an example of the output produced with the new -v option to the obbmsho command (or the /VERBOSE option to the SHOW IMPLEMENTATION command on OpenVMS):

Implementations registered.
Implementation Name
---------------------
CTXPRP Server
ImplementationId: 623d5a0ca2f2.02.10.20.30.90.00.00.00
Time Registered: Fri Feb 7 08:04:25 1997
Activation Account: not specified
Activation Context: actctx
++++ DECW*
++++ CTXENVVAR*
++++ CTXTAB_ACT.CTXENVVAR
Activation Environ: COLLECTION=TEST_ATTRIBUTES.COLLECTION
++++ SERVER1_NAME=TEST_ATTRIBUTES.SERVER1_NAME
++++ =actctxenv*
++++ DECW_DISPLAY_ENV=DECW_DISPLAY_CTX
++++ =DECW_TRANSPORT_ENV
++++ CTXTAB_ACT_actctx1=CTXTAB_ACT.actctx
++++ CTXTAB_ACT_act_ctx=CTXTAB_ACT.act$ctx
Activation Policy: shared
Activation String: /obb/bryce/test/src/start_server
Activation Type: program
Method Type & Name: static_load actctx
Method Type & Name: static_load idlctx
Method Type & Name: static_load idlctxfilter
Method Type & Name: static_load idlctxall
Method Type & Name: static_load idlctxsome
Method Type & Name: static_load noidlctx
Method Type & Name: static_load idlctxtab
Method Type & Name: static_load idlctxobb
Method Type & Name: static_load TerminateServer

PERFImpl
ImplementationId: 6d3325f37f82.0c.bb.09.00.00.00.00.00
Time Registered: Thu Feb 6 16:10:55 1997
Activation Account: not specified
Activation Context: not specified
Activation Environ: COLLECTION=TEST_ATTRIBUTES.COLLECTION
++++ SERVER1_NAME=TEST_ATTRIBUTES.SERVER1_NAME
Activation Policy: shared
Activation String: /obb/bryce/test/src/start_server
Activation Type: program
Method Type & Name: static_load noarg
Method Type & Name: static_load noarg_oneway
Method Type & Name: static_load onearg
Method Type & Name: static_load onearg_oneway
Method Type & Name: static_load noarg_ctx
Method Type & Name: static_load noarg_ctx_oneway
Method Type & Name: static_load seqshort
Method Type & Name: static_load sequshort
Method Type & Name: static_load seqlong
Method Type & Name: static_load sequlong
Method Type & Name: static_load seqfloat
Method Type & Name: static_load seqdouble
Method Type & Name: static_load seqchar
Method Type & Name: static_load seqboolean
Method Type & Name: static_load seqoctet
Method Type & Name: static_load create_object
Method Type & Name: static_load TerminateServer

Network Tester Enhancements

The Network Tester utility has been enhanced to retrieve the transport information for the current configuration from the ObjectBroker registry. If the transport or provider is not specified with the command, the following occurs:

  1. If only one transport is defined in the current configuration, the transport is used as the default.

  2. If multiple transports are defined in the current configuration for the client application, the following occurs:

  3. If multiple transports are defined in the current configuration for the server application, the following occurs:

Enhanced Compile and Generate Commands

For obbcomp and obbgen commands on UNIX, Windows NT, and Windows 95, and the corresponding COMPILE and GENERATE commands on OpenVMS, a new option called Basename has been added. This option specifies the base name you use when determining the file specification of the generated include files.

The file specification is from either the base OMG IDL file or the base module, and can include the client include file, the server include file, and the typecode include file. To change the include file specifications, use the -B option on UNIX, Windows NT, and Windows 95, and the /BASENAME qualifier on OpenVMS to specify the base file for these include files. The base file name should not include a file extension.

The syntax for the enhanced compile and generate commands is as follows:

UNIX, Windows NT, and Windows 95

-B

Example:

# obbcomp -l cxx -c myapp.cxx -B appdef myapp.idl

OpenVMS

/BASENAME=name

Example:

$ APPLIC/BROKER

OBB>COMPILE myapp.idl/LANGUAGE=CXX/STUBS=CLIENT=myapp.cxx-/ BASENAME=appdef

In the examples above, the generated client stubs go into myapp.cxx, and the corresponding include file is named appdef.hxx.

New Binding Policies

ObjectBroker Version 4.1 includes two additional binding policies: STATIC_BOUND, and AUTOMATIC_WITH_REBIND.

STATIC_BOUND

ObjectBroker Version 4.1 provides a new binding policy, OBB_BINDPOLICY_STATIC_BOUND, which allows you to establish a direct connection between the object and the server application, bypassing the agent. Response time is improved because the client can connect directly to the server. Since this is a binding policy, you do not need to specify it at registration time. You can set this binding policy with the function OBB_BOA_set_impl_binding.

AUTOMATIC_WITH_REBIND

With ObjectBroker Version 3.0 and earlier versions of ObjectBroker, an object reference, when bound to a server application, remains bound to that server application, even when the server application crashes or otherwise becomes unavailable because of a failed communication link. To recover, the client application must note this problem, release the object reference, create a new and unbound object reference, and retry the operation.

ObjectBroker Version 4.1 provides a new binding policy, OBB_BINDPOLICY_AUTOMATIC_WITH_REBIND, which causes a new server to be started when an object cannot find the server to which that object is initially bound. You can set this binding policy with the function OBB_BOA_set_impl_binding.

Skipping Duplicate Nodes for Server Selection

During resolution processing, ObjectBroker now tracks the nodes to which it attempts resolution, and does not revisit the same node more than once, even if the node appears multiple times in the node list because of redundant entries in OBB_LOCAL, OBB_DEFAULT_NODES, or OBB_ADVERTISEMENTS.

Enabling/Disabling Server Application Selection and Autostart

ObjectBroker Version 4.0 provides a new feature that allows the agent running on a particular computer to control whether requests to start a server application are permitted or denied. This feature is available in the obbmset (APPLICATION/BROKER SET AGENT on OpenVMS systems) command.

The syntax of the enable/disable server selection command switch is as follows:

UNIX, Windows NT, and Windows 95

obbmset -A -s{0|1}

OpenVMS

APPLICATION /BROKER SET AGENT /[NO]SERVER_SELECT

In the syntax above, the argument -s1 (or /SERVER_SELECT on OpenVMS systems) enables server selection and autostart (this is the default ). The argument -s0 (or /NOSERVER_SELECT on OpenVMS systems) disables server selection and autostart.

When server selection and autostart are disabled on a given node, the following line of text is displayed when you enter the obbmsho -A (APPLICATION /BROKER SHOW AGENT on OpenVMS) command, under the Attributes heading:

Server Selection and Autostart DISABLED

Agent Startup Event Added to Event Logging

An agent startup event was added to event logging. This event is enabled for logging by default, and it records contextual information about the agent at startup, including the level of events that is enabled for logging. Authentication error and warning events were also added, and the grouping of events was changed with regard to enabling and disabling them for logging. For more information, see the section entitled Event Logging under New Features in Version 4.0.

Features Removed from ObjectBroker V4.0

The features listed in the following sections were removed from ObjectBroker V4.0.

Removed DDE Listener and OLE Network Portal Support

In ObjectBroker V4.0, support has been retired for the DDE Listener and OLE Network Portal utilities. OLE connection functionality can be achieved by using the ObjectBroker Desktop Connection product.

Removed Visual Basic Bindings

In ObjectBroker Version 4.0, support has been retired for the Visual Basic bindings found in earlier versions.

New Features in ObjectBroker V3.0

The following features and functionality added to ObjectBroker Version 3.0 are still present in ObjectBroker Version 4.0 and 4.1. For more detailed information, refer to the ObjectBroker Version 3.0 Documentation Supplement.

Support was added for the following:

Known Problems in ObjectBroker V4.1

This section lists and describes problems and restrictions that currently exist.

Upgrading from Previous Versions

If you are upgrading from ObjectBroker Version 2.7 or 3.0 to Version 4.1, you do not need to recompile and relink your programs, but for better operation, you should rebuild your programs.

If you are upgrading from ObjectBroker Version 4.0 to Version 4.1, you must recompile and relink your programs to ensure proper operation.

Windows 95

The problems listed in this section may occur when you use ObjectBroker on Windows 95 systems.

QuickStart and ObjectBroker Examples

The QuickStart feature and some ObjectBroker examples will not function correctly until OBBVAR32.BAT is called. ObjectBroker for Windows 95 provides this batch file to define the PATH, LIB, and INCLUDE environment variables that enable the use of ObjectBroker from the MS-DOS box.

When you use either QuickStart or the examples, it is recommended that OBBVAR32 be called from AUTOEXEC.BAT, specifying the location of Visual C++ as follows:

\Progra~1\Object~1\Bin\obbvar32 C:\Progra~1\Object~1 C:\Progra~1\DevStudio\VC

When calling OBBVAR32 from AUTOEXEC.BAT, you must specify short file names. This is a limitation of the Windows 95 operating system.

Activation Context

Activation context does not work properly on Windows 95 when the agent is set with debug server startup disabled. The environment variables are not set in the server process that is started.

The activation context will also not be set if the agent is set with debug server startup enabled and the agent fails to open a debug server startup log file.

A workaround for this problem is to enable debug server startup on the agent for Windows 95.

Be sure to delete the OBB*.LOG files that are created in the Windows temporary directory. The FAT file numbering scheme is limited to 99 file versions when the filenames have the same first characters.

QuickStart and Environment Space

QuickStart on Windows 95 may experience problems with the size of the MS-DOS environment space. By default, the environment size in the MS-DOS box on Windows 95 is the same as the environment size before Windows 95 is started. Attempts to run QuickStart may result in failure because not enough space remains for the environment variables that QuickStart defines.

The environment space available for all applications can be increased by adding the following line to CONFIG.SYS:

shell=c:\command.com c:\ /e:1024 /p

The /e switch creates a default environment of the specified size.

QuickStart File Name Constraints

QuickStart IDL filenames should not contain spaces or ~ characters. This limitation is imposed by the NMAKE tool provided with Visual C++. When QuickStart passes filenames that contain these characters, NMAKE displays an error message and cancels the compilation.

Passwords and LAN Manager Security Domain

If you use ObjectBroker for Windows 95 in a LAN Manager security domain, any password changes made on a system are known only to ObjectBroker on the system on which the change was made, and not on other systems in the domain.

CORBAservices Naming Service May Fail to Start

On Windows 95, CORBAservices Naming Service operations will fail if the OBBVAR32.BAT file has not been executed to define the PATH, LIB, and INCLUDE environment variables. This is because the directory containing the CORBAservices Naming Service server executable must be in the PATH for the server to be autostarted.

To avoid this problem, execute the OBBVAR32.BAT file to ensure that the directory containing the CORBAservices Naming Service server executable is in the PATH. By default, this directory is as follows:

drive:\progra~1\ObjectBroker\bin

Windows NT

The problems listed in this section may occur when you use ObjectBroker on Windows NT systems.

Development Kit

When the development version of the ObjectBroker kit is installed on Windows NT, ObjectBroker adds its appropriate pathnames to the system's lib and include environment variables. However, if individual users have defined their own lib or include environment variables, their own definition will override the system's definition. Users who are doing ObjectBroker development should make sure they have the appropriate %lib% and/or %include% in their private definition of these two environment variables.

The system's path environment variable is also modified by ObjectBroker when either the development kit or the run-time kit is installed; however, users should not modify their private definition of this variable. The system's path environment variable is not overridden, but is appended to the user's definition.

See the online help for the system control panel applet for more information about Windows NT environment variables.

Logging on for Server Application Startup

For any newly created account where the ObjectBroker agent automatically starts a server application, you must first log on to the account on which you run the server. Once you have logged on to the account, and have thereby verified your access, ObjectBroker can automatically start a server application from that account.

You do not need to log on to the account every time you start a server application. If you change your password on that account, you need to log on to that system again.

Passwords and LAN Manager Security Domain

If you use ObjectBroker for Windows NT in a LAN Manager security domain, any password changes made on a system are known only to ObjectBroker on the system on which the change was made, and not on other systems in the domain.

Node Name and User Name on Windows NT

For any account on Windows NT, the node name and user name must not be the same.

Windows NT Accounts Require a Default Path to Autostart Servers

For any account under which servers are autostarted, the default path for that account must point to an existing directory that is writable by that account.

Note that when a Windows NT user account is created, no default path is included in the user profile. In this case, the user's default environment includes one of the following default paths (depending on the existence of the associated directories):

<system-drive>:\users\default, or, if that does not exist,
<system-drive>:\users, or, if that does not exist,
<system-drive>:\

Note: The default path of <system-drive>:\ is not supported for ObjectBroker autostart.

UNIX

The problems listed in this section may occur when you use ObjectBroker on UNIX platforms.

Installation on UNIX Appears to Hang

At the end of the ObjectBroker installation, the online manual sections are updated using catman. Depending on the products you have installed on your system, this catman operation can take a long time (several minutes to an hour).

This has been most noticeable on Digital UNIX Version 4.0 systems, where installations can take up to 10 times longer than other installations. The processing may also take several minutes on HP-UX platforms.

Granting Authorization on UNIX Platforms

The ObjectBroker Programmers Reference manual and the online help indicate that ObjectBroker authorizations are granted using usernames. This is not correct on UNIX platforms; on these platforms, authorizations must be specified using the user identification (uid). The uid is obtained by using the UNIX command id[username].

The following example demonstrates how to grant authorization to local user snerd for the implementation CheckAcctImpl:

	#id snerd
uid=340(snerd) gid=15(users) groups=0(system)
#obbgrath -i CheckAcctImpl 340

For all non-UNIX platforms, the username must be used when granting authorizations.

Manpages

Note that this release contains manpages for ObjectBroker commands on UNIX systems. This release does not contain manpages for ObjectBroker routines.

The following are problems that may occur during and after the configuration of new manpages:

Problems with Signals on UNIX

If you have an ObjectBroker application running on UNIX, and you use UNIX signals, a signal handler problem may occur.

ObjectBroker registers a signal handler of its own for SIGIO. If you register your own handler for this signal before ObjectBroker does, ObjectBroker recognizes that a previous handler was registered and remembers the address of that handler. When ObjectBroker's handler is called, it calls your handler in addition to its own signal processing code; however, the only standard argument across all ObjectBroker UNIX platforms that will be passed to your handler is the signal number (an int).

On Solaris systems, ObjectBroker also passes the platform-specific additional arguments: handler(int, siginfo_t *, ucontext_t *)

Solaris

The problems listed in this section may occur when you use ObjectBroker on Solaris systems.

Workaround 1

Enter the following commands to create two symbolic links in the /bin directory:

# cd /bin
# ln -s /opt/DECOBBDEV/bin/obbregs obbregs
# ln -s /opt/DECOBBDEV/bin/obbnamesrv obbnamesrv
Workaround 2

Perform the following steps:

  1. Export the implementation partition of the ObjectBroker registry:

# obbexreg -I implementations.dat

  1. Edit the output file as follows:
    Change To

    /bin/obbregs

    /opt/DECOBBDEV/bin/obbregs

    /bin/obbnamesrv

    /opt/DECOBBDEV/bin/obbnamesrv

  2. Import the file to the implementation partition of the ObjectBroker registry:

    # obbimreg -I implementations.dat

HP-UX 11.00

The problems listed in this section may occur when using ObjectBroker on HP-UX 11.00 platforms.

Module Statement Required in IDL

The following restriction exists only on HP-UX 11.00 systems. A generated application will fail to compile if the IDL does not contain a module statement. In these cases, an error of the following type appears:

Error 741: Ill-formed conversion...

To work around this problem, include a module statement in the IDL. The following examples show BAD.IDL, which will cause a compilation failure in the generated client module, and GOOD.IDL, which will compile successfully.

BAD.IDL
//Fails on HP-UX 11; works on all other platforms
interface bar
{
void op();
};
GOOD.IDL
//works on all platforms
module foo
interface bar
{
void op
};
};

File Substitution Required Before Using obbgui Command

The obbgui command that is supplied in the ObjectBroker kit for HP-UX 11.00 systems does not work properly. To get it to work properly, you must substitute some files from the ObjectBroker kit for HP-UX 10.20 systems after you have installed ObjectBroker on your HP-UX 11.00 system in the usual way.

To substitute the files, perform the following steps:

  1. Mount the ObjectBroker installation CD-ROM. In this example, /cdrom is used as the mount point.

  2. Extract the following directory from the HP-UX 10.20 kit using a command like this:

    tar xvf /cdrom/objbrokr/hpux/obb_d_hpx10_x4103.kit \
    DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid

    The following files will be extracted:

    DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid/obbadmin.uid
    DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid/obbcntxt.uid
    DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid/obbgui.uid
    DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid/obbimplv.uid
    DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid/obbnetst.uid
    DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid/obbrepos.uid

  3. When logged in as superuser, copy these files over the ones that were placed on your HP-UX 11.00 system when you originally installed ObjectBroker, using a command like this:

    cp DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid/* \
    /usr/lib/X11/uid

    After completing these steps, the obbgui command will work properly on your HP-UX 11.00 system.

Supported Version of C++ Compiler Required

If you encounter the following type of error during code generation (of sequences of Strings, TypeCodes, and Objects) it means that you have a version of the aCC compiler not supported by ObjectBroker.

Error 187: "sstring.cxx", line 34 # Referenced object 'CORBA::Char' \
is not a member of class _ForSeq_var ["sstring.cxx", line 12].
_data[0] = _obj._data[0].operator CORBA::Char * ();

To fix this problem, upgrade to the supported version of the C++ HP11 compiler, which is HP aCC Version A.03.10.

OpenVMS

There is a restriction in the ObjectBroker VMS installation kit regarding the definition and use of the nodename. If you have either DECnet or DEC TCP/IP Services for OpenVMS network software installed and running on your VMS system, refer to the following table for nodename requirements. DEC TCP/IP Services software is sometimes referred to as UCX.

In the following table, SCSNODE is a SYSGEN parameter.
DECnet_Status UCX_Is_Running UCX_Is_Not_Running

DECnet is running

DECnet nodename = SCSNODE

DECnet nodename = SCSNODE

DECnet is not running

IP hostname = SCSNODE

Not applicable

The preceding table shows that if you have DEC TCP/IP Services for OpenVMS (sometimes referred to as UCX) and DECnet installed on your system, then the DECnet nodename and the SCSNODE SYSGEN parameter must be the same for ObjectBroker to install properly.

If DECnet is not running (or is not installed) and you have DEC TCP/IP Services installed and running, the IP hostname for your OpenVMS system must match the SCSNODE SYSGEN parameter. Note that the SCSNODE parameter is limited to six characters.

If your OpenVMS network setup does not comply with these restrictions, ObjectBroker will not install properly.

C and C++

This sections lists problems related to C and C++ that currently exist.

C++ Server Method Cannot Delete "this" Pointer

A C++ server method cannot delete the this pointer from within the method. For example, the following statement may cause the server to crash within the generated dispatcher just after the method completes:

delete (this);

There is no workaround to allow delete (this) to work within a method; however, the server can accomplish similar behavior by doing the following:

  1. Have the method mark the instance for deletion, and delete the instance later within the dispatch loop.

  2. Have the method clear the association to ensure the instance will not be dispatched again. Do this by calling the associated_object modifier using a NIL object reference, or by disposing of the object reference.

This also requires that the server have its own dispatch loop for dispatching ObjectBroker events. The instance cleanup needs to be hooked into the dispatch loop. For example:

	in logoff method:

delete_instance = this;
associated_object( (void *)(myserver *)this,

CORBA::Object::_nil(local_ev), ev);

in dispatch loop:

delete_instance = 0;
BOA->dispatch();
if (delete_instance) delete delete_instance;

C++ Inventory Example and Mapping Features

The C++ inventory example supplied on the ObjectBroker kit does not use the support provided by ObjectBroker for associating object references with server class instances. The inventory example uses a mapping class to accomplish this.

For information about associating object references and server class instances, refer to the section about Generated Server Class in the ObjectBroker Version 3.0 Documentation Supplement.

Example for C++ Server-Side Bindings

If you are using C++ server bindings, refer to the example in the ObjectBroker Version 3.0 Documentation Supplement.

C++ and C Code Generation Problems

The following are known problems with C++ and C code generation:

The following are known problems exclusive to C++ code generation:

C++ Code Regeneration Required

ObjectBroker Version 2.7 added an OBB::Object extension class to allow a server to retrieve an associated server instance from an object reference.

If your application has C++ source code that was generated by ObjectBroker Version 2.6, the C++ source code must be regenerated before it is compiled and linked against a later version of ObjectBroker.

For information about using the OBB::Object::associated_instance() accessor, refer to the ObjectBroker Version 3.0 Documentation Supplement.

BEA ObjectBroker Desktop Connection V1.0

There is a known problem with the ObjectBroker shell extensions and BEA ObjectBroker Desktop Connection V1.0. If you are planning to install BEA ObjectBroker Desktop Connection V1.0, delete the following files before installing the Desktop Connection but after installing ObjectBroker:

If the ObjectBroker shell extensions were in use prior to deleting these files, the DLL's may be loaded into memory. In this situation, you will not be able to delete these files and an error similar to the following is displayed:

Cannot delete shellext: The specified file is being used by Windows

If this occurs, reboot your system and then delete the files.

Object References

The following sections describe known problems with object references in ObjectBroker Versions 2.6 and later.

Filename Restrictions with Context Objects and Interface Repositories

ObjectBroker on Windows, Windows NT, and Windows 95 has a new restriction on filenames used for context objects and interface repositories. If the filenames specified for the context object or the interface repository end in numbers, unwanted behavior may occur when ObjectBroker attempts to read or write to those files.

The workaround is to use a filename that does not end in a number. For example, using the filename usr12.co may cause unwanted behavior. A better name is usr12f.co.

On Windows, there is a further restriction on the filenames used for the context object and the interface repository. This restriction stems from the maximum filename length allowed by the operating system (8 characters for name, 3 characters for extension). When ObjectBroker updates either the context object or the interface repository, it creates a new version of that file. It does this by taking the name specified by the user and appending the next greater version number to the name. Consequently, because of the versioning scheme, the user-specified filename also determines the number of revisions that are allowed to that file. The larger the user-specified file name, the fewer the revisions that can be made to it.

The change to the ObjectBroker versioning scheme was made to fix a problem with updating ObjectBroker database files that were being used by another program.

Because of the new naming convention, when the existing repository or context object is replaced using the create option (obbldrep -c or obbldctx -c), a new version is created without removing older versions.

Implementation Name Conflicts

If you receive an Invalid Implementation error message when you are registering an implementation, you may have an implementation naming conflict. This occurs when you use the obbreg -I command or the REGISTER IMPLEMENTATION command.

This error message can occur when you are registering an implementation whose name is already registered in the implementation partition of the ObjectBroker registry. (Note that implementation names must be unique.)

The Invalid Implementation error occurs instead of the Implementation is already registered error message because the implementation has a unique UUID, but not a unique name. The error is more likely to occur if you are using modules to scope implementations. You can determine if your implementation name is unique by entering the following command before your implementation has been registered:

obbmsho -R your-implementation-name

If an implementation with the same name as yours appears, you probably have a naming conflict. Here are two possible solutions:

An example of an implementation that is not scoped by a module is as follows:

implementation MMImplA
{
activation_type ( program );
activation_string ( "/usr/bin/myImpl" );
implementation_identifier( "66a470e41d4c.0c.ae.08.00.00.00.00.00" );
registration_attribute string ImplementationName = "MMImplA";
registration_attribute string ServerInstanceId =
"66a472a06184.0c.ae.08.00.00.00.00.00";
method_dispatcher_routine MMImplA__dispatch ();
registration_routine MMImplA__register ();
invoke_one ( )
implements ( MTHDMAP::ALL::invoke_one)
invoke_builtin ( "MMImplA_invoke_one" )
;
};

Here is the same implementation, scoped by a module:

module MTHDMAPIMPL {
implementation MMImplA
{
activation_type ( program );
activation_string ( "/usr/bin/myImpl" );
implementation_identifier ("66a470e41d4c.0c.ae.08.00.00.00.00.00" );
registration_attribute string ImplementationName =
"MTHDMAPIMPL::MMImplA";
registration_attribute string ServerInstanceId =
"66a472a06184.0c.ae.08.00.00.00.00.00";
method_dispatcher_routine MMImplA__dispatch ();
registration_routine MMImplA__register ();
invoke_one ( )
implements ( MTHDMAP::ALL::invoke_one)
invoke_builtin ( "MMImplA_invoke_one" )
;
};
};

After implementing one of these solutions, regenerate your client application, server application, and registration files.

Repository Retrieval Capacity

In ObjectBroker Version 2.6, the capacity for repository retrieval was raised to approximately 4000 objects for the following cases:

In the following cases, there is a maximum object retrieval capacity of approximately 1000 objects. Because ObjectBroker does not automatically check the number of objects being retrieved, repository retrieval of more than 1000 objects for these cases may result in data corruption.

Script Server Setup

The following are possible reasons for a script server setup failure. Information about workarounds is included.

Modify Configuration Option for the Object Reference Hash Table

By default, ObjectBroker maintains linked lists of object references, one list for each ImplementationDef. Traversing this list can affect performance when creating new objects if any one ImplementationDef has a large number (greater than 1000 in a client or server application process) of active object references.

The -h option (or /HASH_TABLE qualifier) allows you to specify that a hash table should be used instead of a linked list. The hash_table_size (or size) argument specifies the size of the hash table. If this option is set, each ImplementationDef will allocate a hash table of the specified size.

The syntax of this option on all platforms, except on OpenVMS, is:

obbmdcfg -h hash_table_size

On OpenVMS platforms, the syntax is:

MODIFY CONFIGURATION /HASH_TABLE=size

Documentation Updates

This section includes updates to the ObjectBroker technical documentation information for this release.

Update to ObjectBroker Designing and Building Applications

The section entitled Tracing under New Features in Version 4.0 in these release notes should be included as Section 9.7 of ObjectBroker Designing and Building Applications.

Update to ObjectBroker Commands and Utilities

The following sections are revised information on event logging to be included in ObjectBroker Commands and Utilities.

Obbmdcfg [Section 2, -e Option]

-e{n|e|s|o|p|a}

Specified the level of ObjectBroker agent events to be logged. The levels are:

n
None

e
Error

s
Security

o
Object

p
Process

a
All

The default is n (NONE).

See ObjectBroker Designing and Building Applications for more information about logging agent events.

MODIFY CONFIGURATION [Section 3, /EVENT LOGGING Qualifier]

/EVENT_LOGGING={NONE|ERROR|SECURITY|OBJECT|PROCESS|ALL}

Specified the level of ObjectBroker agent events to be logged. The default level is NONE.

See ObjectBroker Designing and Building Applications for more information about logging agent events.

Update to ObjectBroker Administration Guide

The section entitled Event Logging under New Features in Version 4.0 in these release notes should be included in Section 9.1 of ObjectBroker Administration Guide.

Contacting BEA Technical Support

If you have any questions about BEA ObjectBroker, contact BEA Technical Support through our web site at www.beasys.com. When contacting technical support, be prepared to provide the following information:



[Top] [Prev]