onstat -g pd event command: Print push data event-related information

Use the onstat -g pd event command to display information about the push data event.

Figure 1. Syntax:

1  onstat   -g pd?  session_id   event

You can specify one of the following invocations.

onstat -g pd event
Displays a one-line summary for each event
onstat -g pd session_id event
Displays information of an event for a specific session

Example output for all events

Figure 2. onstat -g pd event command output
HCL Informix Dynamic Server Version 14.10.F -- On-Line -- Up 00:20:13 -- 185676 Kbytes
push-data subsystem structure at 0x4eebb028
push-data session structure at 0x4eecc028
push-data sql session id: 98 0x62
Marked as detachable session, session unique id: 2
Number of event conditions: 1
    Push-data event structure at 0x4ece0028
        Full Table Name: test:informix.t1
User data:
Replicate name: pushrepl_98_1497908205_1628814989
Note:
  • Events can only be registered on tables with logging enabled.
  • Events require a primary key, a unique index, or ER key to register events on a table.
  • Events cannot be registered on sysmaster pseudo tables.
  • Events cannot be registered on timeseries VTI tables.
  • Event condition SELECT statements cannot include large objects such as byte, text, blob, clob, or collection datatypes.
  • WHERE clauses of event condition SELECT statements cannot refer to other tables or contain sub-queries.
  • A read call always returns completed event documents.
  • The following message is returned upon timeout from the read API:
    {ifx_isTimeout:true}
    
  • The following message is returned if event documents are discarded from exceeding the max_pending_ops attribute threshold. The document contains the cumulative count of the total number of discarded event documents.
    {ifx_warn_total_skipcount:10}
  • The following error message is returned with the ifx_error attribute if the input buffer size is too small, or when other fatal error conditions arise:
    {ifx_error: Smartblob read API buffer size ## is too small, expected
    size should be atleast ##}
    
  • Event data will not be staged if push-data client is disconnected from the server.
  • The client cannot read events for the past time. The commit_logid, commit_logpos and commit_time values in the input document cannot be set for the past time.
  • The smartblob read API always returns data in JSON document format. This includes event data, warning messages, and error conditions.
  • The input buffer value that is passed to the smartblob read API should be at least 1KB in size.
  • When the maxrecs attribute for the session is set to more than one record, then the smartblob read API can return data for multiple events in one read call. The format of the output document format is as follows:
    { [ {document1}, {document2}]}
  • When the server is restarted, the push-data client might receive duplicates of event data. Therefore, it is recommended to discard duplicate event data by saving the last read event commit_logid, and commit_logpos records, and use this commit log position to register push-data event conditions with the server.
  • While registering new push-data event conditions, an internal transient cascade replicate definition is created. The replicate definition gets deleted when a session disconnects from the server. Cascading logic are added to capture changes applied by ER apply threads.
  • Detached sessions will be marked as detachable session, session unique id: 2