HP BridgeWorks Version 3.0A introduces new and innovative features that enable and support enterprise-level distributed applications, and includes several important bug fixes.
This file contains information that will help you install and use this release of HP BridgeWorks.
HP BridgeWorks Version 3.0A
Intel Inside, and Itanium are trademarks of Intel Corporation in the
Windows, Windows XP, Visual Basic, Visual C++, and Win32 are trademarks of
Microsoft Corporation in the
all Java-based marks are trademarks or registered trademarks of Sun
Microsystems, Inc. in the
BEA WebLogic Server is a trademark of BEA Systems Inc.
All other product names mentioned herein may be trademarks of their respective companies.
Confidential computer software. Valid license from HP and/or its subsidiaries required for possession, use, or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor’s standard commercial license.
Neither HP nor any of its subsidiaries shall be liable for technical or editorial errors or omissions contained herein. The information in this document is provided “as is” without warranty of any kind and is subject to change without notice. The warranties for HP products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty.
These Release Notes contain BridgeWorks Version 3.0A release information for both OpenVMS and Windows.
For the OpenVMS installation instructions - including instructions for running the BridgeWorks Manager and process quota recommendations - refer to BWX030A_INSTALLATION_GUIDE.TXT|PDF|PS, available from the web download page.
Complete product documentation is available from the online Help installed with the Windows BridgeWorks kit.
- Preparation of 3GL Routines and ACMS Tasks
- Transport Options
- Scalability and Your Application
- Session Options and Your Application
- Making Configuration Changes
- Working with Rdb and Oracle9i Databases
- Debugging Your Server Routines
- Using the Bwx Classes
- Compiling and Running Java Clients
Performance Disclaimer – Please Read
HP makes no performance claims for BridgeWorks-generated applications. Performance metrics for HP BridgeWorks are largely dependent on the underlying cross-platform technologies used by BridgeWorks - including RPC and ICC transports; COM, Java, and EJB components; J2EE application servers; and DECdtm and XA protocols for transactions. Given the complexities of distributed computing and the huge diversity of potential production environments, including such factors as data throughput and network speed, it is not possible to make any baseline assertions about the performance you should expect.
For these reasons, it is strongly recommended that you obtain the
advice of a qualified services consultant before embarking on any major or
The BridgeWorks UI now helps coordinate team members using a shared BridgeWorks connection database. As developers work with a connection definition within BridgeWorks, they are registered within the database itself. If other team members attempt to work with the same connection definition (in that shared database), they are notified that it is being modified, as well as who is modifying it. BridgeWorks then allows the developer to open the connection definition in read-only mode.
New Installation Procedures
The OpenVMS kit has been changed to use PCSI, while the Windows kit has been changed to use the latest Install Shield. The new installation procedures provide the user with a more robust set of options, including an enhanced uninstall.
Multi and Mixed Character Set Support
Java supports many different characters sets. BridgeWorks now supports the passing of strings based on these many character sets. This support also includes the mixing of character sets within a single string.
Support for ODS-5 Disks
BridgeWorks has improved its support for the ODS-5 file system. Previously, BridgeWorks had problems seeing some directories and files with mixed case characters in its name.
Corrected Problems in Version 3.0A
In some rare cases, the BridgeWorks Manager would ACCVIO when it could see, but not open, a .bwx configuration file. Although the root cause of the problem is environmental (such as bad file protections on the .bwx files), this has been fixed so that the Manager no longer crashes.
Various FTP/browsing errors have been resolved during the ANA import procedure. These errors include files not being displayed in the file browse list, and a possible BridgeWorks crash in some cases when a specified directory is invalid.
Support for Cross-Platform Transactions
BridgeWorks now enables two-phase commit transactions that originate from a Java client and are coordinated by a J2EE transaction manager, such as BEA WebLogic Server. BridgeWorks supplies all the infrastructure components for OpenVMS integration of DECdtm-based 3GL or ACMS transactional applications and other resource managers - including transaction-aware databases, such as Rdb and Oracle9i.
New Transport Options
An enhanced transport-layer architecture optimizes transport by providing ICC (Intra-cluster Communications), RPC, or no-transport options. ICC provides clustered OpenVMS systems with the fastest transport available. RPC transport no longer requires the DCE RPC developer license.
More-Efficient Runtime Code
BridgeWorks now uses an improved component architecture that uses optimized runtime libraries and reduces the amount of user-specific generated code. This reduces build times, simplifies deployment, and improves maintainability.
New Server Management Services
The BridgeWorks Manager provides new directory services and server management for the middle component. This includes load-balancing capabilities, such as keeping track of available servers and maintaining pools of free servers (determined by configurable parameters for minimum, maximum, and idle servers) to speed response times. These extra capabilities allow some connections to avoid the high cost of process creation at server startup.
BridgeWorks now supports OpenVMS SYSUAF-based client authentication. This means that server processes will start up in the BridgeWorks default (SYSTEM or another specified) account, and clients will be able to use a log-in and log-out method to access other OpenVMS accounts required to use the wrapped application.
An enhanced structures scheme gives you the option of using Java-based get and set access methods for individual fields. This implementation is consistent with the getter/setter bean that is recognized by Java IDEs, such as NetBeans. By using enhanced structures, you can simplify client coding and optimize call-time performance by doing most data marshaling at the time the values are being read from and written to the client.
an Abstract Class
The BwxStructure class is now an abstract class, rather than an interface wrapper. Generated structure classes now inherit from it, which means it is no longer, and can no longer, be referenced from a Java client. This greatly simplifies the use of structures from within Java clients.
New BwxDecimal Class
A new BwxDecimal class is available to Java clients. Previously, OpenVMS decimal string datatypes were handled as Strings. The BwxDecimal class makes available the full range of Java’s BigDecimal class operations: basic arithmetic, scale manipulation, comparison, hashing, and format conversion. (See Section 5: Upgrading)
In V3.0 and higher, BridgeWorks adds enhanced exception handling. There is now a root exception class, BwxException, and two derived exception classes, BwxServerException and BwxConnectException. BwxServerException will be thrown for all server side exceptions, while BwxConnectException will be thrown for all connection related errors/exceptions. All three exceptions thrown by BridgeWorks also make available the internal status, the original OS status, the severity level, and the facility code of the originator of the error. This allows a client to better differentiate and classify the exceptions, and more easily make decisions based on them.
Version 3.0A of BridgeWorks has been designed to coexist with previous versions of BridgeWorks. This is true for the development and the runtime environments. However, the new scheme is not backward-compatible:
Version 3.0 and higher installs an enhanced BridgeWorks Manager. This replaces the existing Version 2.0/2.1 Manager - using the same process name, BWX$MANAGER - and renaming the 2.1/2.1A Manager to BWX$MGR_V21. If configured to start automatically, the BWX$MGR_V21 process will continue to be available for 2.1/2.1A connections.
The BridgeWorks Windows kit installs in C:\Program Files\HP BridgeWorks by default (whereas previous versions installed in C:\Program Files\Compaq BridgeWorks by default). The Version 3.0 and higher registry section is also new. The Version 3.0 and higher connection database and data source are also named differently. Note that the Version 3.0 and higher database is named BWXData_2_03.mdb (and the Version 2.1/2.1A database was named BWXData_2_02.mdb).
Connection database upgrade
The BridgeWorks installation process prompts you to import existing connections (in a 2.1 or 2.1A database) into the new database. This is your ONLY opportunity to perform the automatic import unless you rerun the installation. Your existing connection database is unaffected. When you generate the code for an existing connection using Version 3.0 and higher, the new code that will be generated will be entirely in the new component architecture. It is not backward-compatible.
Extended Method Code
Extended method code (customized middle component code) is no longer supported by BridgeWorks. Any such code in your existing connections will NOT be saved or regenerated. To find such code, in \middle directories generated by previous versions of BridgeWorks, do the following:
1. In a text editor, open COM files named <Interface>_view.cpp or JavaBeans files named C<Interface>Bean.java or EJB files named <Interface>EJB.java. (You should find one for each interface defined in your connection).
2. Look for the comment // To do: add your implementation inside the *_PRESERVE tags.
Required changes to existing client code have been minimized as much as possible. In fact, COM clients should not require any revision. Java clients previously compiled in the 2.1/2.1A environment will continue to compile and run in the BridgeWorks 2.1/2.1A environment.
However, when an existing Java client is recompiled in the Version 3.0 and higher environment, it will always require a change to its import statements.
New Package Statement
To use the BridgeWorks-supplied type classes, your client package statements must be changed from:
Example of updated statements:
See Help: Using the Bwx Classes
Further changes are required if your existing clients use the BwxStructure class, or the BwxString class for decimal string types.
New BwxStructure Class
The BwxStructure class now offers two modes of use: enhanced and standard. If you are writing new Java clients, you are recommended to use the new Enhanced mode. If you have existing clients, you can continue using the previous structure wrapping scheme by making the following change:
If you have existing clients, remove explicitly declared BwxStructure parameters. The structure methods exposed by the middle component now inherit all the properties of the BwxStructure class.
For example, in 2.1/2.1A, initializing and declaring structures was a two-step process:
structarraystruct mySt = new
. . . . . .
BwxStructure p1 = new BwxStructure(mySt);
In Version 3.0 and higher, only the first step is required.
BridgeWorks Version 3.0 and higher rearranges and adds exception classes in order to better differentiate them for the client. However, depending on the current exception handling used in the client, this may require changes to the client.
If the client code generically catches the Exception class, then no changes are required. However, if the client code currently catches the BwxServerException class explicitly, then this will minimally need to be changed to BwxException. Optionally, you can add handlers to catch BwxException, BwxServerException, and BwxConnectException independantly. This allows more flexibility in handling these different exception types.
All structures now require client error-handling code. This includes structure code that previously did not throw exceptions in your clients.
The structure constructor ( new ) should always be in a try/catch block or in a routine that can throw an exception to its calling routine.
See Help: Using the BwxStructure Class
New BwxDecimal Class
Previously, when building a Java client for a BridgeWorks connection, OpenVMS decimal string datatypes were handled as Strings. This limited the range of mathematical operations that you could perform on them. The BwxDecimal class makes available the full range of Java’s BigDecimal class operations.
Change references to BwxString classes to BwxDecimal classes. The BwxDecimal constructor can take BwxString or a regular String as an argument.
Note: Clients can only pass in formats recognizable by the Java BigDecimal class. For example, “+100.0”, but not “100.0+”.
See Help: Using the BwxDecimal Class
New Component Build Commands
Build scripts have been streamlined and simplified, and now employ a simpler naming scheme:
Server Component Build Script
Middle Component Build Scripts
where <type> can be jb for JavaBeans, ejb for Enterprise JavaBeans, and com for COM.
BridgeWorks Middle Component and Client Support Files
In the case of JavaBeans and EJB connections, many support files previously generated per connection are now included in a static file, BwxUtil.jar. (This reduces build times, simplifies deployment, and improves maintainability.) On OpenVMS Alpha systems, this file is installed in SYS$LIBRARY. On Windows, the default installation location for this file is in \Program Files\HP BridgeWorks\lib. Middle component build commands use this library, and your client compilation and run commands must include a reference to it also.
See Help: Compiling and Running Java Clients
ICC Startup File Should Be Enabled
When using ICC transport, it is highly recommended that you invoke the ICC$STARTUP file by adding ICC$STARTUP in your SYSTARTUP_VMS.COM file.
Manager Requires LOG_IO Privilege
The server component uses an event mechanism to notify the BridgeWorks Manager when it becomes free for new connections. The event mechanism makes use of a mailbox for communicating with the Manager. OpenVMS requires the LOG_IO privilege for all mailbox operations. The Manager and server now make extensive use of mailboxes to propagate information about reservations, so the LOG_IO privilege is mandatory for both server and Manager processes.
Making configuration changes
All server processes that the BridgeWorks Manager starts are detached processes running out of the account specified in the server's configuration file (<CNXNAME>.BWX). Many aspects of the server configuration for a particular connection are controlled by the Manager according to your customizable configuration settings. For example, you can effect per connection stack-size adjustments using the configuration file. The default is for DecThreads to use the system’s default stack size. However, higher values will be required for some connections, including ones where Oracle9i participates in XA transactions.
See Help: Making Configuration Changes
Although BridgeWorks Version 3.0 and higher works with BEA WebLogic Version 6.1 and higher, the transaction support within BridgeWorks does not work properly with WebLogic Version 7.0 and higher. In particular, when two EJBs are called as part of the same transaction, and both are part of the same Domain, the transaction fails when the second EJB is called. This is an identified problem in WebLogic. The HP BridgeWorks engineering team is currently working with the WebLogic team to resolve this issue.
Workaround: Use WebLogic Version 6.1. If you are using WebLogic Version 7.0 or higher, specify a unique domain name for each EJB type. This forces WebLogic to use two Phase Commit Transactions when multiple EJBs are used in the same transaction.
Transactions Fail if WebLogic’s JTA Health Monitor Times Out
Recent versions of WebLogic may mark a Resource Manager (RM), including the BridgeWorks RM, as bad if a transaction takes too long. This is caused by the internal timeout value of WebLogic's JTA health monitor. (By default, the JTA health monitor timeout value is set to two minutes within WebLogic, which is a different value than the normal transaction timeout.) Once this timeout occurs, all further attempted transactions may fail. The only way to clear this condition is to restart WebLogic.
Workaround: Override the JTA health monitor timeout value by adding the following lines to WebLogic's config.xml file, within the section for the domain that you are using:
Handling Cluster Transition Delays
When running a BridgeWorks-generated EJB within an OpenVMS Cluster, the delay caused by a cluster transition may sometimes cause the server process supporting the EJB to crash. If this happens, the Java client that initiated the connection will get a Java exception returned for that EJB session.
Workaround: You can design your client to recover from the failed connection exception and reestablish a new connection. Since the EJB remains active, the BridgeWorks Manager will start up a new user server process to do a retry of the failed session or to service a subsequent EJB sessions.
A number of limitations and other errors related to COM connections are under investigation and have not been resolved in this release.
COM on OpenVMS Middle Component
Account and security issues related to running unauthenticated COM middle components on OpenVMS from a Windows client are under investigation. For this release, you are recommended to build and run COM middle components on Windows systems.
In BridgeWorks V3.0 and higher, all server processes generate a log file (in addition to the BridgeWorks Manager log file). By default, the Manager removes these server logs periodically. To keep the logs, set the logging level to 2 or higher:
$ DEFINE /SYSTEM BWX$LOGLEVEL 2
Note: This logging level is more verbose and log files can become large rapidly (depending on the number of server being started).
Code to Wrapper C++ Needs Modifying
In order to wrapper C++ applications, C extern statements must be removed from the generated .c and .h files. (These statements normally prevent name mangling of 3GL routine signatures.)
Option Is Not Applicable to Single-Threaded Applications
Do not attempt to run a nonthreadsafe application (such as a COBOL-based application) in a no-transport environment. In the BridgeWorks no-transport option, the wrapped application image is loaded directly into the same process as the JVM. If the JVM is part of a larger environment, like BEA WebLogic or Tomcat, this will likely result in a handled exception when the COBOL application is accessed.
Software Support Contract
You may submit your technical suggestions and feedback to the BridgeWorks engineering team by sending mail to:
Please do not use email for time-critical technical support questions, as response from the BridgeWorks engineering team is on a time-available basis only.
If you would like to provide comments or general feedback about the e-Business offerings on OpenVMS, please send mail to:
BridgeWorks Home Page