The 3DS Server Admin web application provides a Search Transactions tab which allows searching the 3DS Server transactions by:
The user can select own defined time period or can choose from the shortcuts (the last 5 minutes, the last 2 hours, etc.). The search using any other searchable parameter (except 3DS Server transaction ID) must be combined with a time period. The initial results table contains the 3DS Server transaction ID and timestamp, but can be extended with the searchable columns.
The 3DS Server Transactions IDs are clickable and when clicked on any of them, the 3DS Server Admin application will list all the 3DS Server messages related to that 3DS Server Transaction ID and their details.
There is also a possibility to export the search in an excel file. The excel file always contains all searchable fields as columns in the results table, no matter which of them are chosen in the web view.
Important note for users that use Microsoft SQL Server: When the application writes the transaction log to the database, the timezone is stripped from the database record. For example, if a transaction occurs at 09:00+02:00 (UTC+2) the database will store 09:00+00:00 (UTC). In the transaction search page these records will be displayed with a timestamp of 11:00. The cause of this is that the MSSQL Hibernate Driver does not convert the value properly. To resolve this, customers that use the application need to configure the following property in the application.properties file for the 3DS Server and 3DS Server Admin applications
# Example: spring.jpa.properties.hibernate.jdbc.time_zone=UTC+2 spring.jpa.properties.hibernate.jdbc.time_zone=<TIME ZONE>
This will allow the Hibernate driver to properly store the value in the database and when returning the value back it will convert it back in to the correct time zone. This solution will work for records after the update. For older records, customers can execute a query in the database that will convert all existing timestamps with updated timezone value. Please keep in mind that for larger set of data this query for the transactions_log table can take a lot of time to complete, so we recommend executing it in periods with low traffic, or only in the history table.
# Example: update transactions_log set message_timestamp = todatetimeoffset(message_timestamp, '+02:00'); update transactions_log set message_timestamp = todatetimeoffset(message_timestamp, '<OFFSET_TIME>'); update history_transactions_log set message_timestamp = todatetimeoffset(message_timestamp, '<OFFSET_TIME>');