RFAJ8.0 ConfigDb, unable to acquire a Session

Hello,

I'm trying to initialize Context using a ConfgDb instance :

configDb.addVariable("com.reuters.rfa.TestDistrib.Connections.TestDistrib.serverList","spl-trep-101");
configDb.addVariable("com.reuters.rfa.TestDistrib.Connections.TestDistrib.portNumber","14002");
configDb.addVariable("com.reuters.rfa.TestDistrib.Connections.TestDistrib.connectionType","RSSL");
configDb.addVariable("com.reuters.rfa.TestDistrib.Sessions.TestDistrib.connectionList","TestDistrib");

Context.initialize(configDb); // returns OK
Session.acquire("TestDistrib"); // returns null

I also tried to acquire a session using string "com.reuters.rfa.TestDistrib" but it didn't work either.

I know it's a beginner question but.. can anyone help ?

In advance thank you.

Best Answer

  • Hello @claude.thomas,

    In the configuration settings via ConfigDb, you can omit 'com.reuters.rfa.' for the first parameter (scopedVarName).

    Kindly modify the source code to be as follows:

    configDb.addVariable("TestDistrib.Connections.TestDistrib.serverList","spl-trep-101");
    configDb.addVariable("TestDistrib.Connections.TestDistrib.portNumber","14002");
    configDb.addVariable("TestDistrib.Connections.TestDistrib.connectionType","RSSL");
    configDb.addVariable("TestDistrib.Sessions.TestDistrib.connectionList","TestDistrib");

    Context.initialize(configDb); // returns OK
    Session.acquire("TestDistrib::TestDistrib"); // returns null

    In the snippet code above, please see the meaning of strings' position below.

    • configDb.addVariable("<nameSpace>.Sessions.<sessionName>.connectionList","TestDistrib");
    • configDb.addVariable("<nameSpace>.Connections.<connectionName>.serverList","spl-trep-101");
    • configDb.addVariable("<nameSpace>.Connections.<connectionName>.portNumber","14002");
    • configDb.addVariable("<nameSpace>.Connections.<connectionName>.connectionType","RSSL");
    • Session.acquire("<nameSpace>:<sessionName>");

    Note that a character '.' is not allowed for the <nameSpace> string value. If you try to use a nameSpace that contain it. For example; com.reuters.rfa.TestDistrib, RFA will return the following error message:

    // A result from..
    // Session.acquire("com.reuters.rfa.TestDistrib::TestDistrib");

    *****************************************************************************
    * Begin RFA Java StarterConsumer Program *
    *****************************************************************************
    *com.reuters.rfa.TestDistrib.Connections.TestDistrib.serverList : spl-trep-101
    *com.reuters.rfa.TestDistrib.Connections.TestDistrib.portNumber : 14002
    *com.reuters.rfa.TestDistrib.Connections.TestDistrib.connectionType : RSSL
    *com.reuters.rfa.TestDistrib.Sessions.TestDistrib.connectionList : TestDistrib


    May 04, 2017 11:00:46 AM com.reuters.rfa.internal.session.SessionManager acquire
    SEVERE: com.reuters.rfa.session
    Session initialization: Could not instantiate session "com.reuters.rfa.TestDistrib::TestDistrib" : Instance cannot contain "."


    Could not acquire session.

    Hope this helps!

Answers

  • Hello,

    Thank you very much, it now works.

    Indeed, I didn't correctly set the parameter for Session.acquire method.