SAP Notifications¶
The seal-co-notifier service uses the NATS key-value store to cache the current SAP systems and device configurations for the whole cluster.
Data Structure of the Buckets¶
The key-value store uses buckets to store the key-value pairs. seal-co-notifier service creates five buckets.
co-notifier-reply-groups¶
The bucket contains the SAP RGM (Reply Message Group) configurations received from the SAP BCXOM function SXMI_XOM_RMGS_QUERY.
- key: SAP system destination (normally 3 characters) in base64 encoded format
-
value: JSON object with the following structure:
{ "ROMS_NAME": { "OMSFLAGS":"10.10.10.69 631 PLOSSYS IPP", "R3FLAGS":" XX X", "RECONFIG":"030", "ROMS":"ROMS_NAME", "REPLY_GROUPS": [ { "RMGID":"CDN1LOMS", "CALLBTRGT":"SAPSAPSAP_DN1"," JCALLBIV":"020", "JCALLBAMNT":"100", "DCALLBIV":"010", "DCALLBAMNT":"050", "RETRYIV":"120", "R3FLAGS":"05 XX XX", "OMSFLAGS":"" } ] } }
co-notifier-printer-sap¶
The bucket contains the SAP device configurations received from the SAP BCXOM function SXMI_XOM_DEVICES_QUERY.
- key: SAP destination name in base64 encoded format
-
value: JSON object with the following structure:
{ "ROMS_NAME": [ {"DEST": "printer1", "RMGID": "RMGID1"}, {"DEST": "printer2", "RMGID": "RMGID1"} ], "ROMS_NAME2": [ {"DEST": "printer3", "RMGID": "RMGID3"}, {"DEST": "printer4", "RMGID": "RMGID4"} ] }
co-notifier-printer-mappings¶
The bucket contains the mapping of the PLOSSYS Output Engine printer names to the SAP device names. This is used to send the correct device notifications to the respective SAP system.
- key: Output Engine printer name in base64 encoded format
-
value: JSON object with the following structure:
{ "printerName": "printer1", "destinations": { "DN1": { "roms": "ROMS_NAME", "rmgid": "RMGID1" }, "DN2": { "roms": "ROMS_BANE", "rmgid": "RMGID7" } } }
co-notifier-job-counters¶
The bucket contains the job counters for each SAP system RMGID (Reply Message Group ID). These are used to realize the JCALLBAMNT parameter of a LOMS (Logical Output Management System). Once the job counter has reached the configured value the co-notifier will send all job notifications to the respective SAP system. The job counter is decreased by the number of sent notifications after successful transmission.
- key: SAP system RMGID (Reply Message Group ID) in base64 encoded format
-
value: JSON object with the following structure:
{ "roms": "ROMS_NAME", "counter": 42 }
co-notifier-device-counters¶
The bucket contains the device counters for each SAP system RMGID (Reply Message Group ID). These are used to realize the DCALLBAMNT parameter of a LOMS (Logical Output Management System). Once the device counter has reached the configured value the co-notifier will send all device notifications to the respective SAP system. The device counter is decreased by the number of sent notifications after successful transmission.
- key: SAP system RMGID (Reply Message Group ID) in base64 encoded format
-
value: JSON object with the following structure:
{ "roms": "ROMS_NAME", "counter": 69 }
Debug the Buckets¶
Watch the Buckets¶
You can use NATS CLI to watch the buckets and see the current values by using the nats kv watch command.
Example - watch the co-notifier-job-counters bucket
nats kv watch co-notifier-job-counters
Clear the Cache¶
In some cases, you may want to clear the cache of co-notifier service. Clearing the cache will remove all entries from the buckets and force the co-notifier to re-fetch the configurations from the SAP systems.
Clearing the cache should not affect in-flight notifications, but it may lead to temporary delays in notification transmissions until the cache is repopulated.
Caution - clear the cache
It is recommended to stop all instances of seal-co-notifier service before clearing the cache. This will prevent unplanned restarts of the service or in rare cases retransmission of in-flight notifications.
Using the NATS CLI command nats kv delete you can delete singular entries or clear the entire bucket. You need to confirm the deletion by typing y when prompted.
Example - delete a specific entry in the co-notifier-job-counters bucket
nats kv delete co-notifier-job-counters BASE64_ENCODED_RMGID
Example - delete the entire bucket co-notifier-job-counters
nats kv del co-notifier-job-counters