0 Replies Latest reply on Aug 1, 2018 7:49 AM by 3358429

    OCIAQDeq

    3358429

      We have an OCI application making extensive use of AQ that runs on Red Hat Linux 7 against a variety of Oracle DBMS versions using client 11.2.0.4 and 12.2.0.1. The question from our developer is about the behaviour of OCIAQDeq if the application receives a signal (e.g. SIGTERM) when it is waiting? (the function is called with a non-zero wait time). The options would seem to be:

      • Return indicating a timeout? (Which is not 100% true but we could work with)
      • Return indicating some other condition? (Interrupted?)
      • Ignore the signal and continue waiting until either a message has arrived or the original timeout has expired?

      Additionally is there any way specifically to explicitly request that a signal should terminate the call immediately (if that is not the default)

       

      OCIAQDeq is called with the following dequeue options:

       

      OCI_ATTR_WAIT              = <a configurable, non-zero value>

          OCI_ATTR_NAVIGATION        = OCI_DEQ_FIRST_MSG

          OCI_ATTR_VISIBILITY        = OCI_DEQ_ON_COMMIT

          OCI_ATTR_DEQ_MODE          = OCI_DEQ_REMOVE

       

          OCI_ATTR_MSG_DELIVERY_MODE = OCI_MSG_PERSISTENT

       

      Any info gratefully received.

       

       

       

       

      OCI_ATTR_WAIT              = <a configurable, non-zero value>

          OCI_ATTR_NAVIGATION        = OCI_DEQ_FIRST_MSG

          OCI_ATTR_VISIBILITY        = OCI_DEQ_ON_COMMIT

          OCI_ATTR_DEQ_MODE          = OCI_DEQ_REMOVE

          OCI_ATTR_MSG_DELIVERY_MODE = OCI_MSG_PERSISTENT