Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-1573

Transaction timeout incompatible with block forever

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Won't Do
    • Major
    • None
    • None
    • BlackTie
    • None

    Description

      Currently we set a transaction timeout (e.g. in TestRollbackOnly.cxx we call tx_set_transaction_timeout)

      This ends up putting a timetolive on the message of the same duration.

      Now, if this message is not received within the period of time it will expire.

      However we also use a block forever waiting for the response.

      This can lead to a call never returning.

      i.e.
      server advertises queue
      client sends message with small timeout (e.g. 4) and then blocks forever waiting response
      server gets round to advertising queue 5 seconds later but never sees the clients initial request

      client is blocked forever

      I realise that we are meant to block forever when a client issues a tpcall under transactional conditions but something needs to be done as this can easily happen on slow machines?

      Perhaps we need to make use of the DLQ to wake up the blocked client with an error message??

      Perhaps the client doesn't block forever and just calls txrollback if nothing is heard back??

      Attachments

        Activity

          People

            Unassigned Unassigned
            thjenkin@redhat.com Tom Jenkinson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: