question

Upvotes
Accepted
5 3 1 4

This message is NOT formated since message file is NOT open!

Hello, I'm running RFA .NET Tutorials\step 7. The solution references library rfanet8.0.1.E1.win\Libs\WIN_64_VS110\RFA8_NET110_x64.dll.

When I debug the example I see following errors in the Windows console:

2017/06/05 17:47:31.905 INFO
    <- Received LoggerNotifyEvent:
    [Mon Jun 05 17:47:31 2017]: (ComponentName) Static: (Severity) Information:
This message is NOT formated since message file is NOT open!

Morover there are popup dialogs shown which contain the following errors:

File: ..\..\..\Logger\Impl\MessageFormatterImpl.cpp
Line: 80
Problem:
::LoadLibrary failed in MessageFormatterImpl::init() for component name "Static", with logger message file "RFA7_MsgFile". This message file could not be found.  Check component logger configuration. Last error: 126
RFA_VERIFY( 0 ) failed
Stack Trace:
0x000007FEDA45BA90  C:\netdev\ReutersRFA.NETTutorials\step7\Debug\RFA8_NET110_x64.dll: GenerateStackTrace() + 176 bytes
           c:\jenkins\workspace\dlibnetcore\os\vs110-64\rfaut\common\support\rfainternal\impl\rfaverify.cpp, line 591
0x000007FEDA45CF48  C:\netdev\ReutersRFA.NETTutorials\step7\Debug\RFA8_NET110_x64.dll: __RFA_ProblemReport() + 984 bytes
           c:\jenkins\workspace\dlibnetcore\os\vs110-64\rfaut\common\support\rfainternal\impl\rfaverify.cpp, line 392
0x000007FEDA53D4D4  C:\netdev\ReutersRFA.NETTutorials\step7\Debug\RFA8_NET110_x64.dll: rfa::logger::MessageFormatterImpl::init() + 420 bytes
           c:\jenkins\workspace\dlibnetcore\os\vs110-64\rfaut\logger\impl\messageformatterimpl.cpp, line 80

Do you know how this problem can be resolved?

Note that the original example referenced RFA7_NET110_x64 while now it is only possible to download newer RFA8_NET110_x64 which may not be compatible with the example projects?

treprfarfa-apiloggingexample
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
7.6k 15 6 9

@petr.synek

It looks like ExampleRFA.cfg still use RFA7 message files

\Logger\ComponentLoggers\Connections\messageFile= "RFA7_Connections" 
\Logger\ComponentLoggers\RSSL_Adapter\messageFile= "RFA7_RSSL_Adapter" 
\Logger\ComponentLoggers\RSSL_Cons_Adapter\messageFile= "RFA7_RSSL_Cons_Adapter" 
\Logger\ComponentLoggers\RSSL_Prov_Adapter\messageFile= "RFA7_RSSL_Prov_Adapter" 
\Logger\ComponentLoggers\SessionCore\messageFile= "RFA7_SessionLayer" 
\Logger\ComponentLoggers\Static\messageFile= "RFA7_MsgFile" 

You have to change the config to use RFA8 message files instead

\Logger\ComponentLoggers\Connections\messageFile= "RFA8_Connections" 
\Logger\ComponentLoggers\RSSL_Adapter\messageFile= "RFA8_RSSL_Adapter" 
\Logger\ComponentLoggers\RSSL_Cons_Adapter\messageFile= "RFA8_RSSL_Cons_Adapter" 
\Logger\ComponentLoggers\RSSL_Prov_Adapter\messageFile= "RFA8_RSSL_Prov_Adapter" 
\Logger\ComponentLoggers\SessionCore\messageFile= "RFA8_SessionLayer" 
\Logger\ComponentLoggers\Static\messageFile= "RFA8_MsgFile" 

And then copy message file from

<RFA.NET Installation Path>/Libs/WIN_64_VS110/RFA8_MsgFile110_x64.dll

to running directory or folder Debug for the tutorial.

Alternative way to avoid issue about loading message file in RFA application, you might add the following config to RFA configuration file (ExampleRFA.cfg)

\Logger\AppLogger\useInternalLogStrings =True 

When enabled, uses log strings stored internally in RFA libraries or DLL’s. RFA[x]_MsgFile.dll (static) is not required when this option is enabled. Using this option will override windowsLoggerEnabled and not log events.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thanks. The issue was solved by fixing the ExampleRFA.cfg. Renaming strings like RFA7_Connections to RFA8_Connections etc. did the trick. Copying of the RFA8_MsgFile110_x64.dll into the Debug folder was not necessary.

Upvotes
31.8k 37 11 19

Hi @petr.synek,

This error is caused by missing RFA8_MsgFileXX_YY.dll, that should be included together with RFA8_NETXX_YY.dll.

Please copy it from rfanet toolkit ->Libs->your build

Including an excerpt from RFA.NET Developer Guide, section Deployment, as in many cases you will require addtional DLLs:

"To run the application, users must ensure that the following dll files exist in the current .exe file directory (“rfanet<major>.<minor>.<maintainance>.<load number>.win.rrg \Examples\YourExample\Release_WIN_xx_VSyy\”) or /windows/system32: RFA7_NETyy.dll, RFA7_MsgFileyy.dll, DACS7_lock_NETyy.dll (if used) and AnsiPage_NETyy.dll (if used). If these dll files do not exist in these directories, users must specific the PATH environment variable to point to these files."

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thanks for your response. Actually adding the RFA8_MsgFileXX_YY.dll into the Debug folder did not fix it. The issue was in the ExampleRFA.cfg file which was still configured for RFA7.