Changes since 2.7.1 |
The last release was 2.7.1 (12th March 1999).
Source code and binary distributions are available from our Web pages . NOTE!!! Please read the rest note about the incompatible changes in this release. Changes since 2.7.1CORBA compliant testingThis version has passed the Open Group CORBA 2.1 compliant testsuite. The CORBA brand from the Open Group has been awarded to omniORB2 with this version.Updated to CORBA 2.3 mappingSummary of changes:
Incompatible changes to the extraction of values from an Any:Since 2.8.0, omniORB2 has been updated to CORBA 2.3. In order to comply with the 2.3 specification, it is necessary to change the semantics of the extraction of string, object reference and typecode from an Any. The memory of the extracted values of these types now belong to the Any value. The storage is freed when the Any value is deallocated. Previously the extracted value is a copy and the application is responsible to release the storage. It is not possible to detect the old usage at compile time. In particular, unmodified code that uses the affected Any extraction operators would most certainly cause runtime errors to occur. To smooth the transition from the old usage to the new, an ORB configuration variable omniORB::omniORB_27_CompatibleAnyExtraction can be set to revert the any extraction operators to the old semantics.For example: An application written to the old usage looks like this: char* str; CORBA::Any v = ...; v >>= str; ... CORBA::string_free(str); // Must free the returned stringThe new usage looks like this: const char* str; CORBA::Any v = ...; v >>= str; // No need to free str as the storage is still owned by v.The same applied to object reference and typecodes. However, the CORBA::Any::operator>>=(to_object) still returns a copy of the object reference and should be released by the application. IDL stubs must be regenerated with the new IDL compiler to be compatible with the runtime library.The current shared runtime library versions are:On various unices:
New command line options and ORB configuration variables:
New omniidl2 options:
Interface Repository.The client side support is included on all platforms. A new keyword "INTERFACE_REPOSITORY" can be used in omniORB.cfg to specify the IOR of the interface repository to use.However, to use the client support, application code should define ENABLE_CLIENT_IR_SUPPORT so that the stub header is imported. Connection managementConnection management has been extended to both scan for idle connections and stuck remote calls. It is now possible to define a maximum time a remote call is allowed to progress. When this period is exceeded, a COMM_FAILURE would be raised. This eliminates the possibility that a remote call is stuck indefinitely waiting for a reply to come from a tcp connection that is dead but has not been close down by the OS.New omniORB APIs to control their behavior are:
New -ORB options to control from the command line:
Refer to omniORB.h for their usage. New member function CORBA::ORB::NP_destroy() is provided.This member should be called by the application to cleanup the ORB before exit.In particular, applications written for Windows 95/98 or using the ORB runtime DLL with Visual Basic should call this function (as well as CORBA::BOA::destory()) to ensure all internal threads are cleaned up before the runtime DLL is unloaded. To summarise, the following call sequence should be used to exit: CORBA::ORB_ptr orb; CORBA::BOA_ptr boa; .... boa->destory(); orb->NP_destory(); New platformsThe platform files for Irix 6.4 and 6.5 has been updated to perform program linkage in the right order.Support for HPUX 11.00, SCO Unixware 7 and FreeBSD 3.2 have been added. The omniORB2 user guide has been updated.Bugs fixed.The complete list of bugs reported and fixed can be found here.All the bugs listed have been fixed. Notable fixes are:
|
||
For comments, feedback, etc, please see the 'Keeping in touch' page. |