如何使用持久连接

以下主题介绍如何将持久连接与 Windows-Initiated 处理(WIP) 配合使用

将持久连接与 WIP 配合使用

  1. 将 COMTIContext 关键字 CONNTYPE 设置为 OPEN。

    如果将 CONNTYPE 设置为 OPEN 的调用成功完成,则返回的 COMTIContext 数组 CONNTYPE 关键字将具有 USE 值。

    将 COMTIContext 关键字 CONNTYPE 设置为 OPEN 后,可以选择将 CONNTYPE 设置为 USE。 但是,此操作不是强制性的,因为它默认设置为使用。

  2. 建立连接后,可以使用 COMTIContext 对象访问大型机。

  3. 如果方法调用失败,请使用 COMTIContextLib.ContextObject 上的 UpdateContextInfo 和 GetConnectionInfo 获取连接的更新状态。

  4. 若要进行调用并终止持久连接,请将 CONNTYPE 关键字设置为 CLOSE。

    如果调用成功完成,则返回的 COMTIContext 数组 CONNTYPE 关键字将具有 NON-PERSISTENT 的值。

    (可选)可以随时调用 ClosePersistentConnection 以关闭持久连接。 连接将终止,并且不会与服务器程序交互。

示例:

以下 Visual Basic 6.0 代码示例演示如何使用可能会返回错误的 OPEN 和 CLOSE 方法调用。 此示例还演示如何确定是否仍可使用连接。

Public CtxCount As Long  
Public COMTIContext() As Variant  
Public ContextObj As COMTIContextLib.ContextObject  
  
Dim fConIsPersistent as Boolean  
Dim fConnIsViable as Boolean  
Dim varConnType as Variant  
  
Private Sub cmdBalance_Click()  
  On Error GoTo ErrorHandler  
  
OpenCall:  
  varConnType = "OPEN"  
  ContextObj.WriteContext "CONNTYPE", varConnType, COMTIContext  
  lngReturn = objBank.cedrbank(txtName.Text, txtAccount.Text, curRetBalance, COMTIContext)  
  
UseCall:  
  lngReturn = objBank.cedrbank(txtName.Text, txtAccount.Text, curRetBalance, COMTIContext)  
  
CloseCall:  
  If (fCloseWithMethod) Then  
      varConnType = "CLOSE"  
      ContextObj.WriteContext "CONNTYPE", varConnType, COMTIContext  
      lngReturn = objBank.cedrbank(txtName.Text, txtAccount.Text, curRetBalance, COMTIContext)  
  Else  
      COMTIContext = objBank.ClosePersistentConnection  
  End-if  
  
  Exit Sub  
  
ErrorHandler:  
    COMTIContext  = objBank.UpdateContextInfo   Optional for COM required for .NET  
    ContextObj.GetConnectionInfo (COMTIContext, fConnIsPersistent, fConnIsViable)  
    If (fConnIsPersistent = True And fConnIsViable = True) Then  
        Continue with the next Use or Close method call is OK  
    Else  
        Connection is either Non-persistent or no longer viable  
        So a Use or Close call is not valid  
    End-if  
    Exit Sub  
  
End Sub  

另请参阅

持久连接
COMTIContext 接口
COMTIContext 关键字