Related Readings:
jPOS and SQL Server: A Compilation of Best Practices
Here’s a Release Note I wrote about a new feature we implemented this week into our production environments (some redacting performed – see items in brackets):
-------------------------------------------------
Add ‘node’ and ‘channelName’ columns to tranlog:
When troubleshooting issues in the OLS.Switch operating environment, it would be of great assistance to know the node (i.e., APP01 or APP02) and – if external authorization is attempted – channel (e.g., for an FDR transaction, Hagerstown or Chandler) affiliated with a specific transaction. This information allows the investigator to choose the right node for q2 log selection, make well-formed questions to remote partners, formulate SQL queries tallying node- or channel-specific activity, etc.
The node information is populated from the OS-level server name. For example, the server name for APP01 is app01.nn.yyyyyyy.us. [This is not set inside the OLS application; it is OS-level information configured by the System Administrator.] The first portion of the name – ‘app01’ in this example – is placed into the ‘node’ column. By default, the ‘node’ column is populated for every transaction that traversed the OLS application.
The channel information is populated from the ‘channel-adapter’ name in the channel-related XML deploy files. For example, in the FDR set-up, the 10_fdr_channel.xml file has a ‘channel-adapter’ name of ‘fdr’:
<channel-adaptor name='fdr' class="org.jpos.q2.iso.ChannelAdaptor" logger="Q2">
…and the 10_fdr_channel_1.xml file has a ‘channel-adapter’ name of ‘fdr1’:
<channel-adaptor name='fdr1' class="org.jpos.q2.iso.ChannelAdaptor" logger="Q2">
As a general rule, for dual-channel muxes the 10_nnn_channel.xml file has the ‘channel-adapter’ name of ‘nnn’ and the 10_nnn_channel_1.xml file has the ‘channel-adapter’ name of ‘nnn1.’ These names are the same across nodes, i.e., in the FDR example described above ‘fdr’ and ‘fdr1’ are the channel-adapter names on the APP01 and APP02 nodes. When taken together, the node and channelName columns provide sufficient information to determine the external authorization path for a transaction.
The ‘channelName’ column is only populated when:
- The transaction class is externally authorized – so, for example, the column is not populated for local application authorization transactions like employee validation and discount coupons.
- The transaction attempted an external authorization – so, for example, the column is not populated for a Credit transaction in which the card-id-source = ‘M’ (i.e., a Manager Override – a locally authorized variation of Credit).
- The transaction model governing the external interface is ISO8583 (the ‘Channel Info Filter’ – see next bullet – currently does not extend to non-ISO8583 interfaces) – so, for example, the column is not populated on [National Department Store], [Electronic Check Acceptance Provider] and Verizon transactions.
- The ‘Channel Info Filter’ is added to the channel’s XML definition file:
<filter class="org.jpos.iso.filter.ChannelInfoFilter" direction="outgoing">
<property name="channel-name" value="1000" />
</filter>
The filter is added to the following ISO8583 interfaces: AMEX; [Private Label Provider]; FDR; Green Dot; Incomm; and SVS
The filter is not added to the following non-ISO8583 interfaces: [National Department Store Interface]; [Electronic Check Acceptance provider]; and Verizon
The filter is not added to the following ‘one-shot channel’, non-ISO8583 interfaces: Authorized Returns; Drivers License Decode; and MethCheck
Comments