Websocket Contribution to an ATS which use PE/PPE Permission

Hi Team,I have a ATS Server which use ATS PE/PPE Permission. I want to send contribution to this ATS via Websocket. But got the error message "A29: Post message did not contain permission data."
In Eikon Excel I just need to send Fid: PROD-PERM with PPE of the ATS Container.
Can set .permissionData(ByteBuffer.wrap() in Websocket?

Best Regards
Michael

Best Answer

  • Hi Veerpath, thank you for your reply. With the correct DACS Lock is woks perfect.
    I'll now look into my DACS Lock generation because there is something wrong on my side.
    Thank you very much for your support. I will search now again for the DACS lock documentation.

    Best Regards

    Michael

Answers

  • Hi @michael.theimer01

    You create a DACS Lock using the DacsLock API from other APIs (i.e. ETA Java) and set it in the "PermData" attribute of Post Message. However, the "PermData" attribute is a buffer, so you need to encode the DACS Lock in Base64 string before setting it in the "PermData".

    For example, "PermData": "AwABECc=" for DACS Lock is 0x0300011027.

  • Hi Veerpath,
    are you able to give me an example for ETA?
    I want to use Web Socket API.
    Best Regards

    Michael

  • Service ID: 3333 PE: 2000

  • Hi Michael,

    The example application, authlock, is provided in the Elektron SDK Package. The location is \Java\Eta\Applications\Examples\src\main\java\com\thomsonreuters\upa\examples\authlock.

    For more information about the DACS library, please see the ETAJ_DacsLibraryFunctions.pdf in ETA Docs folder of the package.

  • Hi @michael.theimer01

    I haven't tried it yet, but I believe you could just add "PermData" attribute to the post json body.

    {
    "Ack":true,
    "Domain":"MarketPrice",
    "ID":2,
    "PermData":"AwABECc=",
    "Message":{
    "Domain":"MarketPrice",
    "Fields":{
    "ASK":45.57
    },
    "ID":0,
    "Type":"Update"
    },
    "PostID":1,
    "PostUserInfo":{
    "Address":"127.0.0.1",
    "UserID":10000
    },
    "Type":"Post"
    }<br>

    See the Websocket doc on post message .

  • Hi Veerpath,
    it still not working. What encoded String you get out for ServiceID=333 and PE=2000?

    Kind Regards

    Michael

  • My String for PermData => "w599w7Y=" (ServiceId=333,PE=2000)

  • Hi Veerpath,
    I have now tried many things but it still not working.
    I got a mail from you via the portal which mention to use: "PermData":"0x0300011027",
    but in the portal I see "PermData":"AwABECc=".?
    Strange is also that I got no response from ADS after the Post MSG?

    Can you please test it on your side to be sure it's working?

    I have ServiceId:333 and PE:2000 and my PermDate in the PostMSG is: w599w7Y=

    Thank you very much for your support.

    Kind Regards

    Michael

  • Hi Veerpath,
    was you already able to check my PermData String?
    Is w599w7Y= correct for ServiceId:333 and PE:2000?

    Also was you able to test it on your end so far?
    Best regards

    Michael

  • Hi @michael.theimer01

    With JDACSLock, the perm data generated for ServiceID:333 and PE:2000 is 0x03014D2000C0. It is Base64 encoded to "AwFNIADA". I have tested the scenario using Web Socket posting to my OMM Interactive Provider via TREP 3.2. The RSSL tracing indicates that Provider can receive PermData correctly.

    My WebSocket Post message: "PermData": "AwFNIADA"

    {
    "Ack": true,
    "Domain": "MarketPrice",
    "ID": 1,
    "Key": {
    "Service": "DIRECT_FEED",
    "Name": "TRI.N"
    },
    "Message": {
    "Domain": "MarketPrice",
    "Fields": {
    "ASK": 45.57,
    "ASKSIZE": 19,
    "BID": 45.55,
    "BIDSIZE": 18
    },
    "ID": 0,
    "Type": "Update"
    },
    "PermData": "AwFNIADA"
    "PostID": 1,
    "PostUserInfo": {
    "Address": "127.0.0.1",
    "UserID": 55555
    },
    "Type": "Post"
    }

    RSSL tracing on Provider side: permData="0301 4D20 00C0"

    <postMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="1" containerType="RSSL_DT_MSG" flags="0xE6 (RSSL_PSMF_HAS_POST_ID|RSSL_PSMF_HAS_MSG_KEY|RSSL_PSMF_POST_COMPLETE|RSSL_PSMF_ACK|RSSL_PSMF_HAS_PERM_DATA)" postId="3" permData="0301 4D20 00C0" postUserId="55555" postUserAddr="127.0.0.1" dataSize="36">
    <key flags="0x7 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE)" serviceId="1" name="TRI.N" nameType="1"/>
    <dataBody>
    <!-- rwfMajorVer="14" rwfMinorVer="1" -->
    <updateMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="0" containerType="RSSL_DT_FIELD_LIST" flags="0x0" updateType="0 (RDM_UPD_EVENT_TYPE_UNSPECIFIED)" dataSize="25">
    <dataBody>
    <fieldList flags="0x8 (RSSL_FLF_HAS_STANDARD_DATA)">
    <fieldEntry fieldId="25" data="0C11 CD"/>
    <fieldEntry fieldId="31" data="0E13"/>
    <fieldEntry fieldId="22" data="0C11 CB"/>
    <fieldEntry fieldId="30" data="0E12"/>
    </fieldList>
    </dataBody>
    </updateMsg>
    </dataBody>
    </postMsg>
  • Sorry for confusing you. The PermData : 0x0300011027 is not valid PermData. The “C” flags, the
    end of the DACS
    Lock, is missing. You can find more information about DACS Lock structure in the ETAJ_DacsLibraryFunctions.pdf document.

    image