E
EQuAl
Hi,
We have an application developed in VC2005 with mixed code, primarily C++
but using a C# dll for database access (DBUploader), the dll exposes a C++
interface. We are experiencing intermittent failure on startup - no errors or
warnings are generated (including in the EventVwr). Once running there are no
issues. The process is started either manually or spawned via a Windows
service. The dll is compiled with the following compiler options:
/GL /I "." /I "..\EQLRVFramework" /I "..\EQLRVFrameworkContainers" /I
"..\libtibrvcppex" /I "..\EQLBasics" /I "..\EQLException" /I
"..\EQLFileAsyncIO" /I "..\EQLFileIO" /I "..\EQLNumeric" /I "..\EQLTime" /I
"..\EQLTrace" /I "..\EQLVersion" /I "..\EQLWin32" /I "..\EQLXML" /I
"..\EQLGenEnum" /I "..\EQLID" /I "..\EQLExchange" /I "..\EQLMDS" /I
"..\EQLAppConfig" /I "..\EQLApplication" /I "..\EQLGenIOEnum" /I "..\MsgDef"
/I "..\EQLPubViews" /I "..\EQLStrategyParams" /I
"..\..\Setup\Build\MsgDef\Include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D
"_USRDLL" /D "_CRT_SECURE_NO_DEPRECATE" /D "NOMINMAX" /D "_EQL_RT_" /D
"EQLDBUPLOADER_EXPORTS" /FD /EHa /MD /Fo"RealTime\\" /Fd"RealTimevc80.pdb"
/W3 /nologo /c /Wp64 /Zi /clr /TP /wd4793 /wd4561 /errorReportrompt /FU
"c:\WINNT\Microsoft.NET\Framework\v2.0.50727\System.dll" /FU
"c:\WINNT\Microsoft.NET\Framework\v2.0.50727\System.Data.dll"
And the following linker options:
/OUT:"..\RealTime\EQLDBUploader.dll" /INCREMENTAL:NO /NOLOGO
/LIBPATH:"..\RealTime" /DLL /MANIFEST
/MANIFESTFILE:"RealTime\EQLDBUploader.dll.intermediate.manifest" /DEBUG
/PDB:"c:\ClearCase\Work\GBPood_Equities_v3_Work_1\EQuAl\Equities\Projects\realtime\\EQLDBUploader.pdb"
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /MACHINE:X86 /ERRORREPORTROMPT
psapi.lib Rpcrt4.lib WinMM.lib libtibrvcppex.lib EQLException.lib
EQLTrace.lib EQLFileIO.lib EQLBasics.lib EQLTime.lib EQLWin32.lib EQLID.lib
EQLAppConfig.lib EQLRVFramework.lib EQLRVFrameworkContainers.lib
The application is compiled with the following options:
/GL /I "." /I "..\EQLRVFramework" /I "..\EQLRVFrameworkContainers" /I
"..\EQLIOFileReader" /I "..\libtibrvcppex" /I "..\EQLBasics" /I
"..\EQLException" /I "..\EQLFileAsyncIO" /I "..\EQLFileIO" /I "..\EQLNumeric"
/I "..\EQLTime" /I "..\EQLTrace" /I "..\EQLVersion" /I "..\EQLWin32" /I
"..\EQLXML" /I "..\EQLGenEnum" /I "..\EQLID" /I "..\EQLExchange" /I
"..\EQLMDS" /I "..\EQLAppConfig" /I "..\EQLApplication" /I "..\EQLGenIOEnum"
/I "..\MsgDef" /I "..\EQLPubViews" /I "..\EQLStrategyParams" /I
"..\..\Setup\Build\MsgDef\Include" /I "..\EQLDBUploader" /I "..\EQLTimers" /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_DEPRECATE" /D "NOMINMAX"
/D "_EQL_RT_" /D "_EQL_CONSOLE_" /FD /EHa /MD /fp:except /Fo"RealTime\\"
/Fd"RealTime\vc80.pdb" /W3 /nologo /c /Wp64 /Zi /TP /wd4949
/errorReportrompt
And the following linker options:
/OUT:"..\RealTime\EQuAlIOJournal.exe" /INCREMENTAL:NO /NOLOGO
/LIBPATH:"..\RealTime" /MANIFEST
/MANIFESTFILE:"RealTime\EQuAlIOJournal.exe.intermediate.manifest" /DEBUG
/PDB:"c:\ClearCase\Work\GBPood_Equities_v3_Work_1\EQuAl\Equities\Projects\realtime\EQuAlIOJournal.pdb"
/SUBSYSTEM:CONSOLE /MACHINE:X86 /ERRORREPORTROMPT psapi.lib Rpcrt4.lib
WinMM.lib libtibrvcppex.lib EQLException.lib EQLTrace.lib EQLFileIO.lib
EQLBasics.lib EQLTime.lib EQLWin32.lib EQLID.lib EQLTimers.lib
EQLAppConfig.lib EQLApplication.lib EQLRVFramework.lib Advapi32.lib
EQLGenEnum.lib EQLGenIOEnum.lib EQLRVFrameworkContainers.lib
EQLIOFileReader.lib EQLDBUploader.lib
We are running on Windows 2k3 SP1 servers, with .NET framework 2.0 and DEP
turned on only for essential Windows applications.
The problem appears to manifest itself most often when we install a new
version of the binaries - but this may just be coincidence. We have read
several articles on mixed code loader lock and taken as many preventative
measures as possible, still with no joy.
Please can you recommend any courses of action or potential work
arounds/known issues.
Thanks
EQuAl Team
We have an application developed in VC2005 with mixed code, primarily C++
but using a C# dll for database access (DBUploader), the dll exposes a C++
interface. We are experiencing intermittent failure on startup - no errors or
warnings are generated (including in the EventVwr). Once running there are no
issues. The process is started either manually or spawned via a Windows
service. The dll is compiled with the following compiler options:
/GL /I "." /I "..\EQLRVFramework" /I "..\EQLRVFrameworkContainers" /I
"..\libtibrvcppex" /I "..\EQLBasics" /I "..\EQLException" /I
"..\EQLFileAsyncIO" /I "..\EQLFileIO" /I "..\EQLNumeric" /I "..\EQLTime" /I
"..\EQLTrace" /I "..\EQLVersion" /I "..\EQLWin32" /I "..\EQLXML" /I
"..\EQLGenEnum" /I "..\EQLID" /I "..\EQLExchange" /I "..\EQLMDS" /I
"..\EQLAppConfig" /I "..\EQLApplication" /I "..\EQLGenIOEnum" /I "..\MsgDef"
/I "..\EQLPubViews" /I "..\EQLStrategyParams" /I
"..\..\Setup\Build\MsgDef\Include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D
"_USRDLL" /D "_CRT_SECURE_NO_DEPRECATE" /D "NOMINMAX" /D "_EQL_RT_" /D
"EQLDBUPLOADER_EXPORTS" /FD /EHa /MD /Fo"RealTime\\" /Fd"RealTimevc80.pdb"
/W3 /nologo /c /Wp64 /Zi /clr /TP /wd4793 /wd4561 /errorReportrompt /FU
"c:\WINNT\Microsoft.NET\Framework\v2.0.50727\System.dll" /FU
"c:\WINNT\Microsoft.NET\Framework\v2.0.50727\System.Data.dll"
And the following linker options:
/OUT:"..\RealTime\EQLDBUploader.dll" /INCREMENTAL:NO /NOLOGO
/LIBPATH:"..\RealTime" /DLL /MANIFEST
/MANIFESTFILE:"RealTime\EQLDBUploader.dll.intermediate.manifest" /DEBUG
/PDB:"c:\ClearCase\Work\GBPood_Equities_v3_Work_1\EQuAl\Equities\Projects\realtime\\EQLDBUploader.pdb"
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /MACHINE:X86 /ERRORREPORTROMPT
psapi.lib Rpcrt4.lib WinMM.lib libtibrvcppex.lib EQLException.lib
EQLTrace.lib EQLFileIO.lib EQLBasics.lib EQLTime.lib EQLWin32.lib EQLID.lib
EQLAppConfig.lib EQLRVFramework.lib EQLRVFrameworkContainers.lib
The application is compiled with the following options:
/GL /I "." /I "..\EQLRVFramework" /I "..\EQLRVFrameworkContainers" /I
"..\EQLIOFileReader" /I "..\libtibrvcppex" /I "..\EQLBasics" /I
"..\EQLException" /I "..\EQLFileAsyncIO" /I "..\EQLFileIO" /I "..\EQLNumeric"
/I "..\EQLTime" /I "..\EQLTrace" /I "..\EQLVersion" /I "..\EQLWin32" /I
"..\EQLXML" /I "..\EQLGenEnum" /I "..\EQLID" /I "..\EQLExchange" /I
"..\EQLMDS" /I "..\EQLAppConfig" /I "..\EQLApplication" /I "..\EQLGenIOEnum"
/I "..\MsgDef" /I "..\EQLPubViews" /I "..\EQLStrategyParams" /I
"..\..\Setup\Build\MsgDef\Include" /I "..\EQLDBUploader" /I "..\EQLTimers" /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_DEPRECATE" /D "NOMINMAX"
/D "_EQL_RT_" /D "_EQL_CONSOLE_" /FD /EHa /MD /fp:except /Fo"RealTime\\"
/Fd"RealTime\vc80.pdb" /W3 /nologo /c /Wp64 /Zi /TP /wd4949
/errorReportrompt
And the following linker options:
/OUT:"..\RealTime\EQuAlIOJournal.exe" /INCREMENTAL:NO /NOLOGO
/LIBPATH:"..\RealTime" /MANIFEST
/MANIFESTFILE:"RealTime\EQuAlIOJournal.exe.intermediate.manifest" /DEBUG
/PDB:"c:\ClearCase\Work\GBPood_Equities_v3_Work_1\EQuAl\Equities\Projects\realtime\EQuAlIOJournal.pdb"
/SUBSYSTEM:CONSOLE /MACHINE:X86 /ERRORREPORTROMPT psapi.lib Rpcrt4.lib
WinMM.lib libtibrvcppex.lib EQLException.lib EQLTrace.lib EQLFileIO.lib
EQLBasics.lib EQLTime.lib EQLWin32.lib EQLID.lib EQLTimers.lib
EQLAppConfig.lib EQLApplication.lib EQLRVFramework.lib Advapi32.lib
EQLGenEnum.lib EQLGenIOEnum.lib EQLRVFrameworkContainers.lib
EQLIOFileReader.lib EQLDBUploader.lib
We are running on Windows 2k3 SP1 servers, with .NET framework 2.0 and DEP
turned on only for essential Windows applications.
The problem appears to manifest itself most often when we install a new
version of the binaries - but this may just be coincidence. We have read
several articles on mixed code loader lock and taken as many preventative
measures as possible, still with no joy.
Please can you recommend any courses of action or potential work
arounds/known issues.
Thanks
EQuAl Team