영구 연결을 사용하는 방법
다음 항목에서는 WIP(Windows-Initiated Processing)와 영구 연결을 사용하는 방법에 대해 설명합니다.
WIP와 영구 연결을 사용하려면
COMTIContext 키워드(keyword) CONNTYPE을 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) 값이 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