Skip to main content
Summary
Article Number 30325
Environment The server IOR is valid The server is correctly registered at the Orbix 3 daemon Orbix 6 client to an Orbix 3 server by using the Java daemon All Supported Operating Systems Orbix 3.x Orbix 6.x
Question/Problem Description Cannot invoke from Orbix 6 client to Orbix 3 server. The client raises an OBJECT_NOT_EXIST error if the Orbix 3 Java daemon is used.

The following error in an Orbix 3 Java daemon is raised when an Orbix 6 client tries to invoke against an Orbix 3 server:
[ _CORBA.Orbix: Exception in ServerLoader.load: org.omg.CORBA.NO_PERMISSION: No permission for attempted op.
You are denied INVOKE rights to server `IT_daemon'
(Use the 'chmodit' command to change your rights to the server) minor code: 10121 completed: No ]

The the launch and invoke permissions for the Orbix 3 server are set correctly (as described in solution: P149337).
Why are invoke rights on the "IT_daemon" server still missing?
Clarifying Information
Error Message
Defect/Enhancement Number 12000686
Cause This error
You are denied INVOKE rights to server `IT_daemon'
should only show up when using the Java daemon (orbixdj) as opposed to the C daemon (orbixd). The reason this error happens is that an Orbix 6 client by default always sends a LOCATE_REQUEST message before sending the actual REQUEST message. The LOCATE_REQUEST is generally answered by a LOCATE_REPLY message from the server confirming that the client talks to the intended server.
As a note aside, a LOCATE_REPLY can also carry a LOCATION_FORWARD message that has updated details about the real server's location, that a client can then use to contact the real server.

The Orbix 3 Java daemon however does not deal with LOCATE_REQUEST messages correctly.
Resolution Until the bug is fixed, there are two possible solutions:

1. Switch to the Orbix 3 C daemon instead of using the Java daemon. The C daemon does correctly handle LOCATE_REQUEST messages.
It is also the recommended daemon for any production system as it supports more features.

2. If you need to stay on the Orbix 3 Java daemon, then instruct the Orbix 6 client not to send a LOCATE_REQUEST message by setting the following Orbix 6 configuration variable in the ORB scope that is used by your client:
policies:giop:interop_policy:send_locate_request = "false";

Workaround
Notes References to Written Documentation:

 

 

“Related KB Article(s):”

P149337: "Trying to invoke on Orbix 3 server from Orbix 6 client raises OBJECT_NOT_EXIST error in client"

Attachment
Created date: 24 March 2012
Last Modified: 13 February 2013
Last Published: 12 May 2012
First Published date: 24 March 2012

#KnowledgeDocs
#Orbix