Inserting tuples with inject points
You can insert new tuples and punctuation into a port with an inject point.
An inject point is created for a specific operator port. The inject point has an associated tuple
whose field values can be modified with the (u)pdate command. You then
use the (c)ontinue command to inject the tuple into the associated
port.
You can inject a tuple on a port without setting a (b)reakpoint on that port. In
fact, an injection point does not stop the debugger (as a breakpoint does). One can stop
the debugger in a different (or same) location than the injection point. The injection
point reserves only a tuple to be injected. The (c)ontinue command
injects the tuple in the stream. When the (c)ontinue command runs, the
tuple is injected after the current tuple on that port.
A new inject point can be created with the inject point command:
i <operator-name> (i|o) (<port-index> | *)
(sdb) i CountOneLine o 0 Set + 2 Injectpoint CountOneLine o 0 (sdb)This command creates an inject point for the output port (
o)
identified with port index zero (0) for operator
CountOneLine. The tuple for the new inject point contains default
values for all fields. To change the values, use the (u)pdate
command.(u)pdate command. The first parameter is the probe point ID of the
previously defined inject point. The second and third parameters are the field name and
the new value for the
field.(sdb) u 2 lines lines, 3, int32 wcs, {words=354467584,chars=0}, tuple<int32 words,int32 chars> (sdb) u 2 wcs {words=34,chars=4} lines, 3, int32 wcs, {words=34,chars=4}, tuple<int32 words,int32 chars> (sdb)
(c)ontinue command. The parameter to the
(c)ontinue command is the probe point ID of the previously defined
inject point.(sdb) c 2
Tuple injected
(sdb)