下列主題描述如何使用持續性連線搭配 Windows-Initiated 處理 (WIP)
使用 WIP 進行持續性連線
將 COMTIContext 關鍵詞 CONNTYPE 設定為 OPEN。
如果將 CONNTYPE 設定為 OPEN 的呼叫成功完成,則傳回的 COMTIContext 陣列 CONNTYPE 關鍵詞將會有 USE 值。
將 COMTIContext 關鍵詞 CONNTYPE 設定為 OPEN 之後,您可以選擇將 CONNTYPE 設定為 USE。 不過,此動作並非必要動作,因為預設會設定為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