Problem:
- Product Name: VisiBroker C
- Product Version: 6.0 and above
- Product Component: BOA
- Platform/OS Version: All
When migrating from VBC 3.x to VBC 6.x it has been observed that BOA based client applications that use callback objects will not start without a license. This is unexpected since documentation suggests that clients do no need a license.
Resolution:
In addition to the instructions below users should also apply the latest VisiBroker patch which addresses a problem in the VisiBroker 6.0 base libraries which imposed server/client license restrictions that were incorrect.
In the VisiBroker installation home directory there should be a file called license.txt. The following taken from that file and it describes the conditions required for the application to be considered a client.
A Client shall not have POA (Portable Object Adapter) policies with the any of the following values:
- LifespanPolicyValue.Persistent;
- RequestProcessingPolicyValue.USE_SERVANT_MANAGER;
- RequestProcessingPolicyValue.USE_DEFAULT_SERVANT;
In VisiBroker 4.x and above BOA is implemented as a wrapper. The code generated for IDL is simply POA code wrapped to look like BOA stub/skeleton code. To do this a POA is created that mimics the standard BOA behavior. That POA has a PERSISTENT lifespan policy which means that it would require a server license. In general callback objects should be TRANSIENT since they will only be valid for the lifetime of the application that hosts them.
The recommendation is that users should migrate to POA and use the rootPOA to activate callback objects. The "boa\\boa2poa" example (in the VisiBroker examples directory) gives a simple example of how to activate objects using a POA and the differences between POA and BOA.
For VBC clients there is a workaround. It is possible to create a TRANSIENT servant object in VBC using the following:
Add the following to client code immediately after calling BOA_init:
// Set local registration scope
boa->scope(CORBA::BOA::SCOPE_LOCAL);
This should reset the default behavior to create transient objects which can be verified by dumping the IOR to a file.
Support Case: 589753
#license
#Security
#POA
#NO_PERMISSION
#VisiBroker
#BOA




