以下主题介绍如何将持久连接与 Windows-Initiated 处理(WIP) 配合使用
将持久连接与 WIP 配合使用
将 COMTIContext 关键字 CONNTYPE 设置为 OPEN。
如果将 CONNTYPE 设置为 OPEN 的调用成功完成,则返回的 COMTIContext 数组 CONNTYPE 关键字将具有 USE 值。
将 COMTIContext 关键字 CONNTYPE 设置为 OPEN 后,可以选择将 CONNTYPE 设置为 USE。 但是,此操作不是强制性的,因为它默认设置为使用。
建立连接后,可以使用 COMTIContext 对象访问大型机。
如果方法调用失败,请使用 COMTIContextLib.ContextObject 上的 UpdateContextInfo 和 GetConnectionInfo 获取连接的更新状态。
若要进行调用并终止持久连接,请将 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