question

Upvotes
Accepted
1 0 0 0

Potential deadlock with OmmConsumer

We are creating an EMA consumer, and then opening item streams (100 items batched in each ReqMsg) with the consumer. We simply stop seeing new messages a few minutes after the consumer is established, without any exceptions or errors. This happens while the loop of opening item streams is ongoing. Debugging shows that there is potentially a deadlock situation occurring, as illustrated by the stack traces below. Is there some kind of rate/limit as to how batched requests should be created (we have a single Machine ID and hence a single EMA consumer). Version used is 3.6.7.1, running Kotlin. The core code used to batch requests is below


private suspend fun requestBatchRics(rics: List<String>) {
rics.chunked(100).forEach {
    val ricArray = EmaFactory.createOmmArray().apply {
        it.forEach { ric -> add(EmaFactory.createOmmArrayEntry().ascii(ric)) }
    }

    val batchList = EmaFactory.createElementList().apply {
        add(EmaFactory.createElementEntry().array(EmaRdm.ENAME_BATCH_ITEM_LIST, ricArray))
        if (REQUEST_SUBSET_MARKET_DATA_FIELDS) {
            val viewDataArray = EmaFactory.createOmmArray().apply {
                FIELD_IDS.values.forEach { fieldValue ->
                    add(EmaFactory.createOmmArrayEntry().intValue(fieldValue))
                }
            }

            add(EmaFactory.createElementEntry().uintValue(EmaRdm.ENAME_VIEW_TYPE, 1))
            add(EmaFactory.createElementEntry().array(EmaRdm.ENAME_VIEW_DATA, viewDataArray))
        }
    }

    EmaFactory.createReqMsg()

    val requestMessage = EmaFactory
        .createReqMsg()
        .serviceName(service)
        .payload(batchList)

    consumer.registerClient(reqMsg, this)
}


1667882413559.png

#technologyema-api#productmulti-threadingommconsumer
1667882413559.png (324.5 KiB)
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.

<AHS>

issue #218 is still open, extending the triage.

<AHS>

GitHub - #issues 218 is still open. The Dev team is working on this issue.

Extending triage for a month.

@charanya

Hi,

Thank you for your participation in the forum.

Are any of the replies below satisfactory in resolving your query?

If yes please click the 'Accept' text next to the most appropriate reply. This will guide all community members who have a similar question.

Otherwise please post again offering further insight into your question.

Thanks,

AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,


AHS


Upvotes
Accepted
14.2k 30 5 10

Hi @charanya

Please be informed that it's mentioned in issue #218 on GitHub that this is fixed in the Real-Time-SDK-2.0.8.L1.

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
78.8k 250 52 74

@charanya

Thanks for reaching out to us.

I found that issue #218 has been submitted on GitHub.

Please wait for the response from the development team on GitHub.

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.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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