이전 vb 로 작성되는 com+ 서비스용을 닷넷용으로 첨 해봅니다.
COM+ 로 소스를 작성 하였습니다.
그런데 객체를 사용하고 난 후 구성요소 서비스에서 계속 활성화 상태로 남아 있는데...
어떤 문제인지 ....
요지는...
아래와 같이 A, B 가 있다고 할적에 모두 COM+ 에 등록 되었습니다.
A 라는 COM 에서 B - oDAL - 를 호출하여 사용하고 난 후
Dispose 하고 Nothing 처리를 해 주었는데
구성요소 서비스에서 개체 상태를 살펴보면 A 라는 놈은 서비스 되고 난 후
0 로 되어 있는데 B 라는 놈은 1 로 계속 활성화 상태로
되어 있습니다.
그래서 같은 것을 계속 호출하면 A 라는 놈은 0로 즉시 되는데 B 라는 놈은 숫자가 계속 올라 갑니다.
이런 식이라면 .. 여러 사용자가 계속 호출할 경우 메모리가 오버 되지 않을 까 걱정 입니다
Try
oDal = CreateObject(gaCert(9))
fnkgb011nq = oDal.Connect(gaCert)
If fnkgb011nq <> "" Then Throw New Exception(fnkgb011nq)
...................................
fnkgb011nq = oDal.GetRecordset(sSql, vRtn)
If fnkgb011nq <> "" Then Throw New Exception(fnkgb011nq)
Catch oErr As Exception
fnkgb011nq = My.Application.Info.AssemblyName & "." & "[fnkgb011nq]" & vbCrLf & oErr.Source & vbCrLf & oErr.Message
Finally
If Not IsNothing(oDAL) Then
oDAL.Disconnect()
oDAL.Dispose() ---> 데이타베이스 전담 com
oDAL = Nothing
End If
Dispose()
End Try
oDAL 을 작성시
--------
Option Strict Off
Option Explicit On
Imports Microsoft.VisualBasic
Imports System.Runtime.InteropServices
Imports System.EnterpriseServices
<System.Runtime.InteropServices.ProgId("PUB_Zaaex.CZaaxt"), _
JustInTimeActivation(True), EventTrackingEnabled(True), _
System.EnterpriseServices.TransactionAttribute(System.EnterpriseServices.TransactionOption.NotSupported)> _
Public Class CZaaxt
Inherits ServicedComponent
-------------------
이렇게 해주었습니다.
-- 그리고 또 하나는 이전 vb 로 작성하고 com+ 에 등록했을때는 해당 클래스에 작성된 메소드들이 다 보였는데
닷넷으로 만들고 난 후에는 메소드들이 안보이는데 어떤 속성을 추가 해야 하는지요?
[최초 등록일: ]
[최종 수정일: 11/17/2005]