When using the VB6 API version sslcom1.2.10.L1.devkit, the position name registered at DACS uses an

When using VB API, the position name is different from actual source server IP. Eg Source server IP is 180.*.*.*, the position name is 10.*.*.*. When using the Java EMA API, the position IP is same as the Source server IP. What could be different?

Best Answer

  • @Pulaputra.Sudheer

    Does the server have multiple network interface cards?

    Typically, SFC COM will use gethostbyname function to retrieve the IP address of the machine and use the first IP as a position.

    You can use nslookup to verify the IP address of the server.

Answers

  • Hi @Pulaputra.Sudheer, I'm not sure what is your expectation

    1. serverIP and position have the same value in sslcom1.2.10.L1.devkit
    2. position IP and Source server IP have the different values in EMA Java

    Is it possible for me to see the configuration files of both applications?

    1. serverIP and position have different values when using sslcom1.2.10.L1.devkit
    2. position IP and Source server IP have the same values when using EMA Java

    We have not hardcoded the position names. But both API's running on the same server are using different position names. This is giving us the error

    state: state: closed/suspect/Not entitled - text: "Access denied-already using position *.*.*.*".

    We are able to run only one api at a time. We expect both API to have the same position name as they are running on the same server.

  • Normally the message “Access Denied-already using position x.x.x.x” was generated by DACS Server (which is an authorization/entitlement component) when a user runs a client application and uses the same DACS username on multiple machines.


    Basically, each DACS user has a limit number of simultaneous login from a particular IP address. This will need to be increased to allow the user to connect. The number of simultaneous logins allowed for each user can be set on DACS Console.

    For this case, it seems like the DACS server does not allow simultaneous logins. However, if the DACS server allows logins from multiple addresses. You can customize 'position' using the method as follows:

    <<EMA Java>>

    You can use an OmmConsumerConfig.position() method to specify a value of position:

    AppClient appClient = new AppClient();

    OmmConsumerConfig config = EmaFactory.createOmmConsumerConfig();

    consumer = EmaFactory.createOmmConsumer(config.host("192.168.27.46:14002").username("user").position("10.20.30.40/test"));

    Result:

    Outgoing Reactor message (Wed Feb 15 16:36:46 ICT 2017):
    <!-- rwfMajorVer="14" rwfMinorVer="1" -->
    <REQUEST domainType="LOGIN" streamId="1" containerType="NO_DATA" flags="0x04 (STREAMING)" dataSize="0">
    <key flags="0x26 (HAS_NAME|HAS_NAME_TYPE|HAS_ATTRIB)" name="user" nameType="1" attribContainerType="ELEMENT_LIST">
    <attrib>
    <elementList flags="0x08 (HAS_STANDARD_DATA)">
    <elementEntry name="ApplicationId" dataType="ASCII_STRING" data="256"/>
    <elementEntry name="Position" dataType="ASCII_STRING" data="10.20.30.40/test"/>
    <elementEntry name="Role" dataType="UINT" data="0"/>
    </elementList>
    </attrib>
    </key>
    <dataBody>
    </dataBody>
    </REQUEST>

    <<SSL COM>>

    In SSL COM API, there are two position-related parameters that you need to check:

    *UserName

    DACS security specification in BNF format. This string should be formatted as follows:

    user_name+application_id+position_info

    The “+” character is used as a separator. If set, at least the user_name portion should be specified.

    *useDefaultDACSUserName

    If the DACS username is defined with the parameter "UserName" in the registry <HKLM SOFTWARE PATH>\Reuters\Common\DACS, the username of SSL COM configuration will be overridden with the DACS username by default.

    To disable this default DACS username, the parameter "*useDefaultDACSUserName" must be set to "False". The default value is "True".

  • Changing the registry for the VB API does not help. However, when we change the Username(username+AppID+Position) in code, the position name is appended to the existing Position name. Eg - 172.*/10*. What we want is for the new position given in the code to replace the existing position. But it is appending and not replacing.