question

Upvotes
Accepted
18 1 3 5

Error when acquire session

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);
}
treprfarfa-api
icon clock
10 |1500

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

Upvotes
Accepted
1.9k 6 9 16

@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:

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

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.


config-editor.png (20.8 KiB)
config-editor2.png (24.3 KiB)
icon clock
10 |1500

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

Upvotes
47 0 4 2

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

icon clock
10 |1500

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

Upvotes
18 1 3 5

No, i did not use the config_editor.bat

Did the error message mean some configs were missing ?

icon clock
10 |1500

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

Upvote
18 1 3 5

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

icon clock
10 |1500

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

Upvotes
1 0 1 1

@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

icon clock
10 |1500

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

Click below to post an Idea Post Idea