Solaris 32/ 64-bit on SPARC and x64 (64-bit Xeon and Opteron)
HP-UX 32/ 64-bit on PA-RISC (classical and standard C++) and Intel Itanium (only standard C++)
Windows on x86 and x64 (64-bit Xeon and Opteron)
AIX 32/64-bit on PPC (classical and standard C++)
RedHat Enterprise Linux 4.0 on x86, x64 (64-bit Xeon and Opteron), ia64 (64-bit Intel Itanium) and P5 (64-bit Power5)
SuSE Enterprise Linux 9.0 on x86, x64 (64-bit Xeon and Opteron), s390 (31-bit) and zSeries (64-bit s390x)
Monta Vista Linux CGE 4.0 on EM64Ts and Cross Development on RedHat Enterprise Linux 3.0
This release note contains information specific to the Borland VisiBroker 7.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.
Please note that "Borland Enterprise Server, VisiBroker Edition" has been renamed to, "Borland VisiBroker". The official name of the current release is, "Borland VisiBroker 7.0".
This release note contains the following sections:
VisiBroker now allows you to
expose your CORBA servers as Web Services. You can take advantage of
this new feature to expand the reach of your legacy CORBA
applications. VisiBroker makes use of Apache Axis technology as its
underlying SOAP engine. This new feature also expands and replaces
the functionality of VisiExchange that was provided in the previous
versions of Borland VisiBroker. Now it is no longer necessary to run
Apache Tomcat web container to deploy your web services. Although
the Tomcat model is still supported, VisiBroker now provide this
functionality within the CORBA servers. This will result in less
setup and maintenance overhead. For more information, see the
VisiBroker Web Services chapter in the VisiBroker Developer's Guide.
To learn more about the properties used to start and configure the
Web Services support runtime, and the various tools options, refer
to the Properties and Tools chapters of the Developer's Guide.
Examples illustrating this feature are provided in the "ws"
sub-directory of the examples
folder.
Some of the salient features include:
Axis runtime collocated with VisiBroker ORB
Type-specific CORBA service provider (bridge) deployed using the standard Axis deployment model
Direct mapping from IDL to WSDL
In-process SOAP to GIOP adaptation to support the deployed bridge
Version information
Axis for C++ version 1.5
WSDL 1.1
SOAP 1.1
CORBA to WSDL/SOAP Interworking Specification (February 2005; Version 1.1; formal/05-02-01)
Please note that on platforms that support both Standard C++ and Classical C++ application development, classical C++ application development with Web Services support is not provided.
With the Pluggable Transport Interface, it is possible to see other transport protocol - not just the ones built in the ORB for transmission of CORBA GIOP messages. The interface supports the plugging-in of multiple transport protocols simultaneously. It is designed to provide a common interface that is suitable for use with a wide variety of transport types. The transport implementations, however, need to adhere to the rules of the GIOP standard and the Core specifications.
Though the interface itself uses CORBA standard types, it is
VisiBroker proprietary. However, the interface is similar to the
draft specification available in OMG for plugging in transports. To
learn more, please see the VisiBroker Pluggable Transport Interface
chapter in the VisiBroker for C++ Developer's Guide. A separate
chapter is provided in the VisiBroker for C++ Programmer's Reference
for the API documentation. Examples are provided in the "pluggable"
sub-directory in the examples
folder.
To provide more control for power users, the following features of the Real-Time CORBA extensions (as defined in the Real-Time CORBA 1.0 specification) are now supported:
Real-Time ORB
Real-Time Object Adapters
Real-Time CORBA Priority
Priority Mappings
Threadpools
Real-Time CORBA Current Interface
Real-Time CORBA Priority Models
Real-Time CORBA Mutex API
The feature is provided only on UNIX platforms. For more
information, refer to the Real-Time CORBA Extensions chapter in the
VisiBroker for C++ Developer's Guide. API documentation is available
in the Programmer's Reference. Examples for this feature are
provided in the rtcorba
sub-directory of the examples
folder.
The VBC Debug logging facility that was introduced in version 6.5 of VisiBroker for C++, has been improved to provide an interface for writing custom appenders and layouts. This API can also be used with your application logger interfaces.
Please refer the VisiBroker
Logging chapter in VisiBroker for C++ Developer's Guide and the
Programmer's Reference for the API documentation. Examples are
provided in the debug
sub-directory of the examples
folder.
All logging for the VisiBroker services have been streamlined to use this logging feature. For the source names for individual services, please refer to the Properties chapter of the VisiBroker for C++ Developer's Guide.
VisiBroker for C++ 7.0 includes new and improved examples that demonstrate the VisiBroker services in a simple and clear manner. New examples have been added to:
VisiNaming examples.
Object Activation Daemon (OAD) examples.
Please see the example .html files under the respective directories for the services listed above.
Co-located invocation performance has been improved. Most of the data types have improvements of about 200 to 300%. This improvement is transparent to the user without loss of functionality.
URL format using "file://" is now supported. Please see the Properties chapter in the VisiBroker for C++ Developer's Guide for more information.
This release provides EventQueue::ConnInfo in the context of invocation. Using the VIS_EXT::get_client_info() EventQueue::ConnInfo structure, you can obtain information about the peer using a request.
CORBA::TIMEOUT exceptions being thrown during an attempt to make a connection, sending a request or receiving a reply now have different minor codes in the Vmcid::VBVMCID1 namespace to distinguish them. For connection time-out, the minor code is 1 | Vmcid::VBVMCID1. For request timeout, the minor code is 2 | Vmcid::VBVMCID1. For reply timeout, the minor code is 3 | Vmcid::VBVMCID1.
Refer to the properties section for information about property enhancements.
VisiBroker now allows you to
expose CORBA servers as Web Services. You can take advantage of this
new feature to expand the reach of your legacy CORBA applications.
VisiBroker makes use of Apache Axis technology as its underlying
SOAP engine. This new feature also expands and replaces the
functionality of VisiExchange that was provided in the previous
versions of Borland VisiBroker. Now it is no longer necessary to run
the Apache Tomcat web container to deploy your web services.
Although the Tomcat model is still supported, VisiBroker now
provides this functionality within the CORBA servers. This will
result in less setup and maintenance overhead. To learn more, refer
to the VisiBroker Web Services chapter in the VisiBroker Developer's
Guide. To learn more about the properties used to start and
configure the Web Services support runtime, and the various tools
options, refer to the Properties and Tools chapters of the
Developer's Guide. Examples illustrating this feature are provided
in the ws
sub-directory of the examples
folder.
The new features include:
Axis runtime included within the VisiBroker ORB
Type specific CORBA service provider (bridge) deployed using standard Axis deployment model
Direct mapping from IDL to WSDL
In process SOAP to GIOP adaptation to support the deployed bridge
Version information
Axis for Java version 1.2
WSDL 1.1
SOAP 1.1
CORBA to WSDL/SOAP Interworking Specification (February 2005; Version 1.1; formal/05-02-01)
VisiBroker for Java now has an improved logging mechanism that is based in Log4j. The older logging properties are still valid, but users can now exploit all of the features of Log4j such as filters, appenders, layouts, and nested diagnostic contexts to get more information when logging their applications.
To learn more about the improved logging mechanism, please see the logging section near the end of VisiBroker Properties chapter in the VisiBroker for Java Developer's Guide.
VisiBroker for Java 7.0 comes with new and improved examples that demonstrate the VisiBroker services in a simple and clear manner. New examples include:
VisiNaming examples.
Object Activation Daemon (OAD) examples.
Please see the example .html files under the respective directories for the services listed above.
VisiBroker for Java now supports 64-bit JDK.
VisiNaming (provided as part of VisiBroker) supports the High Availability feature of JDataStore 7.0.5. To learn more about the details of this feature, please see the VisiNaming chapter in the VisiBroker Developer's Guide.
PMT is a database-independent solution for integrating databases into transactions. This feature makes use of a server application model along with an XA configuration so that the transaction logic becomes transparent to the application business logic. The transactional specification is hidden in the POA using a new POA policy PMT_ATTRS_TYPE. Different values such as PMT_NotSupported, PMT_Required, PMT_Supports, PMT_RequiresNew, PMT_Mandatory, PMT_Never can be specified to obtain different transactional behavior. PMT separates and hides all database connection and transaction details from application business logic developers. With PMT, business logic (such as servant implementation) does not need to hard-code database connection and transaction logic within its implementation. With PMT, a given business logic implementation can involve both client and server initiated transactions (SIT and CIT).
For more information regarding
this feature, refer to the Server Application Model chapter of the
VisiTransact Guide. Two examples are provided in the Transactions
sub-folder of the examples
directory.
This feature makes the Session Manager obsolete. All the functionality associated with the Session Manager, such as Session Manager Resource Configuration, Pluggable Interface, and Session Manager Resource Director are also discontinued. In order to use this facility, you need the vbroker.its.its6xmode property. See the properties section for more information.
Introduces a new resource manager (RM) recovery utility (rmrecover) to clean up "in-doubt" transactions.
Demonstrating use of VisiSecure with VisiNaming and GateKeeper. Please see the example .html files under the respective directories for the services described above.
C++ and Java applications involving GateKeepers can now be secured. Please see the secure_gatekeeper example for illustration.
virtual const vbsec::SSLSession*
vbsec::Current::getPeerSession ( CORBA::Object* peer) = 0;
When
calling this function from a client side, applications must pass the
reference to the CORBA object of interest.
When calling this
function from a server side, applications must call this function
from within request contexts (in the control path while serving the
request made by the client) and application must pass NULL as a
parameter.
This new behavior eliminates ambiguity when the API is
called in a request context on a mid-tier.
Client -> Mid-tier
-> Server
In the Mid-tier, calling the same API but passing a
different parameter will give different SSLSession and (unlike in
the previous release) failure of each must not fallback to the
other.
Please refer to vbsecminors.h in the include directory for a list of minor codes meant for VisiSecure exceptions. These values are consistent between VisiSecure for Java and C++.
VisiSecure for Java now supports 64-bit JDK.
In past releases, a proxy push supplier connected to a push consumer always used a dedicated thread to push events to a consumer. This enhancement provides the proxy push supplier with an option to also use a configurable thread pool. By default, the proxy now uses the thread pool. QoS property VBProxyPushSupplierThreadModel, specifies this option at the channel, consumer admin or proxy push supplier level. Valid values are "dedicated" and "pool". "pool" is the default.
The standard thread pool configurations such as thread max, thread min, and thread max idle can be created with the vbroker style properties. Please see the Property Update section for more information regarding these properties.
Information regarding the state of the event queues inside VisiNotify is now exposed using the QosAdmin API. The following event counters are exposed:
VBReceivedEventsCount
VBPendingEventsCount
VBDiscardedEventsCount
VBForwardedEventsCount
VBFilteredEventsCount
For more information, refer to the Setting the Quality of Service and Filters chapter of the VisiBroker VisiNotify Guide.
VisiBroker for .NET, previously called Janeva, is now an integral part of the VisiBroker product line. We continue our goal of complying with the latest offerings from Microsoft. This section describes the new features in VisiBroker for .NET 7.0
As part of re-naming, application configuration .xml files
now use <visinet> xml tags in place of the former <janeva>
xml tags. For example:
<configuration>
<configSections>
<section name="visinet" type="Janeva.Settings,
Borland.Janeva.Runtime"/>
</configSections>
<visinet>
<naming url="corbaloc::localhost:900/NameService"/>
</visinet>
</configuration>
The former <janeva>
tag is still acceptable in this release but is being discontinued.
Application configuration .xml files containing both types of tags
are invalid and will be rejected by our validating parser.
VisiBroker for .NET now supports the .NET 2.0 framework for Microsoft Visual Studio 2005.
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/entry.jspa?externalID=4273&categoryID=112
For VisiBroker platform information, go to: http://support.borland.com/kbcategory.jspa?categoryID=395
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++.
Because of a Visual Studio for .NET 2005 C++ compiler issue as documented by Microsoft at http://support.microsoft.com/?id=915418, a patch needs to be applied to your Visual Studio installation before building VisiBroker applications. Please refer to the platform page http://support.borland.com/kbcategory.jspa?categoryID=395 for more information on the compiler patch.
VisiBroker for C++ supports the Visual Studio for .NET 2005 compiler. In this version of the compiler, the C++ runtime is provided as a side by side assembly (Microsoft.VC80.CRT). To resolve the C++ runtime dependency, VisiBroker installs these assemblies as private assemblies. VisiBroker applications, however, will also need to install these C++ runtime assemblies. Please refer to http://msdn2.microsoft.com/en-us/library/ms235531(VS.80).aspx for more information regarding SxS assemblies
On platforms which support development of both classical and standard C++ development (such as HP-UX and AIX), the C++ services binaries shipped with VisiBroker are built with classical C++. All C++ stand-alone services, such as VisiNotify, VisiTelcoLog, and OTS are built with classical C++ and hence link into the classical C++ version of the libraries. Please also refer to the documentation for the Known Issue about Securing CORBA services.
On Solaris platform, to support RT extension features, Posix Threads are now used. While building the applications please also use -DPTHREADS flag. For more details on the compilation flags to be used, please refer stdmk in the examples directory. This is a change from the past releases where the Solaris Native threads were used.
Please see the Client Basics chapter of the VisiBroker for Java Developer's Guide.
Web Services Runtime binaries:
Windows - AxisServer.dll (AxisServer64.dll), AxisXMLParser.dll (AxisXMLParser64.dll), ws_r.dll (ws64_r.dll), xerces-c_2_7.dll (xerces-c_2_7_64.dll)
Solaris and Linux - libaxis_server.so (libaxis_server64.so), libaxis_xmlparser.so (libaxis_xmlparser64.so), libws_r.so (libws64_r.so), libxerces-c_2_7.so (libxerces-c_2_7_64.so)
HP-UX and AIX - libaxis_server.sl/a (libaxis_server64.sl/a), libaxis_xmlparser.sl/a (libaxis_xmlparser64.sl/a), libws_r.sl/a (libws64_r.sl/a), libxerces-c_2_7.sl/a (libxerces-c_2_7_64.sl/a). Please note that these libraries are built using -AA flag. Classical C++ versions of these libraries are not provided. The suffix is .so on the HP-UX Itanium platform.
Web Services Development tools - vbwsdev.jar, vbwscdev.jar, idl2wsc (idl2wsc.exe on Windows)
Examples - In examples/vbroker/ws directory. There are two examples in this directory. examples/vbroker/ws/bank which illustrates how the basic/bank_agent example can be exposed as a Web Service, and examples/vbroker/ws/animal which illustrates the migration for VisiExchange users.
Runtime binaries -
Windows - pluggable_r_70.dll (pluggable64_r_70.dll) [pluggable_r.lib (pluggable64_r.lib) are the import library names]
Solaris and Linux - libpluggable_r.so.7.0 (libpluggable64_r.so.7.0) [libpluggable_r.so (libpluggable64_r.so) are the softlinks].
HP-UX and AIX - libpluggable_<p>r.sl/a.7.0 (libpluggable64_<p>r.sl/a.7.0) [libpluggable_<p>r.sl/a (libpluggable64_<p>r.sl/a) are the softlinks]. Binaries with <p> are the Standard C++ versions. The suffix is .so on the HP-UX Itanium platform.
Header files - vptrans.h
Examples - Located in the examples/vbroker/pluggable directory. examples/vbroker/pluggable/mytcp illustrates pluggable transport implementation using TCP/IP and examples/vbroker/pluggable/mytcp_bank illustrates how the basic/bank_agent example can be used in a pluggable transport implementation.
Web Services Runtime binaries are bundled inside vbjorb.jar
Web Services Development tools are bundled inside vbwsdev.jar, vbwsjdev.jar and idl2wsj (idl2wsj.exe on Windows)
Examples - Located in the examples/vbroker/ws directory. There are two examples here examples/vbroker/ws/bank which illustrates how the basic/bank_agent example can be exposed as Web Service and examples/vbroker/ws/animal which illustrates the migration for VisiExchange users.
VisiBroker for .NET is now bundled with VisiBroker for Java and C++.
POA managed transaction
Windows - rmrecover.exe, and dom2cam_r.dll (dom2cam64_r.dll). [dom2cam_r.lib (dom2cam64_r.lib) are the import libraries]
Solaris and Linux - rmrecover, and libdom2cam_r.so (libdom2cam64_r.so)
HP-UX and AIX - rmrecover, and libdom2cam_<p>r.sl/a (libdom2cam64_<p>r.sl/a). The suffix is .so on the HP-UX Itanium platform.
Examples are located in the examples/vbroker/Transactions directory.
otsinit.o (otsinit.obj) is no longer needed and hence not shipped.
When building applications using Session Manager libraries, your applications need to be linked to Oracle 9i client libraries.
Examples under the directory .../examples/security are J2EE security examples and will not work without using the EJB jar files.
set_policy_overrides() API may throw an exception - If invalid policy values are input into set_policy_overrides(), the CORBA::InvalidPolicies exception may be thrown. Previously, any invalid policy values were silently ignored and handled in a default way.
Using Logging properties - Due to the introduction of new logging mechanisms, there is a change in the behavior of the legacy logging properties. To enable logging for the ORB or any service, please make sure that the property vbroker.log.enable is set to "true". For more details, please see the VisiBroker for Java Developer's guide.
VisiBroker 6x Behavior - Because of the introduction of PMT, some of the VisiBroker 6.x behavior has been discontinued. To use VisiBroker 6.x behavior, use the property vbroker.its.its6xmode=true. By setting this property, the following discontinued behavior is enabled:
The transactional application uses in-proc OTS.
The POA is not created with OTS policy, but the object on that POA is inherited from CosTransactions::TransactionalObject.
The application uses NonTxTargetPolicy on the client side.
The application uses the SessionManager.
The VisiTransact OTS server is used by VBJ Java clients and VBJ Servers.
Windows platform: HostLoginModule shipped with VisiSecure for
Windows platforms now expects an explicit Windows domain name, such
as "." when authenticating users against a local machine.
For example,
Username: \\.\Administrator
Password:
Above,
please notice the "." (dot) between the second and the
third backslash specifying that the authentication is expected to be
against the local machine.
When the username is entered plainly
without domain specification, as follows:
Username:
bernarto
Password:
It will authenticate the user against
the Windows domain, to which the local machine belongs. When the
authentication fails, unlike the former VisiSecure, it does not
fallback and authenticate the user against the local machine.
Please
note that in the case where your machine does not belong to any
Windows domain, or your organization’s intranet does not use a
domain mechanism and therefore all users are authenticated only
against a local machine, you must always explicitly supply the ".",
or in this particular case, the authentication will always
fail.
Likewise, authentication of a user can be done against any
Windows domain, regardless of whether or not the local machine
belongs to that domain. This includes the case where there are
Windows domains available on your intranet, but your local machine
is not a member of any of them.
Username:
\\APAC\btjahjono
Password:
For the Host Login Module,
the username account needs to be a member of at least one Windows
user group, or the login will always fail.
Binary compatibility - Since this is a major release, the binaries of the VisiBroker for C++ libraries are not compatible with those of the previous version. The reason for the incompatibility is primarily the support for Real-Time CORBA extension features.
Visual Studio compatibility - VisiBroker for .NET now supports Microsoft Visual Studio 2005. The VisiBroker for .NET add-in is only supported for VS 2005 and not for VS 2003.
Persistence compatibility - VisiNotify and VisiTelcoLog persistency layers are not compatible with the previous releases. In the case of VisiNotify, the persistency folder needs to be cleaned up before use. In the case of VisiTelcoLog, please migrate the log to the new service by re-directing all the logs and storing them in the new service.
VisiBroker 6x Behavior - Because of the introduction of PMT, some of the VisiBroker 6.x behavior has been discontinued. To use the discontinued functionality, use the property vbroker.its.its6xmode=true. By setting this property, the following behavior is enabled:
The transactional application uses in-proc OTS.
The POA is not created with OTS policy, but the object on that POA is inherited from CosTransactions::TransactionalObject.
The application uses NonTxTargetPolicy on the client side.
The application uses the SessionManager.
The VisiTransact OTS server is used by VBJ Java clients and VBJ Servers. For more information see the next point.
Enabling transactions for Java applications - VisiTransact does not provide support for Java applications out of the box. To use transactional capability for Java applications, use Borland AppServer (asrt.jar). For all such use cases, the property vbroker.its.its6xmode should be set to true in OTS. Also, please note that PMT is not supported for Java. Java clients also do not interact with C++ servers running in the PMT mode in this release.
otsinit not shipped - To embed a VisiTransact Transaction Service instance in a C++ executable application, you no longer need to link with otsinit.obj (otsinit.o on UNIX). otsinit.obj (otsinit.o on UNIX) is no longer shipped in VisiTransact 7.0.
New compilers idl2wsj (Java) and idl2wsc (C++) have been added to compile IDL into WSDL
New compilers idl2wsj (Java) and idl2wsc (C++) have been added to compile IDL into WSDL.
Property |
Default |
Description |
vbroker.agent.keepAliveTimer |
120 secs |
Smart Agent property. Smart agent will wake up after this timeout and based on the vbroker.agent.keepAliveThreshold value, will compute whether to do client verification. The logic is if the last received heart beat value is less than current time - (keepAliveTimer + keepAliveThreshold), then do client verification. The value of this property should be greater than 1 second and less than 120 seconds. The number of times client verification is tried can be controlled by vbroker.agent.maxRetries property. |
vbroker.agent.keepAliveThreshold |
40 secs |
Smart Agent property. Please see documentation for vbroker.agent.keepAliveTimer. This value should be greater than 0. |
vbroker.agent.maxRetries |
4 times |
Smart Agent property. The number of times the agent will perform client verification on not receiving a heart beat from the client. Values can be 1 to 10. |
vbroker.qos.defaultRRTTimeout |
0 milli-secs |
Sets the default value of relative round trip request timeout. Default 0 means no timeout. |
vbroker.qos.defaultRRQTimeout |
0 milli-secs |
Sets the default value of relative request timeout. Default 0 means no timeout. |
vbroker.qos.defaultConnectTimeout |
0 milli-secs |
Sets the default value of connection timeout. Default 0 means no timeout. |
vbroker.orb.sendLocate |
false |
Set this property to true to send a GIOP Locate request on binding to verify it is a GIOP server. |
vbroker.se.xxx.scm.yyy.dispatcher.unlimitedConcurrency |
false |
Setting this property to true will allow the thread pool dispatcher to create an unlimited number of threads when the property vbroker.se.xxx.scm.yyy.dispatcher.threadMax is set to 0. |
vbroker.typecode.marshalName |
true |
Marshalling of names inside typecode data can now be suppressed by replacing those with empty strings, as the OMG spec allows. This will save network bandwidth by reducing the length of GIOP messages. However, the API functions relying on this data will not function correctly when compression is used. By default the compression is not done. To enable, set this property to false. |
vbroker.orb.firewallInit |
false |
If this property is set to true, and if the IOR has both IIOP and TCP type Firewall components, then if any one of the end points fail, fail-over can occur. Note: vbroker.orb.alwaysProxy=true or programmatically configured Firewall proxy will take precedence. |
vbroker.orb.mtmPerCall |
true |
If true, any thread calling ORB::perform_work() can performs the request. If false, the thread that calls ORB::perform_work() the first time becomes the "main thread" throughtout the lifetime of the ORB. The call to ORB::perform_work() from a thread other than the "main thread" does nothing. |
Property |
Default |
Description |
vbroker.naming.resolveAutoCommit |
true |
Sets Auto Commit on the JDBC connection when doing a "resolve" operation. |
vbroker.poa.manager.threadMin |
0 |
Controls the minimum number of threads in the auxiliary thread pool used in POA (e.g. for etherealization of objects) |
vbroker.poa.manager.threadMax |
0 |
Controls the maximum number of threads in the auxiliary thread pool used in POA |
vbroker.poa.manager.threadMaxIdle |
300 (secs) |
Controls the idle timeout for threads in the auxiliary thread pool used in POA |
Property |
Default |
Description |
vbroker.notify.threadPool.threadMax |
0 |
Sets the maximum number of threads in the thread pool. 0 indicates unlimited number of threads. |
vbroker.notify.threadPool.threadMin |
0 |
Sets the minimum number of threads in the thread pool. |
vbroker.notify.threadPool.threadMaxIdle |
300 |
Sets the timeout value for an idle thread. |
Property |
Default |
Description |
vbroker.its.its6xmode |
false |
Allows usage of discontinued Session Manager functionality. Some other backward behavior is also enabled. Please refer to the Server Application Model properties section for more information. |
vbroker.its.xadesc |
itsxadesc.xml |
Specifies the XA-resource configuration file using this property |
Axis for C++ Issues
The Axis C++ runtime supports only one "portType" WSDL definition. A "portType" is always defined for an IDL interface, hence only one IDL interface can be supported. Multiple "portType" WSDL definitions are also defined if we have multiple encodings. The idl2wsc and idl2wsj compilers always generate two encodings (i.e. WS-I and SOAP encodings) and hence two portType definitions are defined one for WS-I and one for SOAP encoding. To prevent having two "portType" WSDL definitions generated by idl2wsc, please use only one of the following flags: "-encoding_wsi_only" or "-encoding_soap_only". Therefore, it is a known limitation that a Web Service Enabled VisiBroker for C++ Server can only support one encoding at a time.
Axis for C++ supports only SOAP encoding. Any SOAP client not using this encoding in the SOAP message will not interoperate.
A few runtime errors (some even fatal) are seen on Axis for C++ when either the bridge fails to load up (such as either the WSDD specified is wrong, or there is some problem with the bridge library), or a badly formed SOAP message is sent to the XML parser.
Axis leaks memory when it fails to find a service. This may happen if the service was not deployed in the first place. In such cases, the server engine leaks about 331 bytes per call when generating the fault.
wsdl2ws doesn't convert dot names using C++ or Java scoping resolution operator to valid identifier names in C++ (i.e. a WSDL name of "A.B.calculator" generates a class called "A.B.calculator".
wsdl2ws doesn't generate enum code validation (for example, unlike wsdl2java, the enum string names are not validated by the generated code).
xsd:string maps to a "char *" which means that no unicode support is built-in. Proper conversion (if possible) must be made, especially for data from Java peers
There are known problems in Axis when trying to serialize or deserialize complex array types. Because of this, an IDL array or sequence of complex constructs or a multi dimensional array may not work properly.
https://issues.apache.org/jira/browse/AXISCPP documents the issues.
Interoperability with Microsoft .NET
When compiling a WSDL file
generated by VisiBroker's idl2wsc or idl2wsj compiler using a
Microsoft .NET compiler, the following warning is
generated:
"R2721: A wsdl:binding in a DESCRIPTION MUST
have the name attribute specified on all contained soapbind:fault
elements"
Note that this warning can be safely ignored.
When
generating .NET stubs for a Web Service client from the WSDL file
generated by VisiBroker's idl2wsc or idl2wsj compiler, the
following error is encountered:
--- Unable to import
<binding> from <namespace> ---
Microsoft confirms
that this is a bug in their wsdl
tool:
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B820122.
This problem occurs because the generated wsdl file imports another
wsdl file, which has a normative description of the CORBA
namespace.
Web services examples for Monta Vista Cross Development using RHEL 3.0: The web services examples in the vbroker/ws and vbroker/security/ws folders use the "vbj" launcher to launch org.apache.axis.wsdl.WSDL2Java for generating Axis Client-side bindings. The "vbj" launcher is a target executable and cannot be used on the development platform. To work around this problem, please use the java launcher after setting the following jar files in the class path - vbjorb.jar, axis.jar, jaxrpc.jar, saaj.jar, commons-logging.jar, commons-discovery.jar, wsdl4j-1.5.1.jar
On the Windows platform, the C++ ORB does not install any exit handlers to shutdown the ORB. Because of this, any behavior expected for shutdown semantics such as ORB_shutdown notification or interceptor destroy notifications are not automatically received on application exit or on calling an exit API. This is because Windows does not support heavy duty operations such as thread creation which may be needed for ORB shutdown in exit handlers. Users are expected to call ORB shutdown or destroy explicitly if such notifications are needed. On UNIX platforms, however, exit handlers are installed and these notifications are automatically received.
On some platforms, such as HP-UX, AIX, RHEL and SLES, you may need root privileges to use RT features.
For the RT extension features, the default priority mapping for the threads is as given below. This information will be updated in the product documentation in the next release.
Operating System |
RTCORBA::Priority range |
Native Priority range |
Solaris |
0 - 31 |
10 - 41 |
AIX |
0 - 31 |
28 - 59 |
HP-UX |
0 - 31 |
0 - 31 |
Linux |
0 - 31 |
30 - 61 |
Web services examples for Monta Vista Cross Development using RHEL 3.0: The web services examples in the vbroker/ws and vbroker/security/ws folders use the "vbj" launcher to launch org.apache.axis.wsdl.WSDL2Java for generating Axis Client-side bindings. The "vbj" launcher is a target executable and cannot be used on the development platform. To work around this problem, please use the java launcher after setting the following jar files in the class path - vbjorb.jar, axis.jar, jaxrpc.jar, saaj.jar, commons-logging.jar, commons-discovery.jar, wsdl4j-1.5.1.jar
Inter-operability with Microsoft .NET
When compiling a WSDL file
generated by VisiBroker's idl2wsc or idl2wsj compiler using a
Microsoft .NET compiler, the following warning is
generated:
"R2721: A wsdl:binding in a DESCRIPTION MUST
have the name attribute specified on all contained soapbind:fault
elements"
Note that this warning can be safely ignored.
When generating .NET stubs for a Web Service client from a
WSDL file generated by VisiBroker's idl2wsc or idl2wsj compiler,
the following error is encountered:
--- Unable to import
<binding> from <namespace> ---
Microsoft confirms
that this is a bug in their wsdl
tool:
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B820122
This
problem occurs because the generated wsdl file imports another wsdl
file, which has a normative description of CORBA namespace.
Logging properties vbroker.log.default.filter.* have some problem when filtering. As work around use the property style vbroker.log.filter.default.*. Also, while changing the layout for an appender, the property vbroker.log.default.appender.<appender-inst-name>.layoutType does not work. As a work around, use the name vbroker.log.default.appender.<appender-inst-name>.layout. This will be fixed in a future patch.
When NIO is used on UNIX platforms: Make sure that the ulimit for file descriptors is set to the highest possible value.
NIO: Has been found to perform better on UNIX platforms than on Windows.
TRANSPARENT and NO_REBIND QoS
policies behave differently on Windows. When handling closed
connections, the following exception is thrown in cases where the
RebindPolicy is set to TRANSPARENT or NO_REBIND:
"Caught a
org.omg.CORBA.COMM_FAILURE: java.net.SocketException: Software
caused connection abort: recv failed vmcid: 0x0 minor code: 0
completed: No exception."
This issue is caused by the way
Windows OS handles closed connections as compared to the UNIX OS;
the connection gets a reset rather than a transition through the
various TCP states.
Time Zone Displacement Factor (tdf) returned by VisiTime: When the methods universal_time and secure_universal_time are called, the tdf returned by VisiTime is the raw Time Zone offset. It is not the Day Light Saving Time adjusted Time Zone. In addition, note that the Time Zone value represents the Time Zone where VisiTime is running.
VisiTime and the uncertainty in the time interval introduced due to proxy effect: VisiTime does not provide any means to correct this (see Appendix B in the OMG Time Service specification). Users are advised to run an instance of VisiTime either in-process with the application, or on each host to avoid this phenomenon.
IPv6 functionality on HP-UX
platforms (PA-RISC and IA): To use the IPv6 functionality, the
following property is
required::
java.net.preferIPv4Stack=false
Please see the
HP-JDK release notes for more details.
Note: If you are using the
'vbj' launcher to launch your applications, then this property need
not be specified, as it is already defined in the vbj.config file.
On some hosts, it has been observed that when using the IPv6 stack, the connection attempts can be slow. This may be because of the machine's configuration or network setup.
In prior versions of VisiBroker, an abortive shutdown message from the Request Agent running on the Windows platform would throw an org.omg.CORBA.COMM_FAILURE exception with minor code 4 with rebind policy set to org.omg.Messaging.NO_REBIND. From VisiBroker 7.0 onwards, this will result in org.omg.CORBA.OBJECT_NOT_EXIST exception.
When applications link with the VisiSecure for C++ library (vbsec.lib/libvbsec<64>.a), at runtime, the service may not be initialized correctly. This is because of a platform level behavior because of which even though the service library is linked into the application, the library does not get loaded during the load time. To work around this problem, either include vbsec.h from any of the translation units or explicitly pass the following property in the command line –Dvbroker.orb.dynamicLibs=vbsec.dll/libvbsec<64>.a
On UNIX platforms: The HostLoginModule shipped with
VisiSecure for UNIX platforms utilizes simple APIs defined in the
POSIX standard header file pwd.h
that is uniform on
almost all UNIX platforms. For deployments that demand higher
security measures, more advanced shadow password APIs are available.
One problem with this, however, is that the process calling the APIs
must run as root. More over, the APIs are not in POSIX standard and
therefore the login module code will be less portable. To write your
own login module based on shadow password APIs on Linux, for
example, you can use the APIs that are declared in the system header
file shadow.h. Please consult the -man (manual) page on your Linux
system.
CORBA services executables, for example, VisiNotify and OTS
are built in classical mode on the HP-UX and AIX platform and
therefore require the corresponding VisiSecure C++ shared library
for securing them. For example, on 32-bit HP-UX and AIX:
visinotify
–Dvbroker.orb.dynamicLibs=libvbsec.sl/libvbsec.a
ots
–Dvbroker.orb.dynamicLibs = libvbsec.sl/libvbsec.a
On
64-bit HP-UX and AIX,
visinotify
–Dvbroker.orb.dynamicLibs=libvbsec64.sl/libvbsec64.a
ots
–Dvbroker.orb.dynamicLibs=libvbsec64.sl/libvbsec64.a
Applications should not explicitly suspend/resume transaction or obtain transaction coordinator/terminator on a POA-implicit managed transaction (PMT).
Disable the door on Solaris when multiple clients make invocations to a PMT-enabled server.
On some platforms such as HP-UX, SLES, RHEL and AIX, VisiTransact may fail to start up when VBROKER_ADM points to a NFS drive. Please point this environment variable to a local drive.
Before starting xa_resdir, ensure that any in-doubt transactions performed in 7x mode are cleaned and cleared. Refer to Oracle's documentation for more information on how to clean and clear transactions.
In the rmrecover utility section of the VisiTransact Guide,
the following step:
4. Start the rmrecover utility rmrecover
-ORBInitRef
VisiTransactionService=corloc::<host>:<port>/VisiTransactionService
<xa_resource_desc.xml> <xa-resource name>
should
be:
4. Start the rmrecover utility rmrecover
<xa_resource_desc.xml> <xa-resource name> -ORBInitRef
VisiTransactionService=corloc::<host>:<port>/VisiTransactionService
VisiBroker for .NET assemblies that were installed into the
Global Assembly Cache (GAC) when VisiBroker was installed, are not
removed from the GAC during uninstall. To uninstall, please run the
script AsmUtil.exe
located in VisiNet directory.
On AIX, when running with JDK 1.5, please set LIBPATH to include $JAVA_HOME/jre/bin/j9vm. Please refer http://www-128.ibm.com/developerworks/java/jdk/aix/j564/sdkguide.aix64.html for further information.
NullPointerException is thrown when the look-and-feel in VBConsole is changed to GTK+. This will be fixed in a future patch.
The vb_install.pdf
mentions that the default installation directory on Windows is
C:\Borland\BDP instead of
C:\Borland\VisiBroker
The vb_install.pdf
and the HTML help lists an
incorrect console command for starting Solaris. console modeInstead
of typing, install_solaris install -i console
, you
should type, Unix/Solaris[64]/Solaris/installer.bin -i
console
.
The last merged VBE Service Pack was VBE 6.5 P8.
Change Request |
Description |
Comments |
---|---|---|
6575 |
VB6.5 Timeout issues |
|
6095 |
C++ client always trying connect to virtual socket |
Need to set property vbroker.orb.firewallInit=true |
1071 |
[HV50494] Client can't be connected to Server which started newly. |
Need to set property vbroker.orb.sendLocate=true |
2560 |
[HV50572] The 'bank_dynamic' example cant be executed |
|
4426 |
[HV50409] ConnInfo not available within the context of a request invocation |
|
4427 |
[HV50510] Does the EventChannelFactory supported in C++? |
|
3975 |
[HV50666] The BAD_INV_ORDER exception is thrown at POA::destroy(), illegally |
|
988 |
property to set send and receive timeout |
|
1478 |
Is there any case raised InvalidPolicy or CORBA:NO_PERMISSION |
|
2813 |
[HV50606] The same problem as case:570660 isoccurredd on C++ |
|
1426 |
Server hang on invoking a corba object from within destructor of a servant |
|
3055 |
postinvoke_premarshal() method isn't called with SYNC_WITH_SERVER |
|
3560 |
[HV50634] The BAD_PARAM exception isn't raised on set_policy_overrides |
|
4422 |
[HV50708] Memory leak has occurredd in ServerRequest::set_exception(). |
|
4306 |
[HV50688] The factory of ValueBox is memory-leaked |
|
1506 |
[HV50545] The perform_work() called by several threads |
|
943 |
Compilation error in vtcimp.h - "VISRMutex" may be undeclared or ambiguous |
|
976 |
Poll error when setting a large value for garbageCollectTimer |
|
1106 |
Memory leak when osagent is not running |
|
1296 |
VBE: ORB Shutdown does not terminate server |
|
4308 |
[HV50690] The ValueBox is memory-leaked with '>>' operators of var types |
|
4270 |
[HV50685] The inout argument of ValueBox is memory-leak |
|
3599 |
[HV50637] Policies can't be added to an Object |
|
4122 |
[HV50676] The 'vbroker.ir.ior' option is not effective |
|
2811 |
[HV50603] DynEnum::set_as_ulong() with invalid value isn't thrown the exception |
|
4158 |
[HV50679] Memory leak occurs in Any::value() |
|
4706 |
OTS.exe restarting on user logout |
|
2091 |
VBE vshutdown works only if osagent is used with OTS |
|
3249 |
VB6 Borland Transaction Manager - Questions |
|
2832 |
[HV50609] The query is regarding the 'null string' property |
|
3356 |
VBC support of valuebase incomplete |
|
2579 |
The servant manager is called before receive_request_service_contexts |
|
4362 |
There is a logical error in how VisiNotify evaluates filters when applied to proxy consumers in combination with a consumer object that is created with the OR semantic |
|
2740 |
OTS props need good docs |
|
935 |
OTS Service will not start if osagent is not running |
|
2059 |
Releasing connection object after transaction committed will make server core dump and got the unexpected exception |
|
990 |
Minor code from CORBA::TIMEOUT exception should distinguish between conn_timeout, req_timeout or rt_timeout |
See the qos timeout example |
3964 |
Compiling idl2cpp created C-file results in Overloading ambiguity error |
|
6165 |
6165: A constant increase in memory consumption has been observed when reinitializing ORB and activating a CORBA object on the root POA multiple times in a row. |
|
1131 |
Memory growth in OTS |
|
Change Request |
Description |
Comments |
1096 |
The example code for C++ and Java examples under $VBROKERDIR/examples/vbe/basic/bank_naming is inconsistent |
|
1413 |
[HV50538] The TypeCode marshalling of Java byte[] is wrong. |
|
1574 |
Omission of cast for performance improvement |
|
2412 |
[HV50431] The servant manager is called before receive_request_service |
|
2511 |
[HV50582] Stub code is hard to see. |
|
2592 |
[HV50583] Compile error occurs in java2iiop -compile. |
|
2609 |
[HV50594] Server can hang when using ServantActivator. |
|
2702 |
[HV50443] all_replica() and all_replica_descs() does not work correctly |
|
2703 |
[HV50595] IORInfo.state() returns an invalid value.. |
|
2705 |
CPU 100% loop can occur under the memory shortage situation |
|
2814 |
[HV50608] The same problem as case:571090 has occurred for Java. (related to CR 2729) |
|
2837 |
[HV50604] Hang can occur in the client side. |
|
2879 |
[HV50612] An irep client cannot obtain the reference of irep. |
|
2880 |
[HV50613] Irep cannot be started for fatal error. |
|
2881 |
[HV50610] VBROKER_ADM/agentaddr file is not effective. |
|
2883 |
Bi-dir callback call hangs forever in server if client goes down |
|
3688 |
[HV50636] Server cannot be started when using ServantLocator. |
|
3692 |
[HV50639] Hang occurs in using GIOP framgent message. |
|
3788 |
[HV50642] Regarding threadMaxIdle of ThreadPool. |
|
3886 |
[HV50645] MARSHAL exception occurs when sending nested object. |
|
3890 |
Fail authentication when use remote JDataStore as backing store of Namin Service due to if jdsSvrPort > 0, it DO NOT pass userid, password to connection setup. |
|
3917 |
[HV50655] Regarding the description of ORBManager in Programmers reference |
|
3931 |
[HV50656] Regarding the unsupported options in the Programmer's Reference |
|
3934 |
[HV50640] Client can hang by an invalid server operation. |
|
3966 |
[HV50665] PortableInterceptor method is not called in a certain case. |
|
3991 |
Memory leak |
|
4013 |
[HV50670] OBJ_ADAPTER cannot be raised when using IORInterceptor |
|
4029 |
[HV50661] Client hangs when a Worker Thread cannot be created |
|
4125 |
[HV50678] BadKind exception - org.omg.CORBA.Any.insert_Value() for null |
|
4258 |
[HV50686] BAD_INV_ORDER is not thrown in establish_components(). |
|
4524 |
Doing RIR("RootPOA) requires license |
|
4530 |
VisiBroker warnings when building Jbuilder project |
|
6373 |
Java2IIOP generates wrong code for AliasManagerPOA.java |
|
6091 |
java.lang.Error: Invalid business method: is thrown when a local interface redeclares inherited methods |
|
4623 |
enhancement to nsutil and a new unbind_from_cluster API in CosNaming::NamingContextExt IDL. |
Vantive Number 36631 |
Change Request |
Description |
Comments |
1511 / 1519 |
QuoteCaoExplicitCallbackClient example does not work with shared\Java\Quite example |
|
Change Request |
Description |
Comments |
2696 |
[enhancement]allow cpp user to use SSL without CSIV2. |
|
3460 |
Gatekeeper wallet properties are incorrectly used |
|
4135 |
Password set to " or null for using non-encrypted private key |
|
4344 |
certificate wallet, alias should be all small letters. This should be documented |
|
6084 |
How do we get an SSL connection to take the hostname specified by vbroker.ce.iiop.host |
|
6098 |
Excessive memory usage when using SSL |
|
6321 |
Endless retry problem when the handshake fails and timeout is set |
|