Error when acquire session

Raymond
Raymond Newcomer

Hi,

I tried to deploy the RFA program (Version: 8.0.0.E2.all) to a window server (Java version: 1.8 update 40).

When i started up the program, there was an error message
(the program was working fine in my local PC)

Jun 10, 2016 3:04:39 PM com.reuters.rfa.internal.session.SessionManager acquire
SEVERE: com.reuters.rfa.session
Session initialization: Could not instantiate session "myNamespace::consSession"
: connectionList not defined for Session myNamespace::consSession

Could not acquire session.

Could you provide the reason for the error message, thanks.

The programs to acquire the session are as below.

Context.initialize();
// Create a Session
String sessionName = InfAtsCommandLine.variable("session");
_session = Session.acquire(sessionName);
if (_session == null)
{
System.out.println("Could not acquire session.");
Context.uninitialize();
System.exit(1);
}
Tagged:

Best Answer

  • @Raymond The error message can be either RFA can't find a configuration setting for the session named "myNamespace::consSession" or this session setting does exist but the connectionList setting under this session is not correct.

    If the application calls Context.initialize(); method, RFA will try to lookup configuration settings from Java Preferences repository storage, and its location depends on the machine OS platform as follows:

    • [Windows] Registry
      • System Root: HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft
      • User Root: HKEY_CURRENT_USER\SOFTWARE\JavaSoft
    • [Non-Windoes i.e. Unix, Linux, Solaris] Flat File
      • System Root: ~/.java/.systemPrefs
      • User Root: ~/.java/.userPrefs

      Note: '~' is <user-home-directory>

    Therefore, RFA threw the message and it wasn't be able to work because I believe that when you deployed this RFA Java program on the different machine, but you didn't export the configuration settings from original machine to the new machine.

    To resolve this issue, We suggest you export the settings from the original machine to the new deployed machine using a GUI-based tool called config_editor.bat. This tool is normally in the <RFA Java Package>/Tools/config_editor.jar (config_editor.bat for Windows and config_editor.ksh for Non-Windows platforms). Here this is the screenshot:

    image

    You can export the settings by selecting the target session name and go to File -> Export

    image

    The export result will be in XML format. Here this is the example:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
    <preferences EXTERNAL_XML_VERSION="1.0">
    <root type="user">
    <map/>
    <node name="com">
    <map/>
    <node name="reuters">
    <map/>
    <node name="rfa">
    <map/>
    <node name="myNamespace">
    <map/>
    <node name="Connections">
    <map/>
    <node name="rsslConnection">
    <map>
    <entry key="connectionType" value="RSSL"/>
    <entry key="serverList" value="192.168.27.48"/>
    <entry key="portNumber" value="14002"/>
    <entry key="mountTrace" value="true"/>
    <entry key="logFileName" value="RFA_RSSL%u.log"/>
    <entry key="traceMsgDomains" value="NORMAL"/>
    <entry key="ipcTraceFlags" value="31"/>
    </map>
    </node>
    </node>
    <node name="Sessions">
    <map/>
    <node name="consSession">
    <map>
    <entry key="connectionList" value="myNamespace::rsslConnection"/>
    </map>
    </node>
    <node name="mySession">
    <map>
    <entry key="connectionList" value="rsslConnection"/>
    </map>
    </node>
    <node name="rsslSession">
    <map>
    <entry key="connectionList" value="rsslConnection"/>
    </map>
    </node>
    </node>
    </node>
    </node>
    </node>
    </node>
    </root>
    </preferences>

    Then, you can open this tool again from the new machine and import settings from the XML file generated previously, run the application again. It should solve this issue.

Answers

  • Have you configured RFA using the config_editor.bat script on your new machine?

  • Raymond
    Raymond Newcomer

    No, i did not use the config_editor.bat

    Did the error message mean some configs were missing ?

  • Raymond
    Raymond Newcomer

    Hi Nipat.

    Just found that the session config was missing in the config editor

    and i just added back , the problem was solved. Thank you very much

  • tsun
    tsun Newcomer

    @Raymond , if you don't mind, may I ask you a related question. I've already had a java Preferences object which reads in the properties from a xml files on Windows. RFA context.initialze takes configdb and remember them in memory, is context.initialize() smart enough to search for registry? I am not sure if my Preferences object in memory would create all keys in windows registry temporarily at runtime so that RFA app can find them.

    Thank you very kuch