Solaris 64-bit on SPARC
Windows on x86 and x64 (64-bit Xeon and Opteron)
RedHat Enterprise Linux 5.0 on x86, x64 (64-bit Xeon and Opteron)
SuSE Enterprise Linux 10.0 on x86, x64 (64-bit Xeon and Opteron)
HP-UX 64-bit on PA-RISC (classical and standard C++)
HP-UX 64-bit on Itanium (classical and standard C++)
AIX 64-bit on PPC (classical and standard C++)
This release note contains information specific to the Borland VisiBroker 8.0 release. This is a major release of the VisiBroker product suite that includes a value-added feature set and also addresses most of the customer-reported problems.
This release note contains the following sections:
Instead of having a single, monolithic ORB library as in
previous versions, VisiBroker for C++ 8.0 has a kernel library, the
ORB Core, and six component libraries. The ORB Core needs to be
linked to any VBC application, while the component libraries can be
selected on demand by linking or using property.
In addition,
to reduce the migration effort, VisiBroker for C++ 8.0 also provide
a library having the same name (The library suffix may be different
on some platforms) as previous single ORB library. Please see
Installation changes for more
information on the library names.
VisiBroker for C++ now conforms to CORBA 3.0 specification. All changes between the earlier 2.6 and 3.0 are implemented. However, please note that CORBA Component Model (CCM) and GIOP 1.3 related features are NOT implemented.
VisiBroker is now supported on IP v6 infrastructure on Windows. On other platforms, the support already exists. A new property, vbroker.se.xxx.scm.yyy.listener.preferIPv4Stack is introduced. This is a C++ only property. The default value is true. The property will be suppressed if vbroker.se.xxx.host is set to be IP address.
VisiBroker for Java now conforms to CORBA 3.0 specification. All changes between the earlier 2.6 and 3.0 are implemented. However, please note that CORBA Component Model (CCM) and GIOP 1.3 related features are NOT implemented.
Compilers java2idl and java2iiop in VisiBroker 8.0 can now parse Java 1.5 language features. This also includes support for marshalling Java Typesafe Enum in the ORB.
VisiBroker for Java now supports true message fragmentation to improve performance and memory utilization in the marshalling engine when request/reply payload is high. In addition to that, if message fragmentation is being used and multiple client threads are writing on the same connection then requests are no longer serialized. Message fragmentation is off by default; it can be turned on using the property vbroker.orb.fragmentSize
VisiBroker is now supported on IP v6 infrastructure on Windows. On other platforms, the support already exists.
VisiTransact completes the transaction successfully if no
errors are found during the two-phase commit protocol. If any errors
are encountered, however, it puts the transaction in the retry pool
so that the Transaction Service can later attempt to run the
two-phase commit protocol to complete the transaction. The
transaction is retried based on the retry time. By default, on
failure, transaction is retried for ever unless a stop completion
command is issued from VB Console to stop the retry attempts.
In
VB 8.0 a property vbroker.ots.completionRetryAttempts is
defined to configure the retry attempts. This poperty takes an
integer value "n" and behaves the following way:
n <=
0 : Default behaviour where the txn is forever put in RetryQ
computing the retrytime.
n > 0 : Transaction is put in retryQ
and during nth attempt txn is run to completion and no retry
attempts would be made on it again.
VisiBroker for Java now supports its clients to become OTS clients to become transaction originators and servers to become transactional servers. In earlier versions, for Java clients to interact with OTS, Borland AppServer components were required. This dependency has now been removed. Please note that session management functionality needed for recoverable servers talking to backend resources is not provided as this feature is almost infringing on J2EE realm.
OTS specification compliance is 1.4
To enable this feature set vbroker.orb.enableTransactions=true.
VisiSecure 8.0 for Java, now, ships a GUI based JAAS callback
handler, which works with all shipped login modules and Certificate
based credential acquisition. The callback handler is based on Swing
and works on all supported JDK and platforms uniformly. In order to
use the callback handler, please set callback handler property to
the fully qualified class name of the handler, as
follows.
vbroker.security.authentication.callbackHandler=com.borland.security.provider.authn.DialogCallbackHandler
VisiSecure 8.0 for C++ , now, enables applications to specify
the CRL of the trusted certificate that is being added through
VBSSLContext::addTrustedCertificate API call (see header file
vbssp.h)
class _VBSECEXPORT VBSSLContext {
…
virtual
void
addTrustedCertificate ( const CORBAsec::X509Cert&
trusted,
const CORBAsec::ASN1Object* crl = NULL) =
0;
…
};
The new parameter in VisiSecure 8.0
for C++ is printed is shown above. It is defaulted to NULL, in which
case it assumes that there is no CRL associated with the passed
trusted certificate, which is exactly what happens in the former
release, in which only the first parameter exists.
The call
accepts CRL binary DER data that is wrapped in a CORBA octet
sequence object (CORBAsec::ASN1Object is just a typedef to
CORBA::OctetSequence).
For converting a CRL form B64 text to
binary DER format, a method is added into the
CertificateFactory.
class _VBSECEXPORT CertificateFactory
{
…
virtual CORBAsec::ASN1Object*
importCRL( const
CORBAsec::ASN1Object& b64crl ) const = 0;
…
};
The
property vbroker.security.CRLRepository in former release is
deprecated in 8.0, for CRLs, applications are expected to use the
new API that provides explicit association between the trusted
certificate and its CRL.
Borland VisiBroker must be licensed and registered before it will run; there is no grace period. However, you may start the LM Administrator tool and then license the application remotely. For instructions on how to register your license, go to http://support.borland.com/kbshow.php?q=30254
For VisiBroker platform information, go to: http://support.borland.com/kbshow.php?q=29385
Native code set for char (tcsc) = ISO-LATIN-1 (ISO-8859-1)
Conversion code sets for char = -Nil-
Native code set for wide char (tcsw) = UTF-16
Conversion code sets for wide char = -Nil-
As the charset of UCS-2 Level 1 is compatible with UTF-16, UCS-2 Level 1 is also supported for VisiBroker for C++.
Please see the Client Basics chapter of the VisiBroker for Java Developer's Guide.
Instead of having a single ORB
library in previous versions, VisiBroker for C++ 8.0 has a kernel
library, the ORB Core, and six component libraries. The ORB Core
needs to be linked to any VBC application, while the component
libraries can be selected on demand by linking or using
property.
In addition, to reduce the migration effort,
VisiBroker for C++ 8.0 also provide a library having the same name
(The library suffix may be different on some platforms) as previous
single ORB library.
Component name |
Library base name |
How to enable |
Exported header file |
Name of property |
Default value |
Comments |
Interface repository |
ir |
Linking |
ir_c.hh * |
|
|
|
DSUser |
dsuser |
Property |
|
vbroker.agent.enableLocator |
True |
|
Server manager |
srvrmgr |
Property ** |
servermgr_c.hh, servermgr_s.hh |
vbroker.orb.enableServerManager |
False |
|
Dynamic any |
dynany |
Linking |
dynany.h |
|
|
|
Firewall |
fw |
Property |
firewall_c.hh |
vbroker.orb.enableFirewall |
False |
New property in 8.0 |
Location service |
locsvc |
Linking |
|
|
|
|
Core ORB |
orbcore |
|
|
|
|
|
Complete ORB wrapper |
orb |
|
|
|
|
Static library wrapping all the components. Provided for backwards compatibility.*** |
* An application needs to include “ir_c.hh”
explicitly, or define _VIS_INCLUDE_IR before including “corba.h”.
** Linking if application explicitly uses definitions in Server
Manager Header files.
*** For HP-UX PA-RISC platform, the
library is dynamic link library with .sl extension, while for HP-UX
Itanium platform, the library is dynamic link library with .so
extension.
VisiBroker for C++ is not binary compatible with previous releases including VisiBroker 7.0. In this release, the monolithic ORB has been componentized as explained in Installation changes section. Because of this feature, it was difficult to maintain binary compatibility.
The libraries' naming convention in VisiBroker for C++ of HP-UX Itanium platform has been changed from VisiBroker 7.0. They are now following the VisiBroker 8.0 standardization, which is: standard libraries will be having _p infix, while classical libraries do not have. E.g. liborb64_pr.so.8.0 is the standard library, while liborb64_r.so.8.0 is the classical one.
idl2java compiler has introduced a fix related to the section
4.18.2 in IDL2Java specification 1.3. As shown below, if you have an
IDL using typedefs on the typedef of a sequence or an array and they
are later used as a parameter to an operation:
typedef
XXX A; // XXX is a sequence or array
typedef A B;
interface
I {
void op(inout B param);
};
then the method
parameters in interface I's stub and skeleton are different from
those generated in VisiBroker 7.0. The difference is shown
below:
void op(BHolder param) { ... } // in
VisiBroker 7.0
void op(AHoler param) { ... } // in VisiBroker
8.0
As per IDL2Java specification, idl2java compiler in
VisiBroker 8.0 will NOT generate holder class for B; it is required
that you update the client and server code and make use of A's
holder class
Compilers java2idl and java2iiop in VisiBroker 8.0 can now parse Java 1.5 language features. This also includes support for marshalling Java Typesafe Enum in the ORB.
Property |
Default |
Description |
vbroker.orb.enableFirewall |
False |
Loads the required firewall library. |
Property |
Default |
Description |
vbroker.orb.enableTransactions |
false |
Enables transaction support. Loads the required transaction interceptors. |
vbroker.ots.currentName |
NULL |
The Smart Agent will find the named VisiTransact Transaction Service instance anywhere on the network |
vbroker.ots.currentHost |
NULL |
The Smart Agent will find any available VisiTransact Transaction Service instance that is located on the specified host |
vbroker.ots.currentFactory |
NULL |
VisiTransact uses the specified IOR for the requested Transaction Service (CosTransactions::TransactionFactory) to locate the desired instance of the VisiTransact Transaction Service on the network. This argument enables VisiTransact to operate without the use of a Smart Agent (osagent). |
vbroker.ots.currentTimeout |
0 |
Sets the transaction timeout value for Current. If the transaction is still alive after the timeout expires, the transaction is automatically rolled back. |
Property |
Default |
Description |
vbroker.ots.completionRetryAttempts |
0 |
Property to configure the retry attempts of failed transaction completion. |
The readme.html bundled with the product has invalid links, the following links need to be accessed instead:
Release Notes - http://techpubs.borland.com/am/visibroker/v80/en/VBroker_80_ReleaseNotes.html
VisiBroker documentation on the web - http://techpubs.borland.com/am/v80/
Newsgroups - http://support.borland.com/community/index.php?t=index&cat=35&
Request is not serviced when using Main Thread Model with LIOP in Windows(CR9186). To work around the problem, please specify the property vbroker.se.liop_tm.scm.liop_tm.manager.enabled=false. This issue will be resolved in a future release.
For IOR that is registered with OAD using oadutil, we will need to omit the "-e -vbroker.oad.locateAlways=true" property to allow spawned Server to locate OAD. Hence, Server will be slow in starting up.(CR9449)
(On Win and Solaris)Applets with callback objects will fail to load because of API changes in org.omg.PortableServer.POAManager interface. These changes were done as part of CORBA 3.0 specification. To work around the problem use the vbjendorse.jar. This issue will be resolved in a future release.
For VBJ Server that is registerd with OAD using oadutil will now need to have "-e -vbroker.oad.locateAlways=true" added, else client will not be able to locate the VBJ Server that is started by OAD and returned with CORBA::NO_RESPONSE. (CR9443)
When a multi threaded java OTS client interacts with a PMT enabled VBC server, the results are not consistent (CR8989). This issue will be resolved in a future release. This will be resolved in future release.
When Notification Service is used with Priority and OrderPolicy equal to PriorityOrder, in some scenarios, CORBA::MARSHAL exception is thrown (CR9284). This issue will be resolved in a future release.
The last merged VBE Service Pack was VBE 7.0 SP 1
Change request |
Description |
Comments |
6107 |
failover should happen to a newly started rmi-iiop server |
|
7786 |
[RHEL4 (Power5)] NativeMessing Callback throws CORBA::OBJECT_NOT_EXIST exception |
|
5714 |
VBJ6.5: defining 0/null as client host does not work |
|
4480 |
VBJ converts the hostname string into an IP address but VBC does not |
|
6964 |
VBJ rmi-iiop does not support the marshaling of JDK1.5 Enum type |
|
6352 |
When using SSL client/server with bi-dir communications, the SSL server callback does not reuse an existing client-server connection. It opens a new TCP connection |
Limitation: In the scenario where both the client and server are security enabled, but secure transport is disabled, the server still uses a new connection while making a callback |
7893 |
Memory leak in Security |
|
1671 |
Visi portable interceptors example is incorrect |
|
4816 |
[HV50751] CORBA::Marshal exception is raised, illegally |
|
4475 |
[HV50710] If the timeout is less than 1ms, it isn't be abled. |
|
7364 |
check incoming context length and compare against allocated buffer length |
|
5797 |
property to change the stack size of an ORB thread |
|
4424 |
The Any constructor doesn't deep-copy the parameter's value |
|
4526 |
[HV50724] 'is_equivalent' method is coredump |
|
4794 |
[HV50743] Free Memory Read occurs in TypeCodeTableCbCleanup(). |
|
4901 |
IDL's Compile error occurs with '-type_code_info' option |
|
5739 |
Process down in calling CORBA::ORB::create_recursive_sequence_tc() |
|
904 |
Shared memory segment does not get cleanup after the server dies. |
|
4501 |
[HV50719] If the timeout is too large, it isn't be enabled |
|
4694 |
[HV50728] There is the potential of core dump. |
|
4794 |
[HV50743] Free Memory Read occurs in TypeCodeTableCbCleanup(). |
|
5632 |
PortableServer::POA::AdapterAlreadyExists is thrown during processing the PortableServer::POA::find_POA method, without returning the found POA. |
|
4731 |
Uncaught exception from VISPSA::unpublish() |