正在加载图片...
第15章(OM+应用程序465 下载 IClassFactory。该接口有一个方法 Createlnstance,创建并返回一个COM+对象。每种 类型的COM+组件有一个类对象。VB会自动创建这些类对象。 当客户创建一个包含在COM+应用程序中的组件实例时,将会发生 如果内存中没有的话,包含组件的DLL将被调入 创建组件类型的类对象 ·COM+请求类对象创建新的COM+对象实例 当COM+应用程序载入一个COM服务器(DLL)去创建某类型的COM+对象时,在COM+应 用程序关闭前,DLL一直保存在内存中。假國w性 如COM+不能完成缓存工作,当最后一个由 a securily Identy Activation Queuing Advarced 来自于该DLL的类对象创建的对象取消时 Leave running when d 卸载该DLL。一个对象的重复创建和取消会 引起一个DLL重复载入和卸载,可能会引起 硬盘不停地运转。COM+允许定义空闲时间 段,经过这个空闲段后COM+应用程序和所 Lbie deletion 有载入的DLL才释放(见图15-8) 当COM+应用程序创建一个类对象时 Launch n debugger 将保持对类对象的一个引用直到其卸载。这 意味着第一次创建对象以后仅需要执行下面 个步骤: 厂Enae3 GB supoort COM+请求类对象创建一个新的COM+ 对象的实例 这种缓存能够改进对象创建的性能,这 图15-8设定空闲时间段 也意味着对于创建非缓冲对象,JT激活的开 销不致于过高 (2)JT激活不需要改变COM 需要清楚的是COM的基本规则没有为了对服务的支持而改变,如果没有外部引用,将取 消COM+对象的实例。然而,这会改变客户编程方式,使我们的组件成为无状态组件。 无状态”编程范型 个COM+组件,像任何COM组件一样,能够在客户交互(方法调用)之间在内部存储信 息。这一工作我们称之为保持状态,称这种组件为状态化组件。现在,假如我们标识该组件 使用JIT激活,并为使对象失效增加必要的调用,这个模型将发生较大的改变 由对象存储和管理的信息,当客户调用时,对于后续的方法调用将不再可用。通过使组 件使用JIT激活,告诉COM+在方法调用之间可使对象失效,这其中的含义就是下一个方法调 用将可能潜在地由不同的对象实例处理。 这里使用了“潜在地”一词,是因为如果对象被缓冲,那么使对象失效并放回 缓冲池,则从缓冲池中取出供下一个调用使用的对象,可能会与原来的不相同 3.对于JT组件忘掉面向对象编程 这个问题需要一些时间来理解,读者可能读过相关的许多文章,都在一定程度不正确地I C l a s s F a c t o r y。该接口有一个方法C r e a t e I n s t a n c e,创建并返回一个C O M +对象。每种 类型的C O M +组件有一个类对象。V B会自动创建这些类对象。 当客户创建一个包含在C O M +应用程序中的组件实例时,将会发生: • 如果内存中没有的话,包含组件的 D L L将被调入。 • 创建组件类型的类对象。 • COM+请求类对象创建新的C O M +对象实例。 当C O M +应用程序载入一个C O M服务器( D L L )去创建某类型的C O M +对象时,在C O M +应 用程序关闭前, D L L一直保存在内存中。假 如C O M +不能完成缓存工作,当最后一个由 来自于该 D L L的类对象创建的对象取消时, 卸载该D L L。一个对象的重复创建和取消会 引起一个D L L重复载入和卸载,可能会引起 硬盘不停地运转。 C O M +允许定义空闲时间 段,经过这个空闲段后 C O M +应用程序和所 有载入的D L L才释放(见图1 5 - 8 )。 当C O M +应用程序创建一个类对象时, 将保持对类对象的一个引用直到其卸载。这 意味着第一次创建对象以后仅需要执行下面 一个步骤: • C O M +请求类对象创建一个新的 C O M + 对象的实例。 这种缓存能够改进对象创建的性能,这 也意味着对于创建非缓冲对象, J I T激活的开 销不致于过高。 (2) JIT激活不需要改变C O M 需要清楚的是C O M的基本规则没有为了对服务的支持而改变,如果没有外部引用,将取 消C O M +对象的实例。然而,这会改变客户编程方式,使我们的组件成为无状态组件。 2 .“无状态”编程范型 一个C O M +组件,像任何 C O M组件一样,能够在客户交互 (方法调用)之间在内部存储信 息。这一工作我们称之为保持状态,称这种组件为状态化组件。现在,假如我们标识该组件 为使用J I T激活,并为使对象失效增加必要的调用,这个模型将发生较大的改变。 由对象存储和管理的信息,当客户调用时,对于后续的方法调用将不再可用。通过使组 件使用J I T激活,告诉C O M +在方法调用之间可使对象失效,这其中的含义就是下一个方法调 用将可能潜在地由不同的对象实例处理。 这里使用了“潜在地”一词,是因为如果对象被缓冲,那么使对象失效并放回 缓冲池,则从缓冲池中取出供下一个调用使用的对象,可能会与原来的不相同。 3. 对于J I T组件忘掉面向对象编程 这个问题需要一些时间来理解,读者可能读过相关的许多文章,都在一定程度不正确地 第1 5章 C O M +应用程序计计465 下载 图15-8 设定空闲时间段
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有