链接选项部件的 callLink 元素的属性
type 指定调用类型。选择下列其中一个值:
- ejbCall
- 指示生成的 Java™ 程序或包装器将通过使用 EJB 会话 bean 来实现程序调用,并且该 EJB 会话
bean 将访问属性 pgmName 中标识的程序。在下列任何一种情况下,值 ejbCall 都适用:
- 正在生成 Java
包装器,并且该包装器通过 EJB 会话 bean 来调用该程序。在这种情况下,属性 pgmName 是指从包装器调用的程序,并且使用 ejbCall 将导致生成 EJB 会话 bean。
- 正在生成 Java 程序,该程序通过 EJB 会话 bean 来调用生成的 程序。在这种情况下,属性 pgmName 是指被调用程序,并且不生成 EJB 会话 bean。
在任何一种情况下,如果正在使用 EJB 会话 bean,则只要需要生成 EJB 会话 bean,就必须生成 Java 包装器。
必须将生成的会话 bean 部署到企业 Java 服务器上,并且下列其中一种情况必须成立:
- 用来查找 EJB 会话 bean 的名称服务器与调用该会话 bean 的代码位于同一机器上;或者
- 属性 providerURL 标识名称服务器所在的位置。
如果您希望使用 EJB 会话 bean,则必须使用链接选项部件来生成调用程序或包装器,在该链接选项部件中,被调用程序的 type 属性的值为 ejbCall。在部署时不能够作出使用会话 bean 的决定。但是,如果将属性 remoteBind 设置为 RUNTIME,则可以在部署时决定 EJB 会话 bean 如何访问生成程序,尽管在生成时作出此决定更有效。
- localCall
- 指定调用不使用 EGL 中间件。在这种情况下,被调用程序与调用程序在同一进程中。
localCall 是缺省值。
- remoteCall
- 指定调用使用 EGL 中间件,它将 12 个字节添加至传递的数据的结尾。这些字节允许调用程序从被调用程序接收返回值。
如果调用程序是 Java 代码,则通信是由属性 remoteComType 中指定的协议处理的;协议选项指示被调用程序是在同一线程中还是另一个线程中。
如果进行调用时传递了变长记录,则下列描述是适用的:
- 将为该记录保留空间,并且该空间的长度就是对该记录指定的最大长度
- 如果 callLink 属性 type 的值为 remoteCall 或 ejbCall,则变长项(如果有的话)必须位于记录内