Repro: (Thanks to Tony Ma for the code)
Can be tested with VFP8 on Windows 2000 or Windows XP
1. Create a new project in VFP8 and call it ErrorTest1
2. In the project create a program containing this code
DEFINE CLASS ComServer1 AS Session OLEPUBLIC
PROCEDURE ReturnHello1() AS String
RETURN "Hello1"
ENDDEFINE
DEFINE CLASS ComServer2 AS Session OLEPUBLIC
PROCEDURE ReturnHello2() AS String
RETURN "Hello2"
PROCEDURE ReturnHello3() AS String
RETURN "Hello3"
ENDDEFINE
3. Save and build a multi-threaded COM Server dll
4. Start the component services MMC from the administration tool
5. Right-click on COM+ Application and choose New->Application
6. Create an Empty server application and choose any name for it.
7. Leave all other settings to defaults.
8. Open the new application and right-click on Component and choose new->Component
9. Choose install a new component and select the dll ErrorTest1.Dll and leave all other settings to the defaults.
10. Run the following program in 2 or more VFP instances at the same time
Lparameters cServer
Clear
FOR nIndex = 1 TO 1000
TRY
o = CreateObject("ErrorTest1.ComServer1")
o.ReturnHello1()
CATCH TO oErr
? "Error Message (1) " + Transform(nIndex) + " " + oErr.Message
FINALLY
o = NULL
ENDTRY
TRY
o = CreateObject("ErrorTest1.ComServer2")
o.ReturnHello2()
CATCH TO oErr
? "Error Message (2) " + Transform(nIndex) + " " + oErr.Message
FINALLY
o = NULL
ENDTRY
ENDFOR
Error "Unknown name" occurs randomly in both VFP instances.
-------------------------------------------------------------
Can anyone confirm it's a bug.
Thanks.