question

Upvotes
Accepted
1 3 1 5

When using the VB6 API version sslcom1.2.10.L1.devkit, the position name registered at DACS uses an IP different from the actual source server IP.

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?

elektronrefinitiv-realtimeelektron-sdktrepeikon-com-api
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.

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.

Upvotes
Accepted
47.4k 111 44 60

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

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
1.9k 7 9 16

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".

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
1 3 1 5

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.

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.