永続的な接続を使用する方法
次のトピックでは、Windows-Initiated 処理 (WIP) で永続的な接続を使用する方法について説明します
WIP で永続的な接続を使用するには
CONNTYPE キーワード (keyword) COMTIContext を OPEN に設定します。
CONNTYPE を OPEN に設定した呼び出しが正常に完了すると、返される COMTIContext 配列 CONNTYPE キーワード (keyword)の値は USE になります。
COMTIContext キーワード (keyword) CONNTYPE を OPEN に設定した後、CONNTYPE を USE に設定できます。 ただし、このアクションは既定で USE に設定されているため、必須ではありません。
接続を確立したら、COMTIContext オブジェクトを使用してメインフレームにアクセスできます。
メソッドの呼び出しが失敗した場合は、COMTIContextLib.ContextObject で UpdateContextInfo と GetConnectionInfo を使用して、接続の更新された状態を取得します。
呼び出しを行い、永続的な接続を終了するには、CONNTYPE キーワード (keyword)を CLOSE に設定します。
呼び出しが正常に完了すると、返された COMTIContext 配列 CONNTYPE キーワード (keyword)の値は非永続的になります。
必要に応じて、いつでも 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