第1章 概述 1
1.1 最新特性 1
1.2 手册约定 2
1.3 查找补充资料 3
1.4 联系Inprise公司的开发者支持 3
上篇 VisiBroker for Java程序员指南 7
第一部分 基本概念 7
第2章 理解CORBA模型 7
2.1 什么是CORBA 7
2.2 什么是VisiBroker 8
2.3 VisiBroker for Java的特性 8
2.3.1 VisiBroker智能代理体系结构 8
2.3.2 利用位置服务增强对象查找 8
2.3.3 对对象实现和对象激活的支持 9
2.3.4 健壮的线程与连接管理 9
2.3.5 IDL编译器 9
2.3.6 使用DII和DSI动态调用 9
2.3.7 接口库与实现库 9
2.3.8 服务端可移植性 10
2.3.9 用拦截器与对象包装器定制ORB 10
2.3.10 命名服务中的后备存储 10
2.3.11 Web命名 10
2.3.12 不用IDL定义接口 10
2.3.13 Gatekeeper 10
2.4 VisiBroker遵循CORBA规范 11
2.5 VisiBroker开发环境 11
2.6 Java开发环境 11
2.6.1 Java运行环境 12
2.6.2 VisiBroker的要求 12
2.6.3 支持Java的Web浏览器 12
2.7 与VisiBroker for C++的互操作性 12
2.8 与其他ORB产品的互操作性 13
2.9 从IDL到Java的映射 13
第3章 环境设置 14
3.1 设置PATH环境变量 14
3.1.1 在Windows平台修改PATH 14
3.1.2 在Windows NT平台修改PATH 14
3.1.3 在UNIX平台修改PATH 14
3.2 CLASSPATH 14
3.3 设置VBROKER_ADM环境变量 15
3.3.1 在Windows平台设置VBROKER_ADM 15
3.3.2 在UNIX平台设置VBROKER_ADM 15
3.4 设置OSAGENT_PORT环境变量 15
3.5 日志输出 16
第4章 用VisiBroker开发一个应用程序例子 17
4.1 开发过程 17
4.2 步骤1:定义对象接口 17
4.3 步骤2:生成客户程序的桩与服务程序的servant 18
4.4 步骤3:实现客户程序 20
4.4.1 Client.java 20
4.4.2 AccountManagerHelper.java 21
4.5 步骤4:实现服务程序 21
4.6 步骤5:建立例子 22
4.7 步骤6:启动服务程序并运行例子 22
4.7.1 启动智能代理 23
4.7.2 启动服务程序 23
4.7.3 运行客户程序 23
4.8 用VisiBroker调配应用程序 23
第5章 处理异常 27
5.1 CORBA模型中的异常 27
5.2 系统异常 27
5.2.1 获取结束状态 28
5.2.2 捕获系统异常 28
5.2.3 将异常向下传给系统异常 29
5.2.4 捕获特定类型的系统异常 30
5.3 用户异常 30
5.3.1 定义用户异常 30
5.3.2 修改对象以引发异常 31
5.3.3 捕获用户异常 31
5.3.4 添加用户异常的域 32
第二部分 服务程序的概念 33
第6章 服务程序基础 33
6.1 概述 33
6.2 初始化ORB 33
6.3 创建POA 33
6.3.1 获取根POA的一个引用 34
6.3.2 创建子POA 34
6.3.3 实现servant的方法 35
6.3.4 激活POA 36
6.4 激活对象 36
6.5 等待客户程序请求 36
6.6 完整的例子 37
第7章 使用POA 38
7.1 什么是可移植对象适配器 38
7.1.1 POA的术语 38
7.1.2 创建与使用POA的步骤 39
7.2 POA策略 39
7.2.1 线程策略 39
7.2.2 生命期策略 40
7.2.3 对象ID唯一性策略 40
7.2.4 ID指派策略 40
7.2.5 servant保留策略 40
7.2.6 请求处理策略 40
7.2.7 隐式激活策略 41
7.2.8 绑定支持策略 41
7.3 创建POA 41
7.3.1 POA命名约定 41
7.3.2 获取根POA 42
7.3.3 设置POA属性 42
7.3.4 创建并激活POA 42
7.4 激活对象 43
7.4.1 显式激活对象 43
7.4.2 按要求激活对象 44
7.4.3 隐式激活对象 44
7.4.4 用缺省servant激活 44
7.4.5 冻结对象 45
7.5 使用servant与servant管理器 46
7.5.1 servant激活器ServantActivators 47
7.5.2 servant定位器ServantLocators 49
7.6 使用POA管理器管理POA 51
7.6.1 取当前状态 52
7.6.2 持有状态 52
7.6.3 活动状态 52
7.6.4 丢弃状态 53
7.6.5 非活动状态 53
7.7 设置监听和分派的属性 54
7.7.1 设置服务程序引擎的属性 54
7.7.2 设置服务程序连接管理器的属性 55
7.7.3 何时使用这些属性 56
7.8 适配器激活器 57
7.9 处理请求 58
第8章 管理线程与连接 59
8.1 使用VisiBroker的线程 59
8.2 VisiBroker提供的线程策略 59
8.3 线程缓冲池策略 59
8.4 每会话线程策略 62
8.5 VisiBroker提供的连接管理 64
8.6 设置分派策略和属性 64
8.6.1 线程缓冲池策略 65
8.6.2 每会话线程策略 65
8.6.3 编码注意事项 65
第9章 使用纽带机制 66
9.1 纽带机制如何工作 66
9.2 示例程序 66
9.2.1 使用纽带机制示例程序的位置 66
9.2.2 对Server类的改动 66
9.2.3 对AccountManager类的改动 67
9.2.4 对Account类的改动 68
9.2.5 编译纽带例子 68
第三部分 客户程序的概念 69
第10章 客户程序基础 69
10.1 初始化ORB 69
10.2 绑定到对象 69
10.3 调用一个对象的操作 70
10.4 操纵对象引用 70
10.4.1 将引用转换为字符串 70
10.4.2 获取对象与接口名字 71
10.4.3 确定对象引用的类型 71
10.4.4 确定被绑定对象的位置与状态 72
10.4.5 窄化对象引用 72
10.4.6 宽化对象引用 72
10.5 使用服务质量 73
10.5.1 理解服务质量 73
10.5.2 QoS接口 73
10.5.3 QoS实例 76
第四部分 配置与管理 77
第11章 使用VisiBroker控制台 77
11.1 什么是VisiBroker控制台 77
11.2 启动VisiBroker控制台 78
11.3 配置控制台 78
11.4 VisiBroker控制台导航 80
11.4.1 菜单栏 80
11.4.2 工具栏 80
11.4.3 状态栏 80
11.4.4 下拉式菜单或上下文菜单 80
11.4.5 导航面板 80
11.4.6 内容面板 81
11.5 支持的ORB服务 81
11.5.1 位置服务 81
11.5.2 命名服务 81
11.5.3 接口库 81
11.5.4 实现库 81
11.5.5 服务程序管理器 81
11.5.6 Gatekeeper 82
第12章 使用ORB服务浏览器 83
12.1 简介 83
12.2 位置服务浏览器 83
12.2.1 访问位置服务浏览器 83
12.2.2 刷新活动对象列表 84
12.3 命名服务浏览器 84
12.3.1 访问命名服务 85
12.3.2 浏览命名服务 85
12.3.3 浏览VisiBroker命名服务的簇 86
12.4 实现库浏览器 86
12.5 接口库浏览器 87
12.5.1 查看接口库 87
12.5.2 访问接口库 88
12.5.3 浏览接口库 89
第13章 使用服务程序管理器 90
13.1 什么是服务程序管理器 90
13.1.1 查看顶层容器 90
13.1.2 服务程序管理器的浏览器 90
13.1.3 使用VisiBroker 4.0的服务程序例子 90
13.1.4 设置服务程序管理器的安全性 92
13.2 使用服务程序管理器的浏览器 92
13.2.1 查看服务程序的内容 92
13.2.2 启用服务程序 93
13.2.3 调用方法 93
13.2.4 设置属性 94
第14章 设置属性 98
14.1 概述 98
14.2 属性文件 98
14.3 环境变量 99
14.4 通过命令行和HTML设置属性 100
14.5 VisiBroker for Java属性 100
第五部分 工具与服务 101
第15章 使用IDL 101
15.1 IDL简介 101
15.2 IDL编译器如何生成代码 101
15.3 生成的代码 102
15.3.1 _<interface name>Stub.java 102
15.3.2 <interface name>.java 102
15.3.3 <interface name>Helper.java 102
15.3.4 <interface name>Holder.java 104
15.3.5 <interface name>Operations.java 104
15.3.6 <interface name>POA.java 104
15.3.7 <interface name>POATie.java 105
15.4 在IDL中定义接口的属性 106
15.5 指定无返回值的单向方法 106
15.6 在IDL中指定继承其他接口的接口 106
第16章 使用智能代理 108
16.1 什么是智能代理 108
16.1.1 查找智能代理 108
16.1.2 通过智能代理协作查找对象 108
16.1.3 与OAD协作以连接对象 108
16.1.4 启动智能代理 109
16.1.5 保证智能代理的可用性 109
16.2 使用ORB域 110
16.3 连接不同本地网络中的智能代理 111
16.4 使用多重初始地址的主机 112
16.5 使用点对点通信 114
16.5.1 以运行时参数指定主机 114
16.5.2 用环境变量指定IP地址 115
16.5.3 用agentaddr文件指定主机 115
16.6 保证对象的可用性 115
16.6.1 调用无状态对象的方法 115
16.6.2 提高保持状态对象的容错性 116
16.6.3 复制注册到OAD的对象 116
16.7 在主机间迁移对象 116
16.7.1 迁移保持状态的对象 116
16.7.2 迁移实例化的对象 116
16.7.3 迁移注册到OAD的对象 117
16.8 报告所有对象与服务 117
16.9 绑定到对象 117
第17章 使用位置服务 118
17.1 什么是位置服务 118
17.2 位置服务组件 119
17.2.1 位置服务代理 119
17.2.2 触发器 121
17.3 向代理查询 122
17.3.1 查找接口的所有实例 122
17.3.2 查找智能代理知道的所有信息 123
17.4 编写并注册触发器处理程序 125
第18章 使用命名服务 128
18.1 概述 128
18.2 理解名字空间 129
18.2.1 命名上下文对象 129
18.2.2 命名上下文工厂对象 130
18.2.3 Name和NameComponent 130
18.2.4 名字解析 131
18.3 运行命名服务 131
18.3.1 安装命名服务 132
18.3.2 配置命名服务 132
18.3.3 启动命名服务 132
18.4 引导命名服务 133
18.4.1 调用resolve_initial_references方法 133
18.4.2 使用-DSVCnameroot选项 133
18.4.3 使用-DORBInitRef选项 133
18.4.4 使用-DORBDefaultRef选项 134
18.5 NamingContext 134
18.6 NamingContextExt 135
18.7 缺省命名上下文 135
18.8 可接插的后备存储 136
18.8.1 后备存储的类型 136
18.8.2 配置与使用 137
18.9 簇 139
18.9.1 簇的标准 139
18.9.2 Cluster和ClusterManager接口 140
18.9.3 创建一个簇 141
18.9.4 负载均衡 142
18.10 失败转移 142
18.11 Java的import语句 143
18.12 程序样例 143
第19章 使用事件服务 146
19.1 概述 146
19.1.1 消费者和供应商的代理 147
19.1.2 OMG公共对象服务规范 147
19.2 通信模型 148
19.2.1 外推模型 148
19.2.2 回拉模型 149
19.3 使用事件信道 150
19.4 外推型供应商和消费者的例子 151
19.4.1 运行外推模型的例子 151
19.4.2 运行回拉模型的例子 152
19.4.3 PullSupply 152
19.4.4 运行PullSupply 152
19.4.5 PullConsume 154
19.4.6 运行PullConsume 154
19.5 启动事件服务 156
19.6 进程内事件信道 157
19.7 Java的import语句 158
19.8 接口参考资料 158
19.8.1 EventChannel 159
19.8.2 EventLibrary 159
19.8.3 ConsumerAdmin 160
19.8.4 SupplierAdmin 160
19.8.5 ProxyPullConsumer 160
19.8.6 ProxyPushConsumer 161
19.8.7 ProxyPullSupplier 161
19.8.8 ProxyPushSupplier 161
19.8.9 PullConsumer 162
19.8.10 PushConsumer 162
19.8.11 PullSupplier 163
19.8.12 PushSupplier 163
第20章 使用对象激活监控进程 165
20.1 对象和服务程序的自动激活 165
20.1.1 查找实现库数据 165
20.1.2 激活服务程序 165
20.2 启动对象激活监控进程 166
20.2.1 在Windows平台启动对象激活监控进程 166
20.2.2 在UNIX平台启动对象激活监控进程 166
20.3 使用对象激活监控进程工具 167
20.3.1 将接口名字转换为库ID 167
20.3.2 使用oadutil list列出对象 167
20.3.3 使用oadutil reg注册对象 168
20.3.4 区分一个对象的多个实例 171
20.3.5 使用CreationImplDef类设置激活属性 171
20.3.6 动态改变ORB实现 171
20.3.7 使用OAD∷reg_implementation进行OAD注册 172
20.3.8 创建和注册对象的例子 173
20.3.9 由OAD传递的参数 173
20.4 注销对象 174
20.4.1 使用oadutil工具注销对象 174
20.4.2 使用OAD操作注销对象 175
20.4.3 显示实现库的内容 175
20.5 OAD的IDL接口 175
第21章 使用接口库 177
21.1 什么是接口库 177
21.1.1 接口库包含什么 177
21.1.2 可有多少个接口库 178
21.2 使用irep创建和浏览接口库 178
21.2.1 使用irep创建接口库 178
21.2.2 浏览接口库中的内容 179
21.3 使用idl2ir更新接口库 179
21.4 理解接口库的结构 180
21.4.1 标识接口库中的对象 181
21.4.2 存储在接口库中的对象类型 181
21.4.3 继承的接口 182
21.5 访问接口库 182
21.6 例子程序 183
第六部分 高级概念 185
第22章 使用动态调用接口 185
22.1 什么是动态调用接口 185
22.1.1 DII主要概念介绍 185
22.1.2 动态调用对象操作的步骤 188
22.1.3 查找使用DII的例子程序 188
22.1.4 使用idl2java编译器 188
22.2 获取通用对象引用 188
22.3 创建和初始化Request 189
22.3.1 Request接口 189
22.3.2 创建和初始化DII请求的方法 189
22.3.3 使用_create_request方法 190
22.3.4 使用_request方法 190
22.3.5 创建Request对象的例子 191
22.3.6 为Request设置参数 191
22.3.7 使用Any类安全地传递类型 192
22.3.8 使用TypeCode类表示参数或属性的类型 193
22.4 发送DII请求和接收结果 195
22.4.1 调用请求 195
22.4.2 使用send_deferred方法发送延迟DII请求 195
22.4.3 使用send_oneway方法发送异步DII请求 196
22.4.4 发送多个请求 196
22.4.5 接收多个请求 196
22.5 在DII中使用接口库 197
第23章 使用动态框架接口 198
23.1 什么是动态框架接口 198
23.2 动态创建对象实现的步骤 198
23.3 继承DynamicImplementation类 199
23.3.1 设计动态请求对象的例子 199
23.3.2 指定库ID 201
23.4 查看ServerRequest类 202
23.5 实现Account对象 202
23.6 实现AccountManager对象 202
23.7 服务程序的实现 203
第24章 使用可移植拦截器 205
24.1 概述 205
24.2 拦截器的接口和管理器 205
24.2.1 客户程序拦截器 206
24.2.2 服务程序拦截器 207
24.2.3 缺省拦截器类 209
24.2.4 在VisiBroker ORB注册拦截器 209
24.2.5 创建拦截器对象 209
24.2.6 装入拦截器 210
24.3 拦截器例子 210
24.3.1 代码例子 210
24.3.2 代码列表 211
24.4 在拦截器之间传递信息 216
第25章 使用对象包装器 217
25.1 概述 217
25.1.1 类型化和非类型化的对象包装器 217
25.1.2 idl2java的特殊要求 217
25.1.3 应用程序示例 218
25.2 非类型化对象包装器 218
25.2.1 使用多个非类型化对象包装器 218
25.2.2 pre_method的调用次序 219
25.2.3 post_method的调用次序 219
25.3 使用非类型化对象包装器 219
25.3.1 实现非类型化对象包装器工厂 220
25.3.2 实现非类型化对象包装器 220
25.3.3 创建和注册非类型化对象包装器工厂 221
25.3.4 删除非类型化对象包装器 223
25.4 类型化对象包装器 223
25.4.1 使用多个类型化对象包装器 224
25.4.2 调用次序 224
25.4.3 共位客户和服务程序的类型化对象包装器 225
25.5 使用类型化对象包装器 225
25.5.1 实现类型化对象包装器 225
25.5.2 为客户程序注册类型化对象包装器 226
25.5.3 为服务程序注册类型化对象包装器 227
25.5.4 删除类型化对象包装器 228
25.6 联合使用非类型化和类型化对象包装器 228
25.6.1 类型化对象包装器的命令行参数 228
25.6.2 类型化包装器的初始化程序 229
25.6.3 非类型化对象包装器的命令行参数 230
25.6.4 非类型化包装器的初始化程序 230
25.6.5 运行应用示例 231
第26章 在IIOP上使用RMI 234
26.1 概述 234
26.2 使用java2iiop 234
26.2.1 支持的接口 234
26.2.2 运行java2iiop 235
26.2.3 完成开发步骤 235
26.3 RMI-IIOP的Bank例子 235
26.4 支持的数据类型 237
26.4.1 映射基本数据类型 237
26.4.2 映射复杂数据类型 237
26.4.3 接口 238
26.4.4 数组 238
第27章 使用动态管理类型 239
27.1 概述 239
27.2 DynAny类型 239
27.2.1 用法限制 239
27.2.2 创建DynAny 239
27.2.3 初始化和访问DynAny的值 240
27.3 复合数据类型 240
27.3.1 DynEnum 240
27.3.2 DynStruct 241
27.3.3 DynUnion 241
27.3.4 DynSequence和DynArray 241
27.4 IDL示例 241
27.5 客户应用程序示例 242
27.6 服务应用程序示例 243
第28章 使用值类型 248
28.1 理解值类型 248
28.1.1 具体值类型 248
28.1.2 抽象值类型 249
28.2 实现值类型 249
28.2.1 定义值类型 249
28.2.2 编译IDL文件 250
28.2.3 继承值类型的基类 250
28.2.4 实现Factory类 250
28.2.5 在ORB上注册Factory对象 251
28.3 实现工厂对象 251
28.3.1 工厂对象和值类型 251
28.3.2 注册值类型 251
28.4 封装值类型 252
28.5 抽象接口 252
28.6 定制值类型 253
28.7 可截断值类型 253
第29章 使用URL命名 254
29.1 URL命名服务 254
29.2 注册对象 254
29.3 使用URL查找对象 256
第七部分 向后兼容性 259
第30章 在VisiBroker 4.0中使用BOA 259
30.1 使用VisiBroker 4.0编译BOA代码 259
30.2 支持的BOA选项 259
30.3 使用BOA的限制 259
30.4 使用对象激活器 259
30.5 BOA的对象命名 259
第31章 迁移VisiBroker代码 261
31.1 迁移工具 261
31.1.1 对程序包名前缀的改变 261
31.1.2 对类名的改变 261
31.1.3 对API调用的改变 262
31.1.4 将BOA改为POA 263
31.1.5 改变拦截器的使用 263
31.2 调用迁移工具 263
31.3 使用迁移后的代码 264
31.4 将BOA手工迁移到POA 264
31.4.1 一个例子 264
31.4.2 映射BOA类型到POA策略 266
31.5 迁移到新的程序包名字 267
31.6 迁移到新的类名字 267
31.7 迁移到新的API调用 268
31.8 迁移拦截器 268
第32章 使用对象激活工具 271
32.1 延迟对象激活 271
32.2 Activator接口 271
32.3 使用服务激活的途径 272
32.3.1 使用服务激活器延迟对象激活 272
32.3.2 对服务延迟对象激活的例子 273
下篇 VisiBroker for Java参考手册 278
第33章 程序员工具 278
33.1 选项 278
33.2 idl2ir 278
33.3 ir2idl 279
33.4 idl2java 279
33.5 java2idl 281
33.6 java2iiop 282
33.7 vbj 283
33.8 其他VisiBroker工具 285
第34章 IDL到Java的映射 286
34.1 名字 286
34.2 保留名字 286
34.3 保留字 287
34.4 模块 287
34.5 基本类型 288
34.5.1 IDL扩充类型 288
34.5.2 Holder类 289
34.5.3 Java null 292
34.5.4 Boolean 292
34.5.5 Char 292
34.5.6 Octet 292
34.5.7 String 292
34.5.8 WWString 292
34.5.9 整数类型 292
34.5.10 浮点数类型 293
34.6 Helper类 293
34.7 常量 294
34.7.1 接口中的常量 294
34.7.2 不在接口中的常量 295
34.8 复合类型 295
34.8.1 Enum 295
34.8.2 Struct 297
34.8.3 Union 298
34.8.4 Sequence 299
34.8.5 Array 300
34.9 接口 301
34.9.1 参数传递 303
34.9.2 使用继承实现服务程序 304
34.9.3 使用委派实现服务程序 305
34.9.4 接口作用域 306
34.10 异常的映射 306
34.11 用户自定义异常 306
34.12 系统异常 307
34.13 Any类型的映射 307
34.14 嵌套类型的映射 308
34.15 Typedef的映射 308
34.15.1 简单IDL类型 308
34.15.2 复杂IDL类型 308
第35章 生成的接口和类 310
35.1 概览 310
35.1.1 基调和操作类 310
35.1.2 辅助类 310
35.1.3 可移植桩和框架接口 311
35.2 <interface_name>Operations 311
35.3 <type_name>Helper 311
35.3.1 所有Helper类都有的方法 311
35.3.2 为接口生成的方法 312
35.3.3 为对象包装器生成的方法 313
35.4 <type_name>Holder 314
35.4.1 成员数据 315
35.4.2 方法 315
35.5 _<interface_name>Stub 315
35.6 <interface_name>POA 315
35.7 <interface_name>POATie 315
第36章 核心接口与类 317
36.1 BindOptions 317
36.1.1 IDL定义 317
36.1.2 BindOptions的构造方法 317
36.2 BOA 317
36.2.1 IDL定义 318
36.2.2 BOA的方法 319
36.3 CompletionStatus 320
36.3.1 IDL定义 320
36.3.2 CompletionStatus的方法 320
36.4 Context 321
36.4.1 IDL定义 321
36.4.2 Context的方法 321
36.5 InvalidName 322
36.6 Object 323
36.6.1 org.omg.CORBA Object定义 323
36.6.2 org.omg.Object的方法 324
36.6.3 VisiBroker对Object的扩充 325
36.6.4 VisiBroker对Object扩充的方法 326
36.7 ORB 327
36.7.1 JDK的ORB定义 327
36.7.2 JDK ORB的方法 329
36.7.3 OMG ORB定义 334
36.7.4 VisiBroker ORB的扩充 335
36.7.5 VisiBroker ORB的方法 335
36.8 PortableServer.AdapterActivator 337
36.9 PortableServer.Current 337
36.10 PortableServer.POA 338
36.11 PortableServer.POAManager 345
36.12 PortableServer.ServantActivator 347
36.13 PortableServer.ServantLocator 347
36.14 PortableServer.ServantManager 349
36.15 Principal 349
36.15.1 IDL定义 349
36.15.2 Principal的方法 349
第37章 动态接口与类 350
37.1 Any 350
37.1.1 Any的方法 350
37.1.2 Any的提取方法 351
37.1.3 Any的插入方法 351
37.2 ARG_IN 352
37.3 ARG_INOUT 352
37.4 ARG_OUT 353
37.5 ContextList 353
37.5.1 IDL定义 353
37.5.2 ContextList的方法 353
37.6 DynAny 354
37.6.1 重要的用法限制说明 354
37.6.2 DynAny的方法 354
37.6.3 DynAny的提取方法 355
37.6.4 DynAny的插入方法 356
37.7 DynArray 356
37.7.1 重要的用法限制说明 357
37.7.2 DynArray的方法 357
37.8 DynAnyFactory 357
37.8.1 重要的用法限制说明 357
37.8.2 DynAnyFactory的方法 357
37.9 DynEnum 358
37.9.1 重要的用法限制说明 358
37.9.2 DynEnum的方法 358
37.10 DynFixed 359
37.11 DynSequence 359
37.11.1 重要的用法限制说明 359
37.11.2 DynSequence的方法 359
37.12 DynStruct 360
37.12.1 重要的用法限制说明 360
37.12.2 DynStruct的方法 360
37.13 DynUnion 361
37.13.1 重要的用法限制说明 361
37.13.2 DynUnion的方法 361
37.14 Dyn Value 362
37.15 DynamicImplementation 363
37.15.1 构造方法 363
37.15.2 DynamicImplementation的方法 363
37.16 Environment 364
37.17 ExceptionList 364
37.17.1 IDL定义 364
37.17.2 ExceptionList的方法 365
37.18 InputStream 365
37.19 Invalid 366
37.20 InvalidSeq 366
37.21 NamedValue 366
37.21.1 IDL定义 366
37.21.2 NamedValue的方法 367
37.22 Name ValuePair 367
37.22.1 Name ValuePair的变量 367
37.22.2 Name ValuePair的构造方法 367
37.23 NVList 367
37.23.1 IDL定义 368
37.23.2 NVList的方法 368
37.24 OutputStream 369
37.25 Request 370
37.25.1 IDL定义 370
37.25.2 Request的方法 371
37.26 ServerRequest 373
37.26.1 IDL定义 373
37.26.2 ServerRequest的方法 374
37.27 TCKind 374
37.27.1 IDL定义 374
37.27.2 TCKind的方法 375
37.28 TypeCode 375
37.28.1 IDL定义 375
37.28.2 TypeCode的方法 376
37.29 UnknownUserException 378
第38章 关于接口库的接口与类 379
38.1 AliasDef 379
38.2 ArrayDef 379
38.3 AttributeDef 380
38.4 AttributeDescription 381
38.4.1 AttributeDescription的变量 381
38.4.2 AttributeDescription的方法 381
38.5 AttributeMode 382
38.6 ConstantDef 382
38.7 ConstantDescription 383
38.7.1 ConstantDescription的变量 383
38.7.2 ConstantDescription的方法 383
38.8 Contained 384
38.8.1 IDL定义 384
38.8.2 Contained的方法 384
38.9 ContainedPackage.Description 385
38.9.1 ContainedPackage.Description的变量 386
38.9.2 ContainedPackage.Description的方法 386
38.10 Container 386
38.10.1 IDL定义 386
38.10.2 Container的方法 388
38.11 ContainerPackage.Description 392
38.11.1 ContainerPackage.Description的变量 392
38.11.2 ContainedPackage.Description的方法 392
38.12 DefinitionKind 392
38.12.1 DefinitionKind的方法 393
38.12.2 DefinitionKind的常量 393
38.13 EnumDef 393
38.14 ExceptionDef 394
38.15 ExceptionDescription 394
38.15.1 ExceptionDescription的变量 395
38.15.2 ExceptionDescription的方法 395
38.16 FixedDef 395
38.17 FullValueDescription 396
38.17.1 FullValueDescription的变量 396
38.17.2 FullValueDescription的方法 397
38.18 IDLType 397
38.18.1 IDL定义 398
38.18.2 IDLType的方法 398
38.19 InterfaceDef 398
38.19.1 IDL定义 398
38.19.2 InterfaceDef的方法 399
38.20 Interface DefPackage.FullInterface Description 400
38.20.1 Interface DefPackage.Full-Interface Description的变量 400
38.20.2 Interface DefPackage.Full-Interface Description的方法 401
38.21 Interface Description 402
38.21.1 Interface Description的变量 402
38.21.2 Interface Description的方法 402
38.22 IRObject 403
38.22.1 IDL定义 403
38.22.2 IRObject的方法 403
38.23 ModuleDef 403
38.24 ModuleDescription 403
38.24.1 ModuleDescription的变量 404
38.4.2 ModuleDescription的方法 404
38.25 NativeDef 404
38.26 OperationDef 404
38.27 OperationDescription 406
38.27.1 OperationDescription的变量 406
38.27.2 OperationDescription的方法 406
38.28 OperationMode 407
38.29 ParameterDescription 407
38.29.1 ParameterDescription的变量 408
38.29.2 ParameterDescription的方法 408
38.30 ParameterMode 408
38.31 PrimitiveDef 409
38.32 PrimitiveKind 409
38.32.1 PrimitiveKind的方法 409
38.32.2 PrimitiveKind的变量 409
38.33 Repository 410
38.34 SequenceDef 411
38.35 StringDef 412
38.36 StructDef 412
38.37 StructMember 413
38.37.1 StructMemeber的变量 413
38.37.2 StructMemeber的方法 413
38.38 TypedefDef 413
38.39 TypeDescription 414
38.39.1 TypeDescription的变量 414
38.39.2 TypeDescription的方法 414
38.40 UnionDef 415
38.41 UnionMember 415
38.41.1 UnionMember的变量 416
38.41.2 UnionMember的方法 416
38.42 ValueBoxDef 416
38.43 ValueDef 417
38.44 ValueDescription 419
38.44.1 ValueDescription的变量 419
38.44.2 ValueDescription的方法 420
38.45 ValueMemberDef 420
38.46 WstringDef 420
第39章 关于激活的接口与类 422
39.1 ActivationImplDef 422
39.1.1 IDL定义 422
39.1.2 ActivationImplDef方法 422
39.2 Activator 422
39.2.1 IDL定义 422
39.2.2 Activator方法 423
39.3 CreationImplDef 423
39.3.1 IDL定义 423
39.3.2 激活策略 424
39.3.3 例子 424
39.3.4 环境变量 424
39.3.5 显式传播或传递的环境变量 425
39.3.6 CreationEmplDef方法 425
39.4 ImplementationDef 427
39.5 OAD 427
39.5.1 IDL定义 427
39.5.2 ImplementationStatus 428
39.5.3 OAD方法 428
第40章 关于命名服务的接口与类 433
40.1 NamingContext 433
40.1.1 IDL定义 433
40.1.2 NamingContext方法 433
40.2 NamingContextExt 437
40.2.1 IDL定义 437
40.2.2 NamingContextExt方法 438
40.3 Binding和BindingList 439
40.4 BindingIterator 440
40.4.1 IDL定义 440
40.4.2 BindingIterator方法 440
40.5 NamingContextFactory 441
40.5.1 IDL定义 441
40.5.2 NamingContextFactory方法 441
40.6 ExtendedNamingContextFactory 441
40.6.1 IDL定义 442
40.6.2 ExtendedNamingContext-Factory方法 442
第41章 关于事件服务的接口与类 443
41.1 ConsumerAdmin 443
41.1.1 IDL定义 443
41.1.2 Java定义 443
41.1.3 ConsumerAdmin方法 443
41.2 EventChannel 443
41.2.1 Java定义 443
41.2.2 EventChannel方法 444
41.3 EventLibrary 444
41.3.1 Java定义 444
41.3.2 EventLibrary方法 445
41.4 ProxyPullConsumer 445
41.4.1 IDL定义 446
41.4.2 Java定义 446
41.4.3 ProxyPullConsumer方法 446
41.5 ProxyPushConsumer 446
41.5.1 IDL定义 446
41.5.2 Java定义 446
41.5.3 ProxyPushConsumer方法 447
41.6 ProxyPullSupplier 447
41.6.1 IDL定义 447
41.6.2 Java定义 447
41.6.3 ProxyPullSupplier方法 447
41.7 ProxyPushSupplier 447
41.7.1 IDL定义 448
41.7.2 Java定义 448
41.7.3 ProxyPushSupplier方法 448
41.8 PullConsumer 448
41.8.1 IDL定义 448
41.8.2 Java定义 448
41.8.3 PullConsumer方法 449
41.9 PushConsumer 449
41.9.1 IDL定义 449
41.9.2 Java定义 449
41.9.3 PushConsumer方法 449
41.10 PullSupplier 449
41.10.1 IDL定义 449
41.10.2 Java定义 450
41.10.3 PullSupplier方法 450
41.11 PushSupplier 450
41.11.1 IDL定义 450
41.11.2 Java定义 450
41.11.3 PushSupplier方法 451
41.12 SupplierAdmin 451
41.12.1 IDL定义 451
41.12.2 Java定义 451
41.12.3 SupplierAdmin方法 451
第42章 关于异常的类 452
42.1 简介 452
42.2 SystemException 452
42.3 UserException 453
第43章 关于拦截器和对象包装器的接口与类 455
43.1 简介 455
43.2 拦截器管理器 455
43.3 IOR模板 455
43.4 InterceptorManager 455
43.5 InterceptorManagerControl 456
43.5.1 import语句 456
43.5.2 InterceptorManagerControl方法 456
43.6 BindInterceptor 456
43.6.1 import语句 456
43.6.2 BindInterceptor方法 456
43.7 BindInterceptorManager 458
43.7.1 import语句 458
43.7.2 BindInterceptorManager方法 458
43.8 ClientRequestInterceptor 458
43.8.1 import语句 458
43.8.2 ClientRequestInterceptor方法 458
43.9 ClientRequestInterceptorManager 459
43.9.1 import语句 459
43.9.2 ClientRequestInterceptorManager方法 459
43.10 POALifeCycleInterceptor 460
43.10.1 import语句 460
43.10.2 POALifeCycleInterceptor方法 460
43.11 POALifeCycleInterceptorManager 461
43.11.1 import语句 461
43.11.2 POALifeCycleInterceptorManager方法 461
43.12 ActiveObjectLifeCycleInterceptor 461
43.12.1 import语句 461
43.12.2 ActiveObjectLifeCycle-Interceptor方法 461
43.13 ActiveObjectLifeCycleInterceptorManager 462
43.13.1 import语句 462
43.13.2 ActiveObjectLifeCycleInterceptorManager方法 462
43.14 ForwardRequestException 462
43.15 ServerRequestInterceptor 462
43.15.1 import语句 463
43.15.2 ServerRequestInterceptor方法 463
43.16 ServerRequestInterceptorManager 464
43.16.1 import语句 464
43.16.2 ServerRequestInterceptorManager方法 464
43.17 IORCreationInterceptor 464
43.17.1 import语句 465
43.17.2 IORCreationInterceptor方法 465
43.18 IORInterceptorManager 465
43.18.1 import语句 465
43.18.2 IORInterceptorManager方法 465
43.19 Location 465
43.20 ChainUntypedObjectWrapper Factory 466
43.20.1 IDL定义 466
43.20.2 import语句 466
43.20.3 ChainUntypedObjectWrapper-Factory方法 466
43.21 UntypedObjectWrapper 467
43.21.1 IDL定义 467
43.21.2 UntypedObjectWrapper方法 467
43.22 UntypedObjectWrapperFactory 468
43.22.1 IDL定义 468
43.22.2 import语句 468
43.22.3 UntypedObjectWrapper-Factory方法 468
第44章 关于服务质量的接口与类 470
44.1 PolicyManager 470
44.1.1 IDL定义 470
44.1.2 PolicyManager方法 470
44.2 PolicyCurrent 471
44.3 Object 471
44.3.1 org.omg.CORBA.Object方法 471
44.3.2 com.inprise.vbroker.Object方法 472
44.4 RebindPolicy 473
44.4.1 IDL定义 474
44.4.2 策略值 474
44.5 DeferBindPolicy 475
44.6 QoS异常 476
第45章 关于IOP和IIOP的接口与类 477
45.1 IIOP.ProfileBody 477
45.1.1 IDL定义 477
45.1.2 IIOP.ProfileBody变量 477
45.1.3 IIOP.ProfileBody构造方法 477
45.2 IIOP.IORValue 478
45.2.1 IDL定义 478
45.2.2 IIOP.IORValue变量 478
45.3 IOP.ServiceContext 479
45.3.1 IDL定义 479
45.3.2 IIOP.ServiceContext变量 479
45.3.3 IIOP.ServiceContext构造方法 479
45.4 IOP.TaggedProfile 479
45.4.1 IDL定义 480
45.4.2 IOP.TaggedProfile变量 480
45.4.3 IOP.TaggedProfile构造方法 480
第46章 关于RMI的接口与类 481
46.1 PortableRemoteObject 481
46.2 构造方法 481
46.3 PortableRemoteObject方法 481
第47章 关于URL命名的接口与类 483
47.1 Resolver 483
47.2 IDL定义 483
47.3 Resolver方法 483
第48章 关于位置服务的接口与类 485
48.1 Agent 485
48.1.1 IDL定义 485
48.1.2 Agent方法 485
48.2 Desc 488
48.2.1 IDL定义 488
48.2.2 Desc变量 488
48.2.3 Desc构造方法 488
48.2.4 Desc方法 489
48.3 Fail 489
48.4 TriggerDesc 489
48.4.1 IDL定义 489
48.4.2 TriggerDesc变量 490
48.4.3 TriggerDesc构造方法 490
48.4.4 TriggerDesc方法 490
48.5 TriggerHandler 490
48.5.1 IDL定义 490
48.5.2 TriggerHandler方法 491
附录A CORBA异常 492
附录B 使用命令行选项 498
附录C 使用VisiBroker属性 504
术语表 512