请问大家在corba分布式数据库应用开发中,有使用过irep.exe的吗?我觉得这个工具实在是太TMD了,真的,太不好用了!!!
问题:
1。我想使用控制台方式运行,执行irep -c myirep mycorba.idl命令,却永远无法启动控制台方式,永远只是命令窗口下显示;
2。执行了irep -c myirep mycorba.idl命令后,屏幕总是显示一堆文字,似乎是提示出现异常的,可以当我执行osfind.exe,却发现已经打开corba接口对象了,也就是说该irep命令成功运行了;
3。我将irep.exe从borland\vbroker\bin目录下拷贝到别的目录,则无法在新目录下启动irep,如果将整个/bin目录(主要是想将里面的几个dll与irep放到一起)拷贝到新目录,则在新目录下可以运行irep里,但却无法打开我的corba接口对象库请教各位如何解决这些问题呢?我知道一般大家都会采用早期绑定和oad自动激活,而很少采用这个irep,但是,到底这个工具该如何用呢???请教各位了,问题解决一定送分,拜托!

解决方案 »

  1.   

    up
    up
    up
    up
    up
    up
    up
      

  2.   

    提供一些资料:1.激活corba服务器
      
    用delphi5提供的向导创建corba服务器时,向导会自动生成相关代码,使服务器程序启动,并告诉orb(通过object adaptor)它有哪些接口能够被客户调用。
    一般,corba服务器是人工启动的,也可以通过oad(object activation daemon)让corba服务器根据客户是否调用来启动,要使用oad,首先要用oad注册coraba对象,注册好后,oad就在implementation repository 中建立corba对象预服务器程序的联系,一旦建立了联系,oad就被认为是服务器程序的代理,以后当一个客户请求corba对象时,orb就与oad联系,好像oad是服务器程序一样,oad会把客户的请求引导给真正的服务器。2.在接口库中注册接口如果使客户程序对服务器接口的调用在运行期动态确定,就要在接口库(interface repository)中注册服务器的接口,如果要使服务器程序能够应客户程序的请求自动激活(如果还没有运行的话),服务器程序就必须用oad注册。
    在接口库中注册接口的好处是,客户程序可以按“迟后联编”的方式访问服务器的接口,即使客户程序不是用delphi5编写的也不例外。
    要在接口库中注册接口,需要指定一个.idl 文件:
    irep [-console] irname [file.idl]
    这条命令将运行interface repository 服务器,其中,irep是位于c:\program files\borland\vbroker\bin目录下的一个实用程序;【-console]参数表示让irep程序以控制台方式运行,而不是以窗口方式运行;irname参数用于指定接口库的名称,[file.idl]参数用于指定一个接口库文件,如果没有指定这个文件,interface repository服务器启动时时空的。
    在interface repository 服务器正在运行的情况下,可以使用irep程序的file菜单的load命令来打开一个idl文件。注意:所指定的idl文件中不能包含已注册的接口。否则,该idl文件将被拒绝接受。在interface repository 服务器正在运行的情况下,还可以用一个叫idl2ir的实用程序在接口库中注册接口,如:idl2ir [-ir irname] {-replace} file.idl,其中,[-ir irname]参数指定一个接口库名称,如果这个参数空着,接口库由smart agent返回,file.idl指定一个idl文件,{-replace}参数表示如果所指定的idl文件中包含已注册的接口,就用新的接口替换旧的接口。如果没有用{-replace}参数,则所指定的 idl文件中不能包含已注册的接口,否则,该idl文件将被拒绝接受。