# 7.29. ODPI-C Structure dpiSubscrMessage

This structure is used for passing messages sent by notifications to subscriptions. It is the second parameter to the callback method specified in the dpiSubscrCreateParams structure.

dpiEventType dpiSubscrMessage.eventType

  Specifies the type of event that took place which generated the notification. It will be one of the values from the enumeration dpiEventType.

const char *dpiSubscrMessage.dbName

  Specifies the name of the database which generated the notification, as a byte string in the encoding used for CHAR data. This value is not populated when the `eventType` member is set to the values DPI_EVENT_AQ or DPI_EVENT_DEREG.

uint32_t dpiSubscrMessage.dbNameLength

  Specifies the length of the `dbName` member, in bytes.

dpiSubscrMessageTable *dpiSubscrMessage.tables

  Specifies a pointer to an array of dpiSubscrMessageTable structures representing the list of tables that were modified and generated this notification. This value is only populated when the value of the `eventType` member is set to DPI_EVENT_OBJCHANGE.

uint32_t dpiSubscrMessage.numTables

  Specifies the number of structures available in the `tables` member.

dpiSubscrMessageQuery *dpiSubscrMessage.queries

  Specifies a pointer to an array of dpiSubscrMessageQuery structures representing the list of queries that were modified and generated this notification. This value is only populated when the value of the `eventType` member is set to DPI_EVENT_QUERYCHANGE.

uint32_t dpiSubscrMessage.numQueries

  Specifies the number of structures available in the `queries` member.

dpiErrorInfo *dpiSubscrMessage.errorInfo

  Specifies a pointer to a dpiErrorInfo structure. This value will be NULL if no error has taken place. If this value is not NULL the other members in this structure will not be populated.

const void *dpiSubscrMessage.txId

  Specifies the id of the transaction which generated the notification, as a series of bytes. This value is not populated when the `eventType` member is set to the values DPI_EVENT_AQ or DPI_EVENT_DEREG.

uint32_t dpiSubscrMessage.txIdLength

  Specifies the length of the `txId` member, in bytes.

int dpiSubscrMessage.registered

  Specifies whether the subscription is registered with the database (1) or not (0). The subscription is automatically deregistered with the database when the subscription timeout value is reached or when the first notification is sent (when the quality of service flag DPI_SUBSCR_QOS_DEREG_NFY is used).

const char *dpiSubscrMessage.queueName

  Specifies the name of the queue which has messages available to dequeue, as a byte string in the encoding used for CHAR data. This value is only populated when the `eventType` member is set to the value DPI_EVENT_AQ.

uint32_t dpiSubscrMessage.queueNameLength

  Specifies the length of the `queueName` member, in bytes.

const char *dpiSubscrMessage.consumerName

  Specifies the consumer name of the queue which has messages available to dequeue, as a byte string in the encoding used for CHAR data. This value is only populated when the `eventType` member is set to the value DPI_EVENT_AQ. It is also only populated if the queue that has messages to dequeue is a multi-consumer queue.

uint32_t dpiSubscrMessage.consumerNameLength

  Specifies the length of the `consumerName` member, in bytes.

const void *dpiSubscrMessage.aqMsgId

  Specifies message id of the message which is available to dequeue, as a series of bytes. This value is only populated when the `eventType` member is set to the value DPI_EVENT_AQ.

uint32_t dpiSubscrMessage.aqMsgIdLength

  Specifies the length of the `aqMsgId` member, in bytes.