Created On:  26 January 2011

Problem

  • Product Name: VisiBroker
  • Product Version: 6.5
  • Platform/OS version: All

OSfind tool encounters java.net.UnKnownHostException in Machine B and stop searching and returning the result of the objects/POAs registered with the osagent. Both Machine A & B are in the same domain. What is the root cause and how to resolve the issue?

The osfind results retrieved from both machines are shown below:

Osfind result from Machine A

osfind: Found 2 agents at port 14330
        HOST:
        HOST:
osfind: There are no OADs running on in your domain.
osfind: There are no Object Implementations registered with OADs.
osfind: Following are the list of Implementations started manually.
        HOST:
                REPOSITORY ID: *
                        POA NAME: /QuoteServer_poa
Osfind result from Machine B
osfind: Found 2 agents at port 14330
        HOST:
        HOST:
osfind: There are no OADs running on in your domain.
Exception in thread "main" org.omg.CORBA.INITIALIZE:
WARNING:
    The host "" could not be resolved by java.net.InetAddress.getByName.
    Please specify the "OSAGENT_ADDR" parameter in a different form (i.e., as a host name, not  as  numeric IP address).
    Exception: java.net.UnknownHostException: : vmcid: 0x0  minor code: 0  completed: No
        at com.inprise.vbroker.ds.DSAddr.(Unknown Source)
        at com.inprise.vbroker.ds.OSFind.allPoaImplementations(Unknown Source)
        at com.inprise.vbroker.ds.OSFind.allImplementations(Unknown Source)
        at com.inprise.vbroker.ds.OSFind.main(Unknown Source)

Resolution

The exception occurs because osfind is unable to resolve the host name of machine A into an IP address from Machine B. There are 2 possible scenarios which can lead to the exception.

1. Machine A is not configured to register with the DNS server. The /etc/resolv.conf is not set in Machine A. This is applicable only in Unix platforms.
2. There is no direct translation of host name of machine A into an IP address mapping in the network configuration for Machine B.

For the former, follow the setting below to configure Machine A to register its host name with the name server with the following domain.

Machine A: /etc/resolv.conf

domain name
server x.x.x.x

Since both Machine A & B shares similar DNS, machine B can issue a nslookup command to verify the host can be resolved. If the configuration is successful, the following result can be seen in Machine B.

nslookup www.microfocus.com
Server: 
Address: 
Non-authoritative answer:
Name:    www.microfocus.com
Addresses:  x.x.x.x
Aliases:  www.microfocus.com
For the latter, configure the /etc/hosts in Unix platforms or /system32/drivers/etc/hosts in Windows to include the host name & IP address mapping. It skips the DNS and allows Machine B to retrieve the IP address of Machine A.