VisiBroker for C 8.x Shared Library Repackaging

0 Likes

Problem:

VisiBroker for C 8.x Shared Library Repackaging

Resolution:

  • Product Name: VisiBroker
  • Product Version: 8.x
  • Platform/OS Version: All
Problem Description

Previous versions of VisiBroker for C provide one monolithic ORB library with all the components included and linked to the application.

VisiBroker 8.x for C libraries have been re-organized to provide option for users to minimize disk space requirement during deployment of VisiBroker components which will be selected on demand during linking or using of certain properties.

With this change, however, VisiBroker 8.x for C still includes from the list of libraries the one monolithic ORB library for easier migration.

Solution

The list of components can be found at http://techpubs.borland.com/am/visibroker/v80/en/VBroker_80_ReleaseNotes.html#Installation changes.

The six component libraries are the Interface Repository, DSUser, Server manager, Dynamic Any, Firewall, and Location service. These component libraries can be selectively linked with the application or when a particular property is used. For example, using vbroker.orb.enableServerManager=true will require linking to or loading of Server manager library.

Below is a sample listing of the 6 libraries compiled in Solaris 10 64-bit and Windows 32-bit:
 
bash-3.00$ ls -la *ir* *dsuser* *srvrmgr* *dynany* *fw* *locsvc*
lrwxrwxrwx 1 techsup root 20 Feb 9 21:29 libdsuser64_r.so -> libdsuser64_r.so.8.0
-rwxrwxr-x 1 techsup root 769856 Feb 9 21:29 libdsuser64_r.so.8.0
lrwxrwxrwx 1 techsup root 20 Feb 9 21:29 libdynany64_r.so -> libdynany64_r.so.8.0
-rwxrwxr-x 1 techsup root 546608 Feb 9 21:29 libdynany64_r.so.8.0
lrwxrwxrwx 1 techsup root 16 Feb 9 21:29 libfw64_r.so -> libfw64_r.so.8.0
-rwxrwxr-x 1 techsup root 391592 Feb 9 21:29 libfw64_r.so.8.0
lrwxrwxrwx 1 techsup root 16 Feb 9 21:29 libir64_r.so -> libir64_r.so.8.0
-rwxrwxr-x 1 techsup root 1598488 Feb 9 21:29 libir64_r.so.8.0
lrwxrwxrwx 1 techsup root 20 Feb 9 21:29 liblocsvc64_r.so -> liblocsvc64_r.so.8.0
-rwxrwxr-x 1 techsup root 306168 Feb 9 21:29 liblocsvc64_r.so.8.0
lrwxrwxrwx 1 techsup root 21 Feb 9 21:29 libsrvrmgr64_r.so -> libsrvrmgr64_r.so.8.0
-rwxrwxr-x 1 techsup root 989672 Feb 9 21:29 libsrvrmgr64_r.so.8.0
bash-3.00$

C:\Borland\VisiBroker8\lib>dir/S *ir* *dsuser* *srvrmgr* *dynany* *fw* *locsvc*

Directory of C:\Borland\VisiBroker8\lib

11/05/2008 05:39 PM 1,638,484 ir_r.lib
11/05/2008 05:39 PM 97,092 dsuser_r.lib
11/05/2008 05:37 PM 352,158 srvrmgr_r.lib
11/05/2008 05:39 PM 251,876 dynany_r.lib
11/05/2008 05:37 PM 107,070 fw_r.lib
11/05/2008 05:39 PM 178,684 locsvc_r.lib
6 File(s) 2,625,364 bytes


Tip: Do not confuse "Complete ORB wrapper" with "Core ORB".

Core ORB is a mandatory library (as well as *vdlog[64]_r.[so|lib], *vport[64]_r.[so|lib]) that needs to be linked with the user application.

[UNIX] -rwxrwxr-x 1 techsup root 9725872 Feb 9 21:29 liborbcore64_r.so.8.0
[Win] 11/05/2008 05:39 PM 6,729,588 orbcore_r.lib


The Complete ORB wrapper (orb) on the other hand, is an archive for supported Unix platforms or a one monolithic Object File Library for Windows of all the 6 component libraries, plus the Core ORB. It is maintained in Version 8.x for easier migration (i.e. no need to change the Makefile).

[UNIX] -rwxrwxr-x 1 techsup root 15508416 Feb 9 21:29 liborb64_r.a
[Win] 11/05/2008 05:39 PM 9,246,834 orb_r.lib


Listing of liborb64_r.a archive:

bash-3.00$ ar tv liborb64_r.a
rwxrwxr-x 403/ 8889725872 Jun 15 20:59 2007 liborbcore64_r.so.8.0
rwxrwxr-x 403/ 888 769856 Jun 15 20:59 2007 libdsuser64_r.so.8.0
rwxrwxr-x 403/ 888 391592 Jun 15 21:09 2007 libfw64_r.so.8.0
rwxrwxr-x 403/ 888 989672 Jun 15 21:06 2007 libsrvrmgr64_r.so.8.0
rwxrwxr-x 403/ 8881598488 Jun 15 20:59 2007 libir64_r.so.8.0
rwxrwxr-x 403/ 888 546608 Jun 15 20:59 2007 libdynany64_r.so.8.0
rwxrwxr-x 403/ 888 306168 Jun 15 20:59 2007 liblocsvc64_r.so.8.0


Note that the Complete ORB wrapper (orb) library has the biggest footprint since it includes the 6 components, plus the Core ORB.

Options when migrating to VisiBroker 8.x

  • Option 1: Linking with the Complete ORB wrapper (orb) library
User application objects can be linked with the libraries *orb[64]_r.[a|lib], *vdlog[64]_r.[so|lib], *vport[64]_r.[so|lib] by using the LIBORB environment variable in stdmk. This is the default used if using the readily available stdmk for UNIX under /examples/vbroker, (VBLIB for Windows" stdmk_nt).

When migrating to VB8.x and when not changing the Makefile (which worked on previous VisiBroker versions), linker will pick *orb[64]_r.[a|lib].

  • Option 2: Linking with the Core ORB library, plus selected components
User application objects can be linked with the libraries Core ORB (*orbcore[64]_r.[so|lib], *vdlog[64]_r.[so|lib], *vport[64]_r.[so|lib])by using the LIBORBCORE environment variable in stdmk for UNIX (VBORBCORELIB for Windows' stdmk_nt).You may need to add other selected components to this environment variable.

Related Topics:

  1. VisiBroker 8.0 Release notes: http://techpubs.borland.com/am/visibroker/v80/en/VBroker_80_ReleaseNotes.html
  2. Minimum Visibroker Installation needed to run a C Client or a basic C Server: http://community.microfocus.com/microfocus/corba/visibroker_-_world_class_middleware/w/knowledge_base/13659.minimum-visibroker-installation-needed-to-run-a-c-client-or-a-basic-c-server.aspx
Comment List
Related
Recommended