BEA ObjectBroker Release Notes
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.
The following platforms are supported for this release:
The following platforms or platform versions have been retired as of this release:
ObjectBroker Version 4.1 is year-2000-ready. In addition, platform support has been upgraded to include year-2000-ready operating system versions.
This section lists and describes problems that were fixed in Version 4.1, Version 4.0, and Version 3.0 of ObjectBroker.
The following problems are fixed in Version 4.1 of ObjectBroker:
In this release, when such additional server selection requests are detected, the clients wait until the server completes its registration with the agent, or until the server startup times out.
In this release, for any given invocation, when a client gets anything other than a legitimate "server not found" return from a particular node during the first phase, it does not go back to that node in the second phase to request a server startup.
In this release, when such contention is detected, the client waits briefly and then tries the server selection operation again; after a set number of retries, the invocation fails.
The following problems are fixed in Version 4.0 of ObjectBroker and are included in the Version 4.1 release:
In this release, the default behavior of such servers is not to display a console window. At the discretion of the server developer, a server can explicitly display such a window by performing the appropriate calls. The following code fragment demonstrates how to display a console window:
#define BUFFER_SIZE 1024 GetConsoleTitle ( console_title, BUFFER_SIZE );
The following problems, which were fixed in Version 3.0 of ObjectBroker, are included in the ObjectBroker Version 4.1 release:
This problem has been fixed.
However, with this added flexibility comes added responsibility. Specifically, 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):
The default path of Therefore, when you establish a Windows NT account that will be used to autostart ObjectBroker servers, you must explicitly supply a path to an existing, user-writable directory in the user's profile, or verify that If your machine has a Windows NT domain, the user profile setting is controlled by the domain and you must change that user profile for the change to take affect.
This problem has been fixed.
To correct this problem, the keyword "class" was added to each "friend" declaration to ensure that the object being declared as a friend is a known type.
If you loaded an IDL file that had references to an interface, typedef, or exception already loaded into the repository, an OBB_CMD_NOTYETIMPL error occurred. For example, the following IDL would fail to load:
where This problem has been fixed.
This problem has been fixed.
You specified an interface on a generate command and this interface had references to an IDL type in a module different from that of the interface. In addition, this IDL type has references to other IDL types.
For example, given the following IDL loaded into an ObjectBroker repository, if you generate an interface for THREE::INTF, compilation errors would occur, because the definition for ONE_TypeLong1 was not generated in the header file:
This problem has been fixed.
This problem has been corrected; the proper destructor will now be called.
The implementation to be unregistered had been merged from another system and was, therefore, registered only in the advertisement partition of the ObjectBroker registry, and not in implementation partition.
When the This problem has been fixed.
No new features were added to ObjectBroker V4.1.
The features listed in the following sections were removed from ObjectBroker V4.1.
In ObjectBroker Version 4.1, support has been retired for DCE Security.
In ObjectBroker Version 4.1, support has been retired for asynchronous communication using BEA MessageQ.
This section describes new functionality available in Version 4.0 of ObjectBroker. New information is available about the following ObjectBroker functionality:
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: 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: For a complete description of the obbmset and SET AGENT commands and their options, refer to ObjectBroker Commands and Utilities.
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.
Use the NONE
ERROR
SECURITY
OBJECT
PROCESS
ALL
The default is 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 This command changes the permanent configuration but does not affect a currently running ObjectBroker agent.
Use the arguments to the See Table 1-1 for a list of all the events logged for each option.
NONE
NONE
ERROR
ERROR
SECURITY
SECURITY
OBJECT
OBJECT
PROCESS
PROCESS
ALL
ALL
The default is NONE.
The This command changes the permanent configuration but does not affect a currently 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:
UNIX, Windows NT, and Windows 95
OpenVMS
UNIX, Windows NT, and Windows 95
OpenVMS
UNIX, Windows NT, and Windows 95
OpenVMS
See the ObjectBroker Commands and Utilities manual for more information about these commands.
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.
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
The following enhancements have been made to the generated server application code:
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 The syntax is as follows: One of the following messages is returned: 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.
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.
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 ObjectBroker provides the following two new options that you can use with the commands that affect the above actions:
The commands with which you can use these two new options are as follows:
See the ObjectBroker Commands and Utilities manual for details on using these commands.
Each of the commands that support the new options accept as input the output generated with the For example, to change the security settings for multiple implementations on a UNIX system:
The following sections describe the input files that you can use with all the affected commands.
Each entry in the input file has the following format:
Note the following guidelines:
Each entry in the input file has the following format:
Note the following guidelines:
ImplName can be an implementation name or an implementation ID. An Implementation ID that duplicates the information in the implementation name is ignored.
The implementation must be registered. If it is not registered, the implementation is treated as a method (or as an admin method).
Lists of implementations are accepted, as long as they are on a new line and the last implementation in the list is followed by one or more usernames.
The implementation name can contain blank spaces, as long as the blank spaces are surrounded by a pair of double quotation marks ( The implementation must be followed by one or more usernames.
You can specify multiple users on the same line by separating each username with a space or a tab.
The username must be preceded by the
The method or the admin method, which is optional, follows the username. If the method or the admin method are different for the user of an implementation, the user is treated as a separate input with the same implementation.
When the method name is
Each entry in the input file has the following format:
Note the following guidelines:
a.) If one value is provided, that value must specify Model.
b.) If two values are provided, the first value specifies either c.) If three values are provided, the first value specifies
With ObjectBroker Version 3.0 and earlier, the 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 UNIX, Windows NT, and Windows 95
Example:
OpenVMS
Example:
The following is an example of the output produced with the new 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:
For obbcomp and obbgen commands on UNIX, Windows NT, and Windows 95, and the corresponding 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 The syntax for the enhanced compile and generate commands is as follows:
UNIX, Windows NT, and Windows 95
Example:
OpenVMS
Example:
In the examples above, the generated client stubs go into myapp.cxx, and the corresponding include file is named ObjectBroker Version 4.1 includes two additional binding policies: STATIC_BOUND, and AUTOMATIC_WITH_REBIND.
ObjectBroker Version 4.1 provides a new binding policy, 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, 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 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 The syntax of the enable/disable server selection command switch is as follows:
UNIX, Windows NT, and Windows 95
OpenVMS
In the syntax above, the argument When server selection and autostart are disabled on a given node, the following line of text is displayed when you enter the 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.
The features listed in the following sections were removed from ObjectBroker V4.0.
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.
In ObjectBroker Version 4.0, support has been retired for the Visual Basic bindings found in earlier versions.
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:
Additional caching
Handling of a large number of objects
Optimization for large sequences of base types
Improved server selection
Reduced hashing
The system starts the Windows Help viewer, and displays information about the command.
This section lists and describes problems and restrictions that currently exist.
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.
The problems listed in this section may occur when you use ObjectBroker on Windows 95 systems.
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:
When calling OBBVAR32 from AUTOEXEC.BAT, you must specify short file names. This is a limitation of the Windows 95 operating system.
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 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:
The /e switch creates a default environment of the specified size.
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.
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.
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:
The problems listed in this section may occur when you use ObjectBroker on Windows NT systems.
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.
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.
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.
For any account on Windows NT, the node name and user name must not be the same.
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):
Note:
The default path of The problems listed in this section may occur when you use ObjectBroker on UNIX platforms.
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.
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 The following example demonstrates how to grant authorization to local user snerd for the implementation CheckAcctImpl:
For all non-UNIX platforms, the username must be used when granting authorizations.
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:
Optionally on Digital UNIX systems, you can answer YES to the following question during the installation of ObjectBroker Version 4.1:
where the asterisk (*) represents either DEV (for the development kit) or RT (for the run-time kit), and n represents the kit version number (250, 251, 252, 253, 260, 261, 270, or 300).
You may also receive the following messages while configuring ObjectBroker manpages (OBBMANDEV270):
These types of errors occur because the base manpages are deleted but the links remain. These links come from products other than ObjectBroker. You can remove these links when logged in as superuser.
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 On Solaris systems, ObjectBroker also passes the platform-specific additional arguments: The problems listed in this section may occur when you use ObjectBroker on Solaris systems.
To resolve this problem, remove the ObjectBroker man directory from your MANPATH environment variable.
Enter the following commands to create two symbolic links in the /bin directory:
Perform the following steps:
The problems listed in this section may occur when using ObjectBroker on HP-UX 11.00 platforms.
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:
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.
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:
The following files will be extracted:
After completing these steps, the obbgui command will work properly on your HP-UX 11.00 system.
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.
To fix this problem, upgrade to the supported version of the C++ HP11 compiler, which is HP aCC Version A.03.10.
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 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.
This sections lists problems related to C and C++ that currently exist.
A C++ server method cannot delete the There is no workaround to allow 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:
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.
If you are using C++ server bindings, refer to the example in the ObjectBroker Version 3.0 Documentation Supplement.
The following are known problems with C++ and C code generation:
The following are known problems exclusive to C++ code generation:
The indentation for generated implementation classes is incorrect when the implementation is contained within a module.
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.
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:
obroker\bin\obbuiint.dll
ObjectBroker\bin\obbuiint.dll
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.
The following sections describe known problems with object references in ObjectBroker Versions 2.6 and later.
If you receive an 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 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:
Here is the same implementation, scoped by a module:
After implementing one of these solutions, regenerate your client application, server application, and registration files.
In ObjectBroker Version 2.6, the capacity for repository retrieval was raised to approximately 4000 objects for the following cases:
For example, within a module, this includes the total number of typedefs, structs, interfaces, and so forth. Within an interface, this includes the total number of typedefs, operations, and so forth.
The following are possible reasons for a script server setup failure. Information about workarounds is included.
Ensure that OBB_SCRATCH is defined by creating a file in the invoking user's home directory and by naming the file .obb_login.
On UNIX systems, specify the following:
On OpenVMS systems, specify the following:
There are two ways to work around this:
On UNIX systems, specify the following:
On OpenVMS systems, specify the following:
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:
On OpenVMS platforms, the syntax is:
This section includes updates to the ObjectBroker technical documentation information for this release.
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.
The following sections are revised information on event logging to be included in ObjectBroker Commands and Utilities.
Specified the level of ObjectBroker agent events to be logged. The levels are:
The default is n (NONE).
See ObjectBroker Designing and Building Applications for more information about logging agent events.
/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.
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.
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:
Date: May 1998 Overview
Platform Coverage
Year 2000 Readiness
Problems Fixed
ObjectBroker Version 4.1
ObjectBroker Version 4.0
HWND console_handle;
char console_title[BUFFER_SIZE];
console_handle = FindWindow ( NULL, console_title );
ShowWindow (console_handle, SW_SHOWNORMAL );
ObjectBroker Version 3.0
\Program Files\ObjectBroker\Include\obbrepos.h
\Program Files\ObjectBroker\Include\namesvc.h<system-drive>:\users\default, or, if that does not exist,
<system-drive>:\users, or, if that does not exist,
<system-drive>:\ <system-drive>:\
is not supported for ObjectBroker autostart
.
<system-drive>:\users
or <system-drive>:\users\default
exists and that it is writable by the user.
module TEST {
interface EXAMPLE {
void OP1 (in MyInterface Intf);
};
}; MyInterface
is an interface that has previously been loaded in the repository. Similar problems would occur for references to typedefs, and exceptions previously loaded in the repository.
module ONE {
typedef long TypeLong1;
};
module TWO {
typedef ONE::TypeLong1 TypeLong2;
}
module THREE {
interface INTF {
void op1 (in TWO::TypeLong2 a);
}obbunreg -I <impl-name>
command would fail under the following condition:
obbunreg -I <impl-name>
command failed, it produced the following error message:
OBB_REG_KEYNOTFND (e), Could not find key '<impl-name>'
New Features in ObjectBroker V4.1
Features Removed from ObjectBroker V4.1
Removed DCE Security Support
Removed Support for Asynchronous Communication Using MessageQ
New Features in ObjectBroker V4.0
Tracing
Event Logging
Obbmdcfg Command Options
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
-ee
-es
-eo
-ep
-ea
-en
(NONE).
obbmdcfg
command. See ObjectBroker Designing and Building Applications for more information about logging agent events.
MODIFY CONFIGURATION Command Options
/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
Argument
Error Logging Level
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.
Modifying the Event Logging Level on a Running ObjectBroker Agent
>obbshcfg
$APPL/BRO SHOW CONFIG
>obbshcfg -e level "
config-name
"
$APPL/BRO MOD CONFIG /EVENT_LOGGING=
level "config-name"
>obbmset -A -R
$APPL/BRO SET AGENT /REOPEN LOG
Event Logging Levels
Logging Level
Event
NONE
ERROR
SECURITY
OBJECT
PROCESS
ALL
Changes in Generated Server Application Code
Stopping Running Implementations
STOP SERVER_PROCESS
commands.
Smaller Security Registry File
Setting Proxies, Authorization, and Security on Multiple Entities
my_proxy_file.dat
, you can now enter the following command:
# obbaddpxy -f
my_proxy_file.dat
New Command Options
Commands with Which You Can Use These New Options
Generating the Input Files
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.
# obbshsec >
my-security-file
obbstsec
command.
File for Adding or Removing Multiple Proxies
local_username remote_username remote_hostname
#
) as the first character.
Local User Remote User Remote Host
------------
------------
------------
File for Granting/Revoking Authorization of Multiple Implementations
ImplName
U[sername]: user1 [user2] [usern]
[method-name]
#
) as the first character.
"
).
U[sername]:
keyword.
Stop
, GetInfo
, or Select
, the method is assumed to be an admin method; the current granting/revoking function limits these three method names for the admin method. When no method name is specified, it is assumed to be all methods, which is represented as * as specified with the show authorization command.
show authorization
command, are also interpreted as comments and do not have to be removed from the output file:
Implementation Methods
------------
--------------
------------------------
File for Setting Security on Multiple Implementations
ImplName
Authentication SecurityContextDeletion SecurityPrincipal Model
#
) as the first character in the line are allowed.
Authentication
or SecurityPrincipal
, and the second value specifies Model.
Authentication
, the second value specifies either SecurityContextDeletion
or SecurityPrincipal
, and the third value specifies Model
.
Additional Output for the Show Implementation Command
obbmsho
(or SHOW IMPLEMENTATION
on OpenVMS) command shows only the registered implementation name and its UUID.
-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
-v
# obbmsho -R -v
/VERBOSE
$ APPLIC/BROKER SHOW IMPLEMENTATION /VERBOSE
Example Output
-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
Enhanced Compile and Generate Commands
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.
-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.
-B
# obbcomp -l cxx -c myapp.cxx -B appdef myapp.idl
/BASENAME=name
$ APPLIC/BROKER
OBB>COMPILE myapp.idl/LANGUAGE=CXX/STUBS=CLIENT=myapp.cxx-/ BASENAME=appdef
appdef.hxx
.
New Binding Policies
STATIC_BOUND
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
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
OBB_LOCAL
, OBB_DEFAULT_NODES
, or OBB_ADVERTISEMENTS
.
Enabling/Disabling Server Application Selection and Autostart
obbmset
(APPLICATION/BROKER SET AGENT
on OpenVMS systems) command.
obbmset -A -s{0|1}
APPLICATION /BROKER SET AGENT /[NO]SERVER_SELECT
-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.
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
Features Removed from ObjectBroker V4.0
Removed DDE Listener and OLE Network Portal Support
Removed Visual Basic Bindings
New Features in ObjectBroker V3.0
obbmsho -?
Known Problems in ObjectBroker V4.1
Upgrading from Previous Versions
Windows 95
QuickStart and ObjectBroker Examples
\Progra~1\Object~1\Bin\obbvar32 C:\Progra~1\Object~1 C:\Progra~1\DevStudio\VC
Activation Context
QuickStart and Environment Space
shell=c:\command.com c:\ /e:1024 /p
QuickStart File Name Constraints
Passwords and LAN Manager Security Domain
CORBAservices Naming Service May Fail to Start
drive:\progra~1\ObjectBroker\bin
Windows NT
Development Kit
Logging on for Server Application Startup
Passwords and LAN Manager Security Domain
Node Name and User Name on Windows NT
Windows NT Accounts Require a Default Path to Autostart Servers
<system-drive>:\users\default, or, if that does not exist,
<system-drive>:\users, or, if that does not exist,
<system-drive>:\<system-drive>:\
is not supported for ObjectBroker autostart.
UNIX
Installation on UNIX Appears to Hang
Granting Authorization on UNIX Platforms
id[username]
.
#id snerd
uid=340(snerd) gid=15(users) groups=0(system)
#obbgrath -i CheckAcctImpl 340 Manpages
CORBA_Container_describe_contents.3: No such file or directory
CORBA_InterfaceDef__get_base_interface.3:No such file or directory
CORBA_InterfaceDef_describe_interface.3: No such file or directory
CosNaming_BindingIterator_destroy.3: No such file or directory
CosNaming_BindingIterator_next_one.3: No such file or directoryDo you want the OBBBASE*n files removed [yes]?
dsx_trace_object.3xds: No such file or directory
getgrent.3sec: No such file or directory
getpwent.3sec: No such file or directory
om_copy.3xds: No such file or directory
om_copy_value.3xds: No such file or directory
om_create.3xds: No such file or directory
om_get3xom: No such file or directory Problems with Signals on UNIX
int
).
handler(int, siginfo_t *, ucontext_t *)
Solaris
/opt/DECOBBDEV/man/windex: No such file or directory
Workaround 1
# cd /bin
# ln -s /opt/DECOBBDEV/bin/obbregs obbregs
# ln -s /opt/DECOBBDEV/bin/obbnamesrv obbnamesrv Workaround 2
# obbexreg -I implementations.dat
Change
To
/bin/obbregs
/opt/DECOBBDEV/bin/obbregs
/bin/obbnamesrv
/opt/DECOBBDEV/bin/obbnamesrv
HP-UX 11.00
Module Statement Required in IDL
Error 741: Ill-formed conversion...
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
tar xvf /cdrom/objbrokr/hpux/obb_d_hpx10_x4103.kit \
DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uidDECOBBDEV/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.uidcp DECOBBDEV/DECOBBDEV/opt/DECOBBDEV/lib/X11/uid/* \
/usr/lib/X11/uid Supported Version of C++ Compiler Required
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 * (); OpenVMS
DECnet_Status
UCX_Is_Running
UCX_Is_Not_Running
C and C++
C++ Server Method Cannot Delete "this" Pointer
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);
delete (this)
to work within a method; however, the server can accomplish similar behavior by doing the following:
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
Example for C++ Server-Side Bindings
C++ and C Code Generation Problems
C++ Code Regeneration Required
BEA ObjectBroker Desktop Connection V1.0
obroker\bin\ouiapp.exe
obroker\bin\shellext.dll
ObjectBroker\bin\ouiapp.exe
ObjectBroker\bin\shellext.dll
Object References
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. Implementation Name Conflicts
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.
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
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" )
;
};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" )
;
};
}; Repository Retrieval Capacity
CORBA_Container_describe_contents
CORBA_Container_contents
CORBA_Container_lookup_name Script Server Setup
# set OBB_SCRATCH=/tmp/
# export OBB_SCRATCH$ DEFINE OBB$SCRATCH directory-specification
# set OBB_USER_CONTEXT=user-context
# export OBB_USER_CONTEXT$ DEFINE OBB_USER_CONTEXT your-directory-name
Modify Configuration Option for the Object Reference Hash Table
obbmdcfg -h hash_table_size
MODIFY CONFIGURATION /HASH_TABLE=size
Documentation Updates
Update to ObjectBroker Designing and Building Applications
Update to ObjectBroker Commands and Utilities
Obbmdcfg [Section 2, -e Option]
-e{n|e|s|o|p|a}
n
e
s
o
p
a
MODIFY CONFIGURATION [Section 3, /EVENT LOGGING Qualifier]
Update to ObjectBroker Administration Guide
Contacting BEA Technical Support
[Top] [Prev]