• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 174
  • Last Modified:

Interface Repository

When I try to connect dynamically to a CORBA server I get the following error:

'Could not perform CORBA Dispatch, no interface respository found.'

I figure I havent set up the Interface Respository properly...could someone please walk me through this.
0
fiinfo
Asked:
fiinfo
  • 7
  • 3
1 Solution
 
simonetCommented:
Is at least one agent started on your network? Remember that you need the VisiBroker agents in order to work with Corba.

Alex
0
 
fiinfoAuthor Commented:
Yes the Visibroker SmartAgent is running
0
 
fiinfoAuthor Commented:
In my client I have 2 procedures attached to buttons: 1 to demonstrate static binding, the other to demonstrate
dynamic binding. The static binding works, the dynamic does not.


procedure TForm1.btDynamicClick(Sender: TObject);
var
   DynamicFactory: TAny;
   DynamicObject: TAny;
begin
  DynamicFactory := Orb.Bind('IDL:DynamicCorba/dynamicCorbaFactory:1.0');
  DynamicObject := DynamicFactory.CreateInstance('DynamicObject');
  Showmessage(DynamicObject.GetDescription);
end;

procedure TForm1.btStaticClick(Sender: TObject);
var
  FInstance: IdynamicCorba;
begin
  FInstance := TdynamicCorbaCorbaFactory.CreateInstance('Random String');
  showmessage(FInstance.GetDescription);
end;
0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

 
EpsylonCommented:
You have to register Corba objects before you can use them.

Run the Object Activation Daemon and Smart Agent.
Use 'irep' to register the inteface repository (.IDL) of the object
and use 'oadutil' to register the object.

Read the Delphi help on these commands. It's too much too explain it all in detail here.
0
 
fiinfoAuthor Commented:
I ran the OAD, and Smart Agent, registered the .idl with 'irep', used 'oadutil' to register the object
(oadutil reg -r IDL:DynamicCorba/dynamicCorbaFactory:1.0 -o TdynamicCorbaFactory -cpp c:delphiprojects/dynamicbinding/DynamicCorba.exe) and still get the same error. If a server is not running, one is created and i get the same error.

This is the .idl generated by Type Library:

module DynamicCorba {
  interface IdynamicCorba {
    wstring GetDescription();
    wstring GetName();
  };

  interface DynamicCorba_Factory {
    ::DynamicCorba::IdynamicCorba    CreateInstance(in string InstanceName);
  };
};

0
 
EpsylonCommented:
Does Smart Finder find any objects?
0
 
fiinfoAuthor Commented:
Yes, it finds my object 'dynamicCorba' and my Respository
0
 
EpsylonCommented:
What happens when you use the CorbaBind function instead of Orb.Bind:

  DynamicFactory:= CorbaBind('IDL:DynamicCorba/dynamicCorbaFactory:1.0');
0
 
fiinfoAuthor Commented:
Yes, it finds my object 'dynamicCorba' and my Respository
0
 
fiinfoAuthor Commented:
Same error.

I think I will try starting over again.
0
 
fiinfoAuthor Commented:
OK...I redid an example and lo and behold, it works...who knows what was wrong, thanks for your help Epsylon
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

  • 7
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now