| 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